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