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

📄 global.h

📁 (1) 给定一段符合Pascal子集语法的语言
💻 H
字号:
#pragma once

/* 定义编译器状态 */
#define definition 1
#define program 2
#define error 3
#define init 4
#define finish 5

/*-----------------------------*/
/* 变量表的基本结构
/*-----------------------------*/
struct virable_item
{
	string name;								//变量名字
	int type;									//变量类型
	int address;								//变量地址
	string value;								//值
	vector<int> _size;
	int vectorType;
	int vector_size;
};

/*-----------------------------*/
/* 编译器全局属性
/*-----------------------------*/
class global
{
public:
	global(void);
	~global(void);

public:
	void push(string, string, int, int);		//进栈
	void getTop(attribute &);					//得到第一个属性
	void clearWait();							//清空词法分析器缓冲栈
	void clearAtt();							//清空属性栈
	void popTop(attribute &);					//弹出并得到一个属性
	void printVTable();							//输出符号表
	virable_item * getVirable(string name);		//查找符号表
	void popWaitingTop(attribute &);			//从缓冲栈中弹出
	void pushWaiting(string ,string ,int ,int);	//添加到缓冲栈中
public:
	vector<virable_item> v_table;				//变量表
	int offset;									//地址偏移量
	stack<attribute> att;						//属性栈
	stack<attribute> wait;						//由词法分析器产生的缓冲栈
	int sentence_num;							//当前执行到的语句数
	int temp_num;								//定义临时变量的名字(temp + 数字)
	int global_type;							//定义编译器状态
};

⌨️ 快捷键说明

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