Java源代码解析器/生成器

时间:2011-08-09 16:24:59

标签: java parsing code-generation

我需要工具:

  • 方便地解析Java源代码并轻松访问给定元素。

  • 轻松生成源代码文件,轻松将数据结构转换为代码

任何好的提示,库,框架,工具?谢谢你的帮助。

4 个答案:

答案 0 :(得分:19)

从Java 6开始,编译器在JDK中包含一个API。通过它,您可以通过javax.lang.model API访问Java解析器的结果。 JDK5以Mirror API的形式提供了相同的功能。有一篇很好的介绍性文章here

我见过的最好的代码生成工具是CodeModel。它有一个非常简单的API,可以一次生成多个Java源文件。

答案 1 :(得分:18)

如果您需要解析现有的源代码,请使用JavaParser它为您提供基于访问者的AST访问权限。您可以编写新代码,但很多事情都很痛苦(例如引用其他类)

如果您需要使用CodeModel生成源代码。它允许您以编程方式创建类,包,方法等,并且它非常易于使用。但是,我认为它不能导入现有代码。

两者在各自的领域都非常棒。

答案 2 :(得分:1)

我们的DMS Software Reengineering Toolkit及其Java Front End可以执行此操作。它们旨在实现定制分析器和代码生成器的构建。

DMS提供通用解析,抽象语法树(带注释)和符号表构建,树导航/检查/修改功能,以及从修改后的树中重新生成完整源代码的功能。其他功能包括源到源转换规则(“如果你看到这种语法,用它替换它的语法”),模式(用于构建或识别子树),属性语法评估器,控制和数据流分析,以及调用 - 图形构造。 Java Front End专门为DMS做了所有这些操作,用于附近1.7的Java 1.4-1.6。

(2016年5月编辑:现在处理Java 1.8)

DMS也设计用于处理规模:它通常用于同时处理许多编译单元(源文件),从而实现跨文件边界的分析和转换。它还可以同时处理多种语言; DMS有front ends for a wide variety of languages

答案 3 :(得分:0)

结帐Antlr。其中一个例子是Java语法。