//scaner.h 扫描器类设计
#define N 15
char Keys[N][15]={"program","procedure","begin","end","while","do",
"+","*",":",":=","=",",",";","(",")"};
struct TokenType //Token 类型
{ int code,value; };
struct SemRecord //符号表记录类型
{ char name[15];
};
class Scan //扫描器类
{
private:
char *keywords[N]; //关键字表、界符表
char line[50];
int i_line;
char ch; //当前字符
char strToken[15]; //当前单词
int i_str;
int code,value;
int i;
SemRecord *p_ID; //符号表指针
int *p_m;
int *p_Cons; //常数表指针
int *p_n;
public:
Scan();
Scan(SemRecord *p1,int *p2,int *p3,int *p4);
void Read(TokenType *token); //read(w)
private:
void ProcError();
int IsLetter(char ch);
int IsDigit(char ch);
int Reserve(char *strToken);
int InsertID(char *strToken);
int trans(char *str);
int InsertConst(char *strToken);
评论0