?? symbtable.h
字號:
//SymbTable.h
#pragma once
#include "TypeDef.h"
using namespace std;
//本文件定義了符號表
//符號表的一項
typedef struct symbtable
{
char * idName; //變量標識符
AttributeIR attrIR; //變量類型
int Level; //變量所在層數(shù)
int Off; //變量所在偏移
} SymTab;
class SymbTable
{
public:
SymbTable():off(0),level(0) {};
~SymbTable() {};
//在符號表中插入一個類型為_attrIR,標識符為_idName的變量
void insert(char * _idName, AttributeIR _attrIR);
void create(); //添加符號表
void destroy(); //跳出符號表
void print_table(); //打印符號表
protected:
//使用scope棧的局部符號表方法中所用到的scope棧
stack < int > scope;
vector < SymTab > Table; //符號表
bool find(char * _idName); //在全局符號表中查找符合條件的變量聲明
bool level_find(char * _idName); //在本層符號表中查找符合條件的變量聲明
int off; //在同層的變量偏移
int level; //當前層數(shù)
};
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -