⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fenxi.h

📁 计算机科学与技术专业课程编译原理的课程实验代码
💻 H
字号:

#if !defined _FENXI_H
#define _FENXI_H


struct CIFA			//保存词法分析结果
{
	int nType;			//0:错误,	1:标志符,	2:数字,	3-:关键字和操作符,	-1:结束符
	int nValue;			//二元式中的值
	char szText[20];	//单词
	char szDesc[50];    //描述
	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_kw[50][20];	//关键词表

	int FinKW(char *);

/*----------------语法分析函数-----------------------*/
	bool Program();				//程序
	bool ProgramTi();			//程序体

	bool ShengMing();			//声明 
	bool ShengMingChuan();		//声明串	
	bool BianliangShengMing();	//变量声明
	bool GuoChengShengMing();	//过程声明
	bool ShiCan();				//实参
	bool XingCan();				//形参

	bool Sentence();				//语句
	bool SentenceChuan();			//语句串
	bool GuoChengSentence();		//过程语句
	bool Cycle_Sentence();			//循环语句
	bool Condition_Sentence();		//条件语句
	bool F_Sentence();			//赋值语句
	bool C_Sentence();			//复合语句
	
	bool BiaoDaShi();			//表达式
	bool Relation_Exp();		//关系表达式
	bool BooL_Express();		//布尔表达式
	bool Item();				//项
	bool Factor();				//因子
	bool Relation();				//关系


/*-----------------------------------------------------*/
};

#endif 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -