📄 main.c
字号:
#include <stdio.h>
#define BUFFERLEN 3
typedef struct {
char *lexeme_beginning;
char *forward;
} CURSOR;
char BUFFER[2][BUFFERLEN+1];
int main(int argc,char* argv[])
{
CURSOR cursor;
int nread;
FILE *pfil= fopen(argv[1],"r");
BUFFER[0][BUFFERLEN]=EOF;
BUFFER[1][BUFFERLEN]=EOF;
cursor.lexeme_beginning=&BUFFER[0][0];
cursor.forward=&BUFFER[0][0];
if(pfil) {
nread=fread(&BUFFER[0][0],sizeof(char),BUFFERLEN,pfil);
while(1) {
if(*cursor.forward==EOF)return 0; //词法分析器的位置
cursor.forward += 1;
if(*cursor.forward==EOF) {
if(cursor.forward==&BUFFER[0][BUFFERLEN]) {
nread=fread(&BUFFER[1][0],sizeof(char),BUFFERLEN,pfil);
if(nread<BUFFERLEN)BUFFER[1][nread]=EOF; // 碰巧
cursor.forward += 1;
}
else if(cursor.forward==&BUFFER[1][BUFFERLEN]) {
nread=fread(&BUFFER[0][0],sizeof(char),BUFFERLEN,pfil);
if(nread<BUFFERLEN)BUFFER[0][nread]=EOF; // 碰巧
cursor.forward = &BUFFER[0][0];
}
else
; // 什么也不做,让词法分析器接收到EOF词素
}
}
}
fclose(pfil);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -