以前使用 Lombok 一直觉得是一个很棒的设计,可以同时兼顾注解的遍历和运行的性能。
运行时注解一直因为性能问题被人诟病。
自己尝试写过一些框架,但是耗费了比较多的精力,因为 AST 语法不是很熟悉,所以准备整一个系列,入门学习下 AST 语法。
AST(Abstract syntax tree) 抽象语法树
AST是javac编译器阶段对源代码进行词法语法分析之后,语义分析之前进行的操作。
用一个树形的结构表示源代码,源代码的每个元素映射到树上的节点。
java 编译时的三个阶段
Java源文件->词法,语法分析-> 生成AST ->语义分析 -> 编译字节码,二进制文件。