如何在 C 中为 Pascal 子集编译器生成符号 table?

How to generate a symbol table for a Pascal-subset compiler in C?

我正在用 C 编写一个编译器,它将伪 Pascal 指令(它们的语法现在不相关)解释为 asm 输出。我现在所知道的是,我需要:

我有点卡在最重要的阶段 - 符号 table。 我不确定这个 table 中应该包含什么。当然,任何变量(标识符)及其地址。我是否应该包含 iffor 等关键字?任何关于此的指导方针将不胜感激。

目前,我认为最合乎逻辑的方法是定义一个结构:

struct entry{
    char* name;
    Vartype vartype;
    int address;
}

其中 Vartype 是具有可用变量类型(integerreal)的枚举。然后我会制作一个结构数组并在必要时扩展它。我应该如何以及何时修改它?

这是一本很棒的免费书籍:Compiler design in C