AST树语义分析器

时间:2011-08-31 05:05:56

标签: compiler-construction tree abstract-syntax-tree semantic-analysis

AST树的最后一个节点必须有语义分析器的转换信息,或者非最后一个节点也可以有这些信息吗?

3 个答案:

答案 0 :(得分:3)

你的问题似乎不太好。

假设您的意思是“叶子节点”,您写的是“最后一个节点”,是的,您可以将语义信息不仅与叶子相关联,还与内部节点相关联。

一个简单的例子是“这个表达式的类型”。很明显,包含文字TRUE的叶节点将具有与之关联的表达式类型“boolean”。表达式“如果e然后2.7 else 9.3 endif”具有相应的AST,并且对应于if-expression的内部节点将具有关联类型“float”。

可以提出许多“语义”属性:“使用变量X,Y,Z”,“无副作用”,“分叉并行子过程”等,其中任何一个都可能适用于内部树节点。

答案 1 :(得分:0)

如果我理解你的问题,在AST中,内部节点也可以携带语义信息,以及叶子节点。

答案 2 :(得分:0)

所有AST树都必须存储语义信息。

但是,“叶子节点”(引用变量,值,操作数的节点)可能存储一些比“分支节点”或“非叶节点”更多或不同的信息。