AST树的最后一个节点必须有语义分析器的转换信息,或者非最后一个节点也可以有这些信息吗?
答案 0 :(得分:3)
你的问题似乎不太好。
假设您的意思是“叶子节点”,您写的是“最后一个节点”,是的,您可以将语义信息不仅与叶子相关联,还与内部节点相关联。
一个简单的例子是“这个表达式的类型”。很明显,包含文字TRUE的叶节点将具有与之关联的表达式类型“boolean”。表达式“如果e然后2.7 else 9.3 endif”具有相应的AST,并且对应于if-expression的内部节点将具有关联类型“float”。
可以提出许多“语义”属性:“使用变量X,Y,Z”,“无副作用”,“分叉并行子过程”等,其中任何一个都可能适用于内部树节点。
答案 1 :(得分:0)
如果我理解你的问题,在AST中,内部节点也可以携带语义信息,以及叶子节点。
答案 2 :(得分:0)
所有AST树都必须存储语义信息。
但是,“叶子节点”(引用变量,值,操作数的节点)可能存储一些比“分支节点”或“非叶节点”更多或不同的信息。