在这之前,我们先实现 Variable 类,实现变量的存取方法。...// variable.ts
export enum Kind {
var = "var",
let = "let",
const = "const",
}
export type KindType...从语法树中我们可以看到三个陌生的节点类型,来看看它们分别代表什么意思:
VariableDeclaration
变量声明,kind 属性表示是什么类型的声明,因为 ES6 引入了 const/let。...const variable = scope.search(name);
// 返回的是定义的变量对象(age)的值,即18
if (variable) return variable.value...从语法树中我们又看到两个陌生的节点类型,来看看它们分别代表什么意思:
AssignmentExpression
赋值表达式节点,operator 属性表示一个赋值运算符,left 和 right 是赋值运算符左右的表达式