📄 grammar.h
字号:
#ifndef __GRAMMAR_H
#define __GRAMMAR_H
#include "Simpsc.h"
#define MAX_LEV 3 //过程最多可嵌套三层
class Grammar
{
private:
int dx[MAX_LEV+1]; //计算每个变量在运行栈中相对本过程基地址的偏移量
int lev; //层次
int bx; //单词坐标
int ex;
int y;
int i; //当前单词
// Word Token[MAX];
Simpsc *pl;
public:
Grammar(Simpsc *p);
bool Analysis(Word *Token);
char *ReturnName(Word *Token);
int ReturnLevel(){return lev;}
int ReturnAddr(){return dx[lev];}
private:
void ConstDecla(Word *Token);
void ConstVar(Word *Token);
void VarDecla(Word *Token);
bool ProceFactor(Word *Token);
bool ProceTerm(Word *Token);
bool ProceExp(Word *Token);
bool ProceLexp(Word *Token);
bool ProceState(Word *Token);
bool ProceBody(Word *Token);
bool ProceConst(Word *Token);
bool ProceCondecl(Word *Token);
bool ProceVardecl(Word *Token);
bool ProceProc(Word *Token);
bool ProceBlock(Word *Token);
bool ProceProg(Word *Token);
};
#endif // Grammar.h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -