yufa.h
来自「编译课程设计」· C头文件 代码 · 共 38 行
H
38 行
#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