【问题标题】:AST node attributes vs subtreesAST 节点属性与子树
【发布时间】:2021-10-12 06:38:14
【问题描述】:

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

【问题讨论】:

    标签: compiler-construction abstract-syntax-tree language-design


    【解决方案1】:

    抽象语法树遵循它正在建模的构造的语法。变量 declaration 的语法通常由 identifiertype 组成(以及一些标点符号,这些标点符号可能无法进入AST),这些将是 declaration 节点的子节点。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      相关资源
      最近更新 更多