据我所知,将 Java 源代码解析为 AST(抽象语法树)的唯一方法是使用 Java Compiler Tree API : com.sun.source.tree
我有两个问题:
- 哪些 JDK 支持 com.sun.source.tree?
- 是否有适用于所有 JDK 的可移植替代品?
最佳答案
关于您的第二个问题,除了 Sun 的解析器之外,还有许多可用的 Java 解析器。这是一个小样本:
- Eclipse 的 org.eclipse.jdt.core.dom包。
- Spoon输出带有类型信息和变量绑定(bind)的非常漂亮的带注释的解析树(并在内部使用 Eclipse 的解析器)
- ANTLR是解析器生成器,但有可用的 Java 语法
- javaparser (我没用过)
我最好的建议是尝试每种方法,看看哪种方法最适合您的需求。
关于java - 如何从 Java 源代码生成 AST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1967987/