javascript - 如何在 SpiderMonkey 中从 AST 生成 JavaScript 代码?

标签 javascript parsing mozilla spidermonkey

我正在使用SpiderMonkey对于一个项目,我需要它来完成两项任务:

  1. 在给定 JavaScript 字符串的情况下获取 AST 节点信息。
  2. 从 AST 节点编写 JavaScript。

第一个任务是通过 js Reflect.parse('var a = 13;'); 完成的,它返回 AST,很好!

从 AST 到 JavaScript

第二个任务是我需要的。我想指示 js (或者可能是 Reflect 对象,我想)获取一个节点:

{
  type:"Program", 
  body:[
    {
      type:"VariableDeclaration", 
      kind:"var", 
      declarations:[
        {
          type:"VariableDeclarator", 
          id:{type:"Identifier", name:"a"}, 
          init:{type:"Literal", value:13}
        }
      ]
    }
  ]
}

并写下:var a = 13;

如何实现这一点,这是 Reflect.parse 的逆过程?谢谢

最佳答案

如果 Spidermonkey 没有内置模块来执行此操作,您必须自己构建一个。

您需要执行的所有详细信息都在这里:Compiling an AST back to source code

关于javascript - 如何在 SpiderMonkey 中从 AST 生成 JavaScript 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31946534/

相关文章:

javascript - 打印 html 页面 mozilla firefox

javascript - 异步流和全局变量

javascript - 如何与 ng-switch 中的全局变量进行比较

c++ - 了解 C++ 中的数据解析(对于新手程序员)

javascript - 词法分析器是用 Javascript 编写的吗?

javascript - 使用 Mozilla 插件计算仅 HTTP cookie

javascript - 是否可以使用 Canvas 制作渐变透明/图层蒙版图像?

javascript - 在 Cordova 中添加到 URL 的感叹号

c# - 从 XML 声明片段 : XmlDeclaration is not supported for partial content parsing 获取 XML 编码

javascript - Mozilla团队由于内容安全政策而禁用了我的插件-如何正确设置 list ?