是否有Java语言的Java解析器?
我正在寻找一个允许我解析java源文件的java库,它为我提供了代码的AST表示。
实际上我只对带有注释的类和方法定义感兴趣。 我不需要方法代码的AST。
我正在使用此信息进行代码生成。 这就是我无法首先编译源文件以从结果类文件中获取信息的原因。 在生成一些额外的类之前,代码不会在没有错误的情况下编译。
Java 6支持将其作为编译器的本机部分,并为其提供标准API( javax.lang.model
)。 你可以在这里阅读。 它专为您的用例而设计(即从注释和源代码生成代码)。
您可以使用Java语言的语法文件来尝试JavaCC 。
我认为NetBeans Javaparser可能是你会感兴趣的东西。
我找到了项目javaparser ,它解析单个java文件并返回一个格式良好的AST。
@tangens撰写了关于JavaParser的文章,但引用了一个现已过时的项目。
2011年有一个分支仍在积极维护,现在还解析Java 1.7和1.8。
你可以在那里找到它: https : //github.com/javaparser/javaparser
免责声明:我是该项目的贡献者。