一个完全使用 javascript 实现的,小型且快速的 javascript 解析器
本次实践我们将使用 acorn.js ,它会帮我们进行词法分析,语法解析并转换为抽象语法树。...我们可以看到这段代码中存在 4 种节点类型,下面我们简单的介绍一下它们:
Program
根节点,即代表一整颗抽象语法树,body 属性是一个数组,包含了多个 Statement 节点。.../standard/es5";
const VISITOR = {
...es5,
};
class Visitor {
// 实现访问节点方法,通过节点类型访问对应的节点方法
visitNode...从语法树中我们可以看到三个陌生的节点类型,来看看它们分别代表什么意思:
VariableDeclaration
变量声明,kind 属性表示是什么类型的声明,因为 ES6 引入了 const/let。...从语法树中我们又看到两个陌生的节点类型,来看看它们分别代表什么意思:
AssignmentExpression
赋值表达式节点,operator 属性表示一个赋值运算符,left 和 right 是赋值运算符左右的表达式