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

📄 comilpe_work1.h

📁 一个简单的表达式编译器,大家可以试一试.
💻 H
字号:
// Comilpe_work1.h: interface for the CComilpe_work1 class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_COMILPE_WORK1_H__8967891C_AA8A_4D1C_8DED_CB5D9310CA90__INCLUDED_)
#define AFX_COMILPE_WORK1_H__8967891C_AA8A_4D1C_8DED_CB5D9310CA90__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

////////////////////////////////////////////////////
#define MAX_pcodeSIZE 200
#define MAX_tableSIZE 30
#define MAX_RUNSTR 300
enum SYM{plus,minus,times,div,lparen,rparen,equal,number,chid,endflags}; //定义单词的类别
struct symbol     //定义全程变量
{ 
	enum SYM sym;  //存放每个单词的类别
	int num;       //存放用户定义的数值
}; 
struct table_type    //字母表
{
	char ident; //字母
	int value;  //字母的值
}; 
struct PCODE      //定义存放栈式指令的pcode数组
{
	char *f;
	int l;
	int a;
} ;


///////////////////////////////////////////////////

class CComilpe_work1  
{
public:
	struct symbol getsym();
	CComilpe_work1();
	virtual ~CComilpe_work1();
	void factor() ;     //因子处理程序
	void term();//项处理程序
	void interpret() ;   //解释程序
	void block();    //语法分析程序
	void gen(char *p_f,int lev_value,int a_value);  //生成pcode目标代码
	void expresion();  //表达式处理程序
public:
    FILE *in;
	int stoken[MAX_RUNSTR];//定义运行栈
    int t;   //运行栈顶指针
    char buffer[200]; //存放读入的表达式串
    int tx;     //buffer指针
    int code_pointer;   //指向最新生成的pcode代码的指针
    int t_flags[10];    //t_flags记录查找到的字母的位置
    int equal_flags; //记录等于号的数目,以对多个字母连续赋值
    int tag;    //设置是否有等于号的标志 
	PCODE code[MAX_pcodeSIZE];
	table_type table[MAX_tableSIZE];
    symbol ssym;
};

#endif // !defined(AFX_COMILPE_WORK1_H__8967891C_AA8A_4D1C_8DED_CB5D9310CA90__INCLUDED_)

⌨️ 快捷键说明

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