私はASTにeclipse(org.eclipse.jdt)を使用します。抽象構文ツリーへのJavaコードの解析
私は(?)フィールドの宣言とそれらの使い方を得るために、いくつかの便利なコードをオンラインで入手しました。しかし、私はルートノードを取得する方法に立ち往生しています。
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setKind(ASTParser.K_COMPILATION_UNIT);
parser.setSource(buffer.toString().toCharArray());
parser.setResolveBindings(true);
CompilationUnit cu = (CompilationUnit) parser.createAST(null);
ASTNode root = cu.getRoot();
System.out.println(root.toString());
私が次のことをすると、ルートASTノードではなく、入れたjavaコード全体が表示されます。
私はASTを誤解しているかどうかわかりませんが、1つのノードに複数の子供がいることを除けば、バイナリ検索ツリーのように描いていました。 (picture)
これについての説明や助け?
なぜルートノードを印刷したいですか?あなたはどんな出力を期待していましたか? 'toString()'のJavadocが "デバッグ目的にのみ適したこのノードの文字列表現を返します"と言うと、この動作は驚くかもしれません。一方、私はより自然な行動を容易に考えることができません。 –