• 技术文章 >Web开发 >JavaScript

    JavaScript如何编写解释器

    宋雪维宋雪维2021-02-22 11:08:25原创3260

    使用JavaScript编写一个解释器看起来很难,其实实现原理很简单,就是使用JavaScript对象属性利用字符串表达这个特性可解释出来,解释器在JavaScript中发挥重要的解释作用,本文向大家介绍JavaScript编写解释器的简单操作,详情请看本文。

    一、JavaScript解释器介绍

    JavaScript解释器又名js引擎。

    JavaScript是解释型语言,这就是说它无需编译,直接由JavaScript引擎直接执行。

    二、编写JavaScript解释器

    1、使用visitor.ts 创建一个Visitor类,并提供一个方法操作ES节点。

    import * as ESTree from "estree";
    class Visitor {
      visitNode(node: ESTree.Node) {
        // ...
      }
    }
    export default Visitor;

    2、使用interpreter.ts 创建一个Interpreter类,用于运行ES节点树。

    import Visitor from "./visitor";
    import * as ESTree from "estree";
    class Interpreter {
      private visitor: Visitor;
      constructor(visitor: Visitor) {
        this.visitor = visitor;
      }
      interpret(node: ESTree.Node) {
        this.visitor.visitNode(node);
      }
    }
    export default Interpreter;

    3、vm.ts 对外暴露run方法,并使用acorn code->ast后,交给Interpreter实例进行解释。

    const acorn = require("acorn");
    import Visitor from "./visitor";
    import Interpreter from "./interpreter";
    
    const jsInterpreter = new Interpreter(new Visitor());
    
    export function run(code: string) {
      const root = acorn.parse(code, {
        ecmaVersion: 8,
        sourceType: "script",
      });
      return jsInterpreter.interpret(root);
    }

    以上就是JavaScript编写解释器的过程,大家直接套入代码使用即可,更多JavaScript学习推荐:JavaScript教程

    专题推荐:js
    品易云
    上一篇:jQuery中css(properties)如何使用? 下一篇:JavaScript解释器是什么?

    相关文章推荐

    • Python中Operator计算函数• python中remove()方法如何使用删除后的值?• Python中Kafka是什么• python标识符是什么意思?• Python中NumPy的基本概念• 如何在Python中生成ndarray

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网