📄 grammer.h
字号:
#ifndef __YUFA_H
#define __YUFA_H
#include "pl0.h"
#include "MorP.h"
#include "symset.h"
#define MAX_LEVEL 3 //max depth of block nesting
class CYufa
{
public:
CYufa(CPlCompiler*p);
void Analysis();
int DataAddr(){return dx[lev];}
int Level(){return lev;}
private:
void getsym(){sym=pl->cifa->GetSymbol();}
void test(CSymbolSet s1,CSymbolSet s2,int n);
void block(CSymbolSet fsys);
void constdeclaration();
void vardeclaration();
void statement(CSymbolSet fsys);
void expression(CSymbolSet fsys);
void term(CSymbolSet fsys);
void factor(CSymbolSet fsys);
void condition(CSymbolSet fsys);
private:
CPlCompiler *pl;
symbol sym;
int dx[MAX_LEVEL+1]; //data allocation index
int lev;
CSymbolSet declbegsys,statbegsys,facbegsys;
};
#endif //yufa.h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -