如何在不设置完整代码(不设置类和方法/构造函数)的情况下获取AST节点的语句。
例如,我设置了这样的代码:
for(int i=0;i<4;i++){
System.out.println(i);
}
我已经创建了简单的代码,但它不起作用:
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setSource("for(int i=0;i<4;i++) {nSystem.out.println(i);}".toCharArray());
parser.setKind(ASTParser.K_COMPILATION_UNIT);
final CompilationUnit cu = (CompilationUnit) parser.createAST(null);
cu.accept(new ASTVisitor()
{
public boolean visit(ForStatement node)
{
System.out.println (node.getExpression());
return true;
}
});
我建议你可以添加这样的代码:
String statement="for(int i=0;i<4;i++) {nSystem.out.println(i);}";
parser.setSource(("class fo{nvoid foo(){n" + statement + "n}n}").toCharArray());
parser.setKind(ASTParser.K_COMPILATION_UNIT);
希望能回答你的问题。