4

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

我还没有找到一个与我想要实现的目标非常接近的工作示例。

我想找到简单的变量声明、赋值和流程(if、for、switch、布尔条件等)

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

4

3 回答 3

2

您想自己生成解析器有什么特别的原因吗?IMO,让现有的解析器为您创建一个 AST 会更容易,您“简单地”遍历它以收集有关源文件的数据。使用您最喜欢的搜索引擎和关键字“get ast java source”将产生许多相关的点击。

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

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

祝你好运!

于 2011-03-22T06:58:08.670 回答
1

我建议您使用Java Soot 一个 Java 优化框架。这将帮助您解析 java 源,可以生成 CFG 和各种可用选项。

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

于 2011-03-21T02:28:34.797 回答
1

我会尝试使用 Eclipse Xtext,它在引擎盖下使用 ANTLR,它也(相对)容易与 Eclipse GMF 一起使用以进行可视化。

于 2011-03-21T02:29:53.707 回答