• AST(Abstract syntax tree) 抽象语法树
  • AST是javac编译器阶段对源代码进行词法语法分析之后,语义分析之前进行的操作。
  • 用一个树形的结构表示源代码,源代码的每个元素映射到树上的节点。
  • java 编译时的三个阶段
    • Java源文件->词法,语法分析-> 生成AST ->语义分析 -> 编译字节码,二进制文件。
  • 通过操作 AST 可以实现修改 java 源代码的功能。

    Tools.jar

    tools.jar中提供了操作AST的API.

    JDT

    JDT(java development tooling)是Eclipse提供的一组API。

JDT实际上是将Java代码构建成一个基于DOM结构的抽象语法树AST(Abstract Syntax Tree )。代码中的每个部分都对应一个ASTNode,许多的ASTNode就构成了这个抽象的语法树。

JDT是eclipse针对java语言开源的java语法的AST工具。

  1. <dependency>
  2. <groupId>org.eclipse.jdt</groupId>
  3. <artifactId>org.eclipse.jdt.core</artifactId>
  4. <version>3.16.0</version>
  5. </dependency>

javaparser

http://javaparser.org/
https://github.com/javaparser/javaparser

  1. <dependency>
  2. <groupId>com.github.javaparser</groupId>
  3. <artifactId>javaparser-symbol-solver-core</artifactId>
  4. <version>3.23.1</version>
  5. </dependency>