📄 comilpe_work1.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 + -