JS抽象语法树(AST)

什么是抽象语法树

抽象语法树(Abstract Syntax Tree)也称为AST语法树,是源代码语法所对应的树状结构。也就是说,一种编程语言的源代码,通过构建语法树的形式将源代码中的语句映射到树中的每一个节点上。

活跃的js解析引擎

  • esprima
  • acorn
  • traceur-compiler
  • uglifyjs
  • v8

Babel AST

  • @babel/parser
    babel 解析语法树,内部采用的是@babel/parser包,它依赖于acorn,生成的语法树遵守 estree规范
    babel运行原理
  1. 先把源代码生成抽象语法树
  2. 根据目标代码的标准
  3. 使用插件把语法树转换为目标代码的语法树
  4. 有语法树再生成源代码

编写一个babel小插件

参考资料

babel插件

你可能感兴趣的:(JS抽象语法树(AST))