📄 list.h
字号:
#ifndef _LIST_H
#define _LIST_H
#define SIZE 256
//----------------------------------------------------------------------------------------------//
// 符号表声明头文件
//---------------------------------------------------------------------------------------------//
//变量表
struct var_list{
var_list* next;
int type; //integer:bool:const:new type
char name[SIZE];//
int offset; //相对于活动记录的存取连的偏移量(relative address,from 0)
int ConstVal; //必要吗?
int typeofconst; //仅仅标记const常量是1:int 0:bool
};
//过程表
struct proc_list{
proc_list* father;//父过程
proc_list* child[SIZE];//子过程
var_list* next;//过程中的变量表
char name[SIZE];
int offset; //相对于初始p的偏移,便于跳转或者procal,在目标代码文件中
int VarLength; //非形式参数的变量总长度,编译,在过程开始时的参数值ProcedureX(VarLength...)
int ParamLength;//参数总长度,过程结束时参数:EndProc(ParamLength)
int numofparam;//参数个数
int level; //过程的深度
int numofchild;//子过程的个数
int NewType[SIZE];//NewType[i]=newtype在typelist中的序号
int numofnewtype;
};
//域表,域中每一个元素为一个表项
struct field_table{
char name[SIZE];
int type;//元素的类型,在typelist中的序号
int offset;
field_table* next;
};
//类型表
struct type_list{
int type;//类型
char name[SIZE];
int upper;
int lower;
int bandwidth;
int typeofelement;
int bandwidthOfelement;
field_table* fieldlist;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -