JavaScript AST (Abstract Syntax Tree) 是将 JavaScript 代码转换为抽象语法树的一种表示形式。它可以用来分析、转换和验证 JavaScript 代码。
EStree 是一种用于描述 JavaScript 代码抽象语法树的规范。它定义了 AST 节点类型和属性,以及节点间的关系。EStree 规范是由 ECMAScript 标准委员会制定的,旨在成为 JavaScript AST 的标准表示形式。
EStree 规范定义了许多节点类型,包括表达式、语句、声明等。每个节点类型都有其独特的属性和方法,用于描述 JavaScript 代码的结构和逻辑。通过 EStree 规范,我们可以构建出 JavaScript 代码的完整抽象语法树,从而对代码进行分析、转换和验证。
EStree 规范已经在许多 JavaScript 工具中得到了广泛应用,如 ESLint、Babel 等。理解 EStree 规范对于深入理解 JavaScript AST 和相关工具的实现非常重要。
ESTree 中的不同节点
所有节点类型都实现以下接口:
1 | interface Node { |
该type字段是表示AST变体类型的字符串。该loc字段表示节点的源位置信息。如果解析器没有生成有关节点源位置的信息,则该字段为null;否则它是一个对象,包括一个起始位置(被解析的源区域的第一个字符的位置)和一个结束位置.