1

我正在尝试为 Java 程序做一些样式检查/翻译工作。

首先我想要一个库(最好是Java),这样我就可以在我的程序中使用它。其次,我希望它可以执行以下操作:

  • 扫描整个程序(多个源文件)
  • 提供 API 来访问单个文件的 AST
  • 提供 API 来访问调用图,例如了解变量的所有引用、方法的所有调用者等。

在有限的时间里,我简单地研究了几个工具,比如eclipse、pmd、antlr、soot:

  • PMD 和 ANTLR:词法分析器/解析器,它们能够获取 AST,但没有调用图,因为它们不处理多个文件
  • Eclipse:它们似乎提供了 API,但只能在其插件框架中使用,或者与其 RCP 绑定(不作为独立程序中使用的常用库)
  • Soot:似乎非常接近我的要求。我正在阅读有关它的文件。

如果我对上述内容有误解,请纠正我。

4

1 回答 1

1

应该可以将 Eclipse Java 编译器及其数据结构用作没有 RCP 等的库。您可能想探索 eclipsec.exe 如何处理这一壮举。在需要命令行编译的情况下,这是相当于 javac.exe 的 Eclipse。

于 2012-06-21T04:45:04.220 回答