首页 > 解决方案 > 词法分析器将标记的哪些属性填充到符号表中的值

问题描述

由于令牌可能具有不同的属性,例如名称,类型,大小等。我对哪些由词法分析器填充,哪些由编译器的其他阶段填充感到困惑。由于不同的编译器可能表现不同,我们可能会采用 gcc c编译器作为参考。

标签: compiler-constructionlexical-analysissymbol-table

解决方案


有点主观,因为它取决于您正在构建的内容(编译器、解释器等)。此外,相当笼统的描述:

词法分析或扫描将获取您的源代码并将其分解为“令牌”或“词素”,但它们可能尚未放入符号表中。

如果您实施,评估是您可以开始删除标识符的一个点(例如,标记为关键字等)。并且通常是令牌有资格进入符号表的第一个点。根据符号,该点的符号属性可能是完整的。

后面的阶段,如解析,可能会引用符号并注入额外的信息,如范围、内部或外部引用、可见性、类型和大小等。

代码生成将最终确定符号的任何属性,此时您正在编写二进制文件。


推荐阅读