www.pudn.com > pl0_compiler_c.rar > yufa.h


// yufa.h: interface for the yufa class. 
////////////////////////////////////////////////////////////////////// 
#ifndef __YUFA_H 
#define __YUFA_H 
#include "pl0.h" 
#include "cifa.h" 
#include "symset.h" 
#define MAX_LEVEL	3            //最大层差 
 
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 vardeclaration(); 
	void constdeclaration(); 
	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];		 //数据段内存分配指针 
	int lev; 
	CSymbolSet declbegsys,statbegsys,facbegsys; 
}; 
 
#endif