相关疑难解决方法(0)

以点文件的形式生成 AST

我正在使用 ANTLR4 生成 java 源代码的 AST,但我不得不转向 ANTLR3,因为我没有得到太多帮助和文档,而且确实很难继续。我设法生成 AST,但不是以可视格式生成。然后我遇到了一个很棒的答案 ,我确实能够在 DOT 文件中生成 AST,但有一个小问题。

我的代码:

import org.antlr.runtime.CommonTokenStream;
import org.antlr.runtime.ANTLRFileStream;
import org.antlr.runtime.tree.CommonTree;
import org.antlr.runtime.tree.DOTTreeGenerator;
import org.antlr.stringtemplate.StringTemplate;

class Main {

        public static void main(String[] args) throws Exception {
            parseFile("/home/satnam-sandhu/Workstation/ASTGenerator/resource/java/Blabla.java");
        }

    public static void parseFile(String f)throws Exception {

            JavaLexer lexer = new JavaLexer(new ANTLRFileStream(f));
            CommonTokenStream tokens = new CommonTokenStream(lexer);
            JavaParser parser = new JavaParser(tokens);
            CommonTree tree = (CommonTree)parser.compilationUnit().getTree();
            DOTTreeGenerator gen = new DOTTreeGenerator();
            StringTemplate st = gen.toDOT(tree);
            System.out.println(st);

    }

}
Run Code Online (Sandbox Code Playgroud)

我正在使用 gradle,所以我通过以下方式构建项目:

gradle clean …
Run Code Online (Sandbox Code Playgroud)

java dot abstract-syntax-tree antlr3

3
推荐指数
1
解决办法
2337
查看次数

标签 统计

abstract-syntax-tree ×1

antlr3 ×1

dot ×1

java ×1