【问题标题】:Examples / tutorials for usage of javax.lang.model or ANTLR JavaParser to get information on Java Source Code使用 javax.lang.model 或 ANTLR JavaParser 获取 Java 源代码信息的示例/教程
【发布时间】:2011-03-21 02:19:27
【问题描述】:

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

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

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

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

【问题讨论】:

标签: java antlr lexer abstract-syntax-tree


【解决方案1】:

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

乍一看,这些都是合适的候选人:

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

祝你好运!

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      你也可以找到eclipse插件here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-04
        • 2017-05-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多