AST树的最后一个节点必须有语义分析器的推导信息,还是非最后一个节点也可以有这个信息?
最佳答案
您的问题似乎不太清楚。
假设您指的是“最后一个节点”所在的“叶节点”,是的,您不仅可以将语义信息与叶关联,还可以与内部节点关联。
一个简单的例子是“这个表达式的类型”。很明显,包含文字 TRUE 的叶节点将具有与其关联的表达式类型“boolean”。表达式“if e then 2.7 else 9.3 endif”具有相应的 AST,并且与 if 表达式对应的内部节点将具有关联类型“float”。
人们可以提出很多“语义”属性:“使用变量 X、Y、Z”、“无副作用”、“ fork 并行子进程”等。其中任何一个都可能适用于内部树节点。
关于compiler-construction - AST 树语义分析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7252759/