
使用JavaScript编写一个解释器看起来很难,其实实现原理很简单,就是使用JavaScript对象属性利用字符串表达这个特性可解释出来,解释器在JavaScript中发挥重要的解释作用,本文向大家介绍JavaScript编写解释器的简单操作,详情请看本文。
一、JavaScript解释器介绍
JavaScript解释器又名js引擎。
JavaScript是解释型语言,这就是说它无需编译,直接由JavaScript引擎直接执行。
二、编写JavaScript解释器
1、使用visitor.ts 创建一个Visitor类,并提供一个方法操作ES节点。
import*asESTreefrom"estree";
classVisitor{
visitNode(node:ESTree.Node){
//...
}
}
exportdefaultVisitor;
2、使用interpreter.ts 创建一个Interpreter类,用于运行ES节点树。
importVisitorfrom"./visitor";
import*asESTreefrom"estree";
classInterpreter{
privatevisitor:Visitor;
constructor(visitor:Visitor){
this.visitor=visitor;
}
interpret(node:ESTree.Node){
this.visitor.visitNode(node);
}
}
exportdefaultInterpreter;
3、vm.ts 对外暴露run方法,并使用acorn code->ast后,交给Interpreter实例进行解释。
constacorn=require("acorn");
importVisitorfrom"./visitor";
importInterpreterfrom"./interpreter";
constjsInterpreter=newInterpreter(newVisitor());
exportfunctionrun(code:string){
constroot=acorn.parse(code,{
ecmaVersion:8,
sourceType:"script",
});
returnjsInterpreter.interpret(root);
}原文来自:https://www.py.cn © 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END



















































暂无评论内容