首页 > 解决方案 > AST 节点属性与子树

问题描述

在 AST 中,节点的属性应该是什么,节点的子树应该是什么?例如,如果一个变量声明有一个类型,那么该类型应该在子树中表示还是作为标识符节点的属性表示?

标签: compiler-constructionabstract-syntax-treelanguage-design

解决方案


抽象语法树遵循它正在建模的结构的语法变量声明的语法通常由一个标识符和一个类型组成(以及一些标点符号,它们可能不会在 AST 中找到它的方式),这些将是声明节点的子节点。

通常,标识符节点的属性将是一个符号表条目的链接,它最终将以某种方式引用标识符的声明类型。但是语义分析并不是解析的一部分。在大多数情况下,它将在 AST 的后续遍历中完成。


推荐阅读