是否有Java语言的Java解析器?

tan*_*ens 7 java parsing code-generation

我正在寻找一个允许我解析java源文件的java库,它给了我代码的AST表示.

实际上我只对带有注释的类和方法定义感兴趣.我不需要方法代码的AST.

我正在使用此信息进行代码生成.这就是我无法首先编译源文件以从结果类文件中获取信息的原因.在生成一些额外的类之前,代码不会在没有错误的情况下编译.

Ram*_*mon 10

Java 6支持将其作为编译器的本机部分,并为其提供标准API(javax.lang.model).你可以在这里阅读.它专为您的用例而设计(即从注释和源代码生成代码).


pet*_*ust 8

ANTLR(http://www.antlr.org/)有一个Java语言解析器,它也支持AST.

尝试

options {
    output=AST;
}
Run Code Online (Sandbox Code Playgroud)

在*.g文件中(我没有亲自尝试过);


tan*_*ens 2

我找到了javaparser项目,它解析单个 java 文件并返回格式良好的 AST。