如何从Java源代码生成AST?[已关闭]

2022-09-01 03:16:40

据我所知,将Java源代码解析为AST(抽象语法树)的唯一方法是使用Java编译器树API:com.sun.source.tree。

我有两个问题:

  1. 哪些 JDK 支持 com.sun.source.tree?
  2. 是否有适用于所有 JDK 的便携式替代品?

答案 1

关于你的第二个问题,除了Sun之外,还有几十个Java解析器可用。下面是一个小示例:

  • Eclipse 的 org.eclipse.jdt.core.dom package.
  • Spoon输出一个非常好的带注释的解析树,其中包含类型信息和变量绑定(并在内部使用Eclipse的解析器)
  • ANTLR是一个解析器生成器,但是有Java的语法可用
  • javaparser(我没有使用过)

我最好的建议是尝试它们中的每一个,看看哪个最适合您的需求。


答案 2

你可以把这些工具.jar并使用它。javac是开源的,所以你只需要获取该代码(假设你可以处理许可证)。Antlr也有Java的语法。


推荐