www.pudn.com > vc61667782466611111.rar > FenXi.h


/************************************************************************  
* 文件名:    FenXi.h  
* 文件描述:  词法语法分析的头文件 
* 创建人:    程红秀, 2005年06月15日  
* 版本号:    1.0  
************************************************************************/  
 
#if !defined _FENXI_H 
#define _FENXI_H 
 
 
struct CIFA			//保存词法分析结果 
{ 
	int nType;			//0:错误,	1:标志符,	2:数字,	3-:关键字和操作符,	-1:结束符 
	int nValue;			//二元式中的值 
	char szText[20];	//单词 
	int nAddr;			//源文件缓冲区中地址 
}; 
  
class CFenXi   
{	 
	 
public: 
	void YuFaFenXi();  //语法分析 
	void CiFaFenXi();  //词法分析 
 
 	int m_nErrAddr;				//语法错误对应单词的地址 
	int m_nErrNo;				//语法错误代码 
	char m_str[20000];			//源程序缓冲区 
	char m_szErrMsg[100][100];	//错误信息表 
	CIFA * m_cifa[10000];		//词法分析结果 
 
protected: 
	void init(); 
	 
	int m_nCur;				//用于语法分析中,指示词法分析结果表中当前的位置 
	int m_n;				//用于词法分析中,用于指示词法分析结果的个数 
	char m_szKW[50][20];	//关键词表 
 
	int FindInKWTab(char *); 
 
/*----------------语法分析函数-----------------------*/ 
	bool y_GuanXi();			//关系 
	bool y_GuanXiBiaoDaShi();	//关系表达式 
	bool y_BuErBiaoDaShi();		//布尔表达式 
	bool y_YinZi();				//因子 
	bool y_Xiang();				//项 
	bool y_BiaoDaShi();			//表达式 
	bool y_ShiCanBiao();		//实参表 
	bool y_GuoChengYuJu();		//过程语句 
	bool y_XunHuanYuJu();		//循环语句 
	bool y_TiaoJianYuJu();		//条件语句 
	bool y_FuZhiYuJu();			//赋值语句 
	bool y_FuHeYuJu();			//复合语句 
	bool y_YuJu();				//语句 
	bool y_YuJuChuan();			//语句串 
	bool y_XingCan();			//形参 
	bool y_XingCanBuFeng();		//形参部分 
	bool y_GuoChengShengMing();	//过程说明 
	bool y_BianliangShengMing();//简便说明 
	bool y_ShengMing();			//说明  
	bool y_ShengMingChuan();	//说明串 
	bool y_ChengXuTi();			//程序体 
	bool y_ChengXu();			//程序 
/*-----------------------------------------------------*/ 
}; 
 
#endif