java - 如何从 Java 源代码生成 AST?

标签 java parsing compiler-construction

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

我有两个问题:

  1. 哪些 JDK 支持 com.sun.source.tree?
  2. 是否有适用于所有 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/

相关文章:

java - j2me中的xml解析

javascript - Jquery 解析来自 html 元素的 JSON

c# - C# 编译器是用什么语言编写的?

java - "Lambdifying"Java中的scala函数

java - 如何使用自动发现在 Jersey 中启用自动 JSON 编码?

java - 在传递给方法之前将空值命名为引用的约定?

python - 如何使用 Python 解析以 MARC21 格式存储的文档

parsing - Haskell——解析器组合器关键字

c++ - 字节冲突

java - OOP 访问修饰符 : Compile-time or Run-time