前言
在这篇文章中,我们将通过 JS 构建我们自己的 JS 解释器,用 JS 写 JS,这听起来很奇怪,尽管如此,这样做我们将更熟悉 JS,也可以学习 JS 引擎是如何工作的!...一个完全使用 javascript 实现的,小型且快速的 javascript 解析器
本次实践我们将使用 acorn.js ,它会帮我们进行词法分析,语法解析并转换为抽象语法树。...我们可以看到这段代码中存在 4 种节点类型,下面我们简单的介绍一下它们:
Program
根节点,即代表一整颗抽象语法树,body 属性是一个数组,包含了多个 Statement 节点。...: Expression | null;
}
Identifier
顾名思义,标识符节点,我们写 JS 时定义的变量名,函数名,属性名,都归为标识符。...v.value : result;
},
}[operator](updateVar);
},
// 块语句节点
// 块语句的实现很简单,模拟创建一个块作用域,然后遍历