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

时间:2015-06-25 11:18:50

标签: c compiler-construction pascal symbols

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

  • 语法扫描程序,它将扫描用户输入并识别令牌以供解析程序处理
  • 解析器,它将检查这些令牌是否适合定义的语法产品
  • 符号表

我有点卡在最重要的阶段 - 符号表上。 我不确定该表中应该包含哪些内容。当然任何变量(标识符)及其地址。我应该包含iffor等关键字吗?任何关于此的指导都将受到赞赏。

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

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

其中Vartype是包含可用变量类型(integerreal)的枚举。然后我会制作一系列结构并在必要时展开它。我应该如何以及何时修改它?

1 个答案:

答案 0 :(得分:1)

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