yufa.h
来自「一个小型的编译器,仿照PL/0实现,能实现pl/0全部功能」· C头文件 代码 · 共 39 行
H
39 行
#ifndef __YUFA_H
#define __YUFA_H
#include "pl0.h"
#include "cifa.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 + =
减小字号Ctrl + -
显示快捷键?