我正在用C语言编写一个编译器,它将把伪Pascal指令(它们的语法现在不相关)解释为asm
输出。我现在所知道的是,我需要:
我有点卡在最重要的阶段 - 符号表上。
我不确定该表中应该包含哪些内容。当然任何变量(标识符)及其地址。我应该包含if
,for
等关键字吗?任何关于此的指导都将受到赞赏。
目前,我认为最合乎逻辑的方法是定义一个结构:
struct entry{
char* name;
Vartype vartype;
int address;
}
其中Vartype
是包含可用变量类型(integer
和real
)的枚举。然后我会制作一系列结构并在必要时展开它。我应该如何以及何时修改它?