跳到主要内容

AST抽象语法树

AST(Abstract Syntax Tree)是源代码的抽象语法结构树状表现形式,Webpack、ESLint、JSX、TypeScript 的编译和模块化规则之间的转化都是通过 AST 来实现对代码的检查、分析以及编译等操作。

  • 无论什么语言 【java、python】,都有一个共同的部分,将源代码作为纯文本解析成为抽象语法树AST的数据结构
  • javascript世界中,你可以认为抽象语法树(AST)是最底层
  • 因此了解 js 编译执行的原理,那么你就得了解 AST

AST 如何生成​

  • js执行的第一步就是读取js文件中的字符流,然后通过词法分析器生成token,之后再通过语法分析生成AST, 最后生成机器码执行

实现词法分析器​

  • 词法分析器里,每个关键字是一个 Token ,每个标识符是一个 Token,每个操作符是一个 Token,每个标点符号也都是一个 Token。除此之外,还会过滤掉源程序中的注释和空白字符(换行符、空格、制表符等。