【发布时间】:2014-02-12 07:10:55
【问题描述】:
我正在阅读龙书。我只是一个试图理解基本知识的初学者。在第 113 页我可以看到以下语句(下划线)
据我了解,符号表存储变量名称和一些细节,如类型、范围等。所以词法分析器找到了一个字符 0,它与数字的模式匹配,所以它使用 tokenname 编号,因此 token 变为 <number,attrb> 。
根据我上面提到的sn-p,我不明白数字的符号表中存储了哪些数据,符号表中存储的数字的值是什么?
编辑:
在上面的截图中,令牌编号被赋予了一个整数属性。您可以看到它提到 stored ,如果不在符号表中,它究竟存储在哪里?它是否将字符串存储在某个地方并使用符号表中的属性条目来指向它?如果那么字符串存储在哪里?
【问题讨论】:
-
谁说它将任何东西存储在符号表中,具体来说?
-
根据您的理解,词法分析器将返回类似
(number, 0)的值。它是一个“数字”.. 它的“值”为 0。相反,对于关键字,它可能返回(if)和标识符(ident,"a")。在这个 lexing 阶段,通常/希望 - 没有“符号表”。继续阅读:) -
@Damien_The_Unbeliever 查看编辑
-
@user2864740 请看编辑
-
从您的编辑中,您会注意到
<id,...的标记都涉及符号表条目,但数字的标记没有。
标签: compiler-construction token tokenize lexical-analysis