如何使用 Eclipse JDT 从部分代码生成 AST

问题描述

如何使用 Eclipse JDT 解析不完整的代码片段。

我想为不完整的代码生成 AST。例如,一些片段可以是:

  1. for(int i=0; i<10; i++);
  2. System.out.println(\"test\");
  3. int j=0;

如何使用 Eclipse JDT 为不完整的代码生成 AST?我使用了代码:

public ClassGraph parse(String sourceCode) {
        ASTParser parser = ASTParser.newParser(AST.JLS11);

        parser.setResolveBindings(true);
        parser.setBindingsRecovery(true);

        Map<String,String> options = JavaCore.getOptions();
        JavaCore.setComplianceOptions(JavaCore.VERSION_11,options);
        parser.setSource(sourceCode.toCharArray());
        CompilationUnit cu = (CompilationUnit) parser.createAST(null);

        JDTVisitor visitor = new JDTVisitor();
        cu.accept(visitor);


        return visitor.buildClassGraph();
    }

参考:https://github.com/SERG-Delft/j2graph/blob/master/src/main/java/com/github/sergdelft/j2graph/ast/JDT.java#L13

它让我返回 null

JavaParser 是否有更好的支持来实现相同的目标?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)