AST
2023-08-01 21:41:57
什么是 AST
AST(Abstract Syntax Tree)是前端工程化绕不过的一个名词,翻译过来就是抽象语法树,有着非常多的应用场景
比如:
- Typescript 转化为 Javascript
- sass/less 转化为 css
- es6+ 转化为 es5
- 使用 eslint/prettier 对代码进行格式化
- react 中的 jsx
- MDX
- ...
AST 的生成
在语言转换的过程中,实质上就是对其 AST 的操作,核心步骤就是 AST 三步走
- Code -> AST (Parse)
- AST -> AST (Transform)
- AST -> Code (Generate)
AST 的生成这一步被称为解析(Parser),而该步骤也有两个阶段: 词法分析(Lexical Analysis)和语法分析(Syntactic Analysis)
词法分析用以将代码转化为 Token 流,维护一个关于 Token 的数组
语法分析将 Token 流转化为结构化的 AST,方便操作