「標準 Java 抽象構文木」(standard Java AST)と 「拡張 Java 抽象構文木」(extended Java AST)とは? 抽象構文木を表現するクラス Tree は、非常に汎用性が高いため、 例えば次のような無意味なものまで表現できてしまいます。 (foo (literalTree xyz "123") (bar (id X) (baz) (id "a b c"))) しかし、実際に Java のソースコードを構文解析して作られる抽象構文木は、 非常に制限されたものになります。 例えば、 :class という tag を持った tree の subtree の個数は、必ず6です。 また、その0番目の subtree の tag は :modifiers 、 3番目の subtree は :extends 、といったふうに、 subtree の種類が場所によって決まっ
EclipsePluginで、Javaソースを作成する機会があり、org.eclipse.jdt.core.dom.AST というのを使ってみました。 AST...始めは何も意識していなかったのですが、抽象構文木(abstract syntax tree)のことですねー。 ASTを使ってJavaコードを生成する事自体は、そこそこ簡単です。 ASTParser parser = ASTParser.newParser(AST.JLS3); parser.setSource(EMPTY.toCharArray()); CompilationUnit compilationUnit = (CompilationUnit) parser.createAST(null); compilationUnit.recordModifications(); を行い、compilationUnitにクラス名や
SummaryThe Abstract Syntax Tree is the base framework for many powerful tools of the Eclipse IDE, including refactoring, Quick Fix and Quick Assist. The Abstract Syntax Tree maps plain Java source code in a tree form. This tree is more convenient and reliable to analyse and modify programmatically than text-based source. This article shows how you can use the Abstract Syntax Tree for your own appl
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く