【发布时间】:2021-10-12 06:38:14
【问题描述】:
在 AST 中,节点的属性应该是什么,节点的子树应该是什么?例如,如果一个变量声明有一个类型,那么该类型应该在子树中表达还是作为标识符节点的属性来表达?
【问题讨论】:
标签: compiler-construction abstract-syntax-tree language-design
在 AST 中,节点的属性应该是什么,节点的子树应该是什么?例如,如果一个变量声明有一个类型,那么该类型应该在子树中表达还是作为标识符节点的属性来表达?
【问题讨论】:
标签: compiler-construction abstract-syntax-tree language-design
抽象语法树遵循它正在建模的构造的语法。变量 declaration 的语法通常由 identifier 和 type 组成(以及一些标点符号,这些标点符号可能无法进入AST),这些将是 declaration 节点的子节点。
通常,标识符节点的属性将是一个符号表条目的链接,它最终将以某种方式引用标识符的声明类型。但是语义分析并不是解析的一部分。在大多数情况下,它将在 AST 的后续遍历中完成。
【讨论】: