1

Java コンパイラ ツリー API を使用するTreePathと、 を使用して とその子のリーフ ツリーをトラバースできますTreeVisitor

TreeVisitor評価順にすべての「ノード」を訪問する実装はありますか? たとえば、次のよう7 - 8 * 2 + 10に解析された場合:

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

for に続いてfor 、次にforTreeVisitorにアクセスするはありますか?BinaryTree8 * 2BinaryTree7 - (8 * 2)BinaryTree(7 - (8 * 2)) + 10

4

1 に答える 1

0

javac( langtools )のソース以外に見るべきものはありません!

コンパイルの分析および生成フェーズでは、各コンパイル単位の構文ツリーを通じて複数のパスが作成されます。特に 1 つのパスである Gen は、メソッド実装のバイトコード コンパイルを生成します。Gen パスの大部分は明らかに にcom.sun.tools.javac.jvm.Genあり、これは を実装していますJCTree.Visitor

于 2012-01-21T16:32:43.987 に答える