使用javax.lang.model或ANTLR JavaParser获取Java源代码信息的示例/教程

我想为简单的Java Logic创建一个类似流程图的自动化可视化,为此我需要解析Java源代码,我有2个候选者,Java 6的ANTLR和javax.lang.model 。两者都不容易。

我还没有找到一个可以远离我想要实现的工作示例。

我想找到简单的变量声明,赋值和流(if,for,switch,boolean conditions等)

这些中的任何一个都有简单的示例或教程吗? 我发现很少有ANTLR示例(其中没有一个是开箱即用的,没有重要的“家庭作业”),绝对没有javax.lang.model

我会尝试使用Eclipse Xtext,它使用ANTLR,它也(相对)易于与Eclipse GMF一起使用以实现可视化。

您是否有特殊原因希望自己生成解析器? IMO,让现有的解析器为您创建AST更容易,您只需“遍历”以收集有关源文件的数据。 使用您喜欢的搜索引擎和关键词“get ast java source”将导致许多相关的点击。

乍一看,这些看起来像是合适的候选人:

  • Eclipse JDT API
  • JavaParser类

你当然可以使用ANTLR,有许多可供你使用的Java的ANTLR语法 ,但是在选择这个工具(或其他一些解析器生成器)时有相当的学习曲线。 如果您确实选择了ANTLR,我很乐意回答任何有关它的问题。

祝你好运!

我建议你使用Java Soot Java Optimization Framework 。 这将帮助您解析java源代码,可以生成CFG和各种可用选项。

你也可以在这里找到eclipse插件