📄 form.h
字号:
#pragma once
#ifndef __FORM_H
#define __FORM_H
#include "Pl0.h"
#include "Errors.h"
#include "Wording.h"
#include "Symtax.h"
#define TABLE_SIZE 100 //标识符表的长度(容量)
enum object {constant,variable,procedure}; //object为三种标识符的类型
struct table_type //标志符表的结构
{
char name[IDENT_LENGTH+1]; //标志符名称
object kind; //标志符类型
union{
int val; //常量数值
struct{ //层次,地址,容量
int level,adr,size;
};
};
};
class CForm
{
public:
CForm(CPl0*);
void Enter(enum object k); //登陆标志符表
int Position(char *id); //定位标志符
int TableIndex(){return tx[lev];} //返回该层标志符总数
table_type table[TABLE_SIZE];
~CForm(void);
private:
int tx[4]; //MAX_LEVEL + 1 本层符号表位置
int lev;
CPl0 *pl;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -