是否有TreeVisitor以评估顺序访问表达式树?

时间:2012-01-20 21:32:49

标签: java expression-trees visitor-pattern java-compiler-api

使用Java编译器树API,可以使用TreeVisitor遍历TreePath及其子项的叶子树。

是否有TreeVisitor实施以评估顺序访问所有“节点”?例如,如果7 - 8 * 2 + 10被解析为:

        _____+__
       /        \
      -          10
     / \
    7   *
       / \
      8   2

是否有TreeVisitor访问8 * 2的{​​{3}},然后访问BinaryTree 7 - (8 * 2)BinaryTree (7 - (8 * 2)) + 10 {1}}?

1 个答案:

答案 0 :(得分:0)

javaclangtools)的来源更好看!

在Analyze and Generate phase of compilation中,通过每个编译单元语法树进行多次传递。特别是一次通过Gen,生成方法实现的字节码编译。 Gen传递的大部分显然位于com.sun.tools.javac.jvm.Gen,实现了JCTree.Visitor