- 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工具。
<dependency>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.core</artifactId>
<version>3.16.0</version>
</dependency>
javaparser
http://javaparser.org/
https://github.com/javaparser/javaparser
<dependency>
<groupId>com.github.javaparser</groupId>
<artifactId>javaparser-symbol-solver-core</artifactId>
<version>3.23.1</version>
</dependency>