この記事に続いて、Eclipse jdt/astを試してみようとしています。
これは入力としてのJavaコードです:
class Hello
{
int hello()
{
int a = 0, b = 3;
/* hello */
{
b = a * 3;
}
return a;
}
public static void main(String[] args)
{
int z = 0, i = 3;
/* hello */
{
i = z * 3;
}
}
}
ASTViewを使用すると、VariableDeclarationFragment
対応するバインディングがあることを示します。
ただし、このビジターコードではVariableDeclarationFragment node
、4つのローカル変数(a、b、z、i)のnull値をresolveBinding()
戻り値として常に取得します。
これの何が問題になっていますか?私は日食インディゴを使用しています。
これはASTを取得するためのコードです
private static CompilationUnit createCompilationUnit(String sourceFile) {
String source = readWithStringBuilder(sourceFile);
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setKind(ASTParser.K_COMPILATION_UNIT);
parser.setSource(source.toCharArray()); // set source
parser.setResolveBindings(true); // we need bindings later on
return (CompilationUnit) parser.createAST(null /* IProgressMonitor */); // parse
}