Skip to content

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 explorer

在语言转换的过程中,实质上就是对其 AST 的操作,核心步骤就是 AST 三步走

  • Code -> AST (Parse)
  • AST -> AST (Transform)
  • AST -> Code (Generate)

AST 的生成这一步被称为解析(Parser),而该步骤也有两个阶段: 词法分析(Lexical Analysis)和语法分析(Syntactic Analysis)

  • 词法分析用以将代码转化为 Token 流,维护一个关于 Token 的数组

  • 语法分析将 Token 流转化为结构化的 AST,方便操作

alt

Released under the MIT License.