Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 修改后是否可以将巴比伦解析的AST转换回源代码?_Javascript_Babeljs_Abstract Syntax Tree_Babel Babylon - Fatal编程技术网

Javascript 修改后是否可以将巴比伦解析的AST转换回源代码?

Javascript 修改后是否可以将巴比伦解析的AST转换回源代码?,javascript,babeljs,abstract-syntax-tree,babel-babylon,Javascript,Babeljs,Abstract Syntax Tree,Babel Babylon,我试图通过以下方式修改JavaScript源代码: 使用解析源代码并获取AST 使用遍历AST,并在需要时进行一些修改 将AST返回到JavaScript源代码 前两个步骤相当简单。但我还是坚持回到源代码上来 我做了一些搜索,只找到了将AST转换为较低版本JavaScript代码的示例 有什么建议吗?这不是每个传输程序都使用的过程吗?@Bergi,我试图将AST转换回其原始形式(ES2015 synatx),而不是将其转换成旧的SYNTAX,这意味着将AST转换回代码的过程在任何地方都是一样的。

我试图通过以下方式修改JavaScript源代码:

  • 使用解析源代码并获取AST
  • 使用遍历AST,并在需要时进行一些修改
  • 将AST返回到JavaScript源代码
  • 前两个步骤相当简单。但我还是坚持回到源代码上来

    我做了一些搜索,只找到了将AST转换为较低版本JavaScript代码的示例


    有什么建议吗?

    这不是每个传输程序都使用的过程吗?@Bergi,我试图将AST转换回其原始形式(ES2015 synatx),而不是将其转换成旧的SYNTAX,这意味着将AST转换回代码的过程在任何地方都是一样的。它是否可以传输到不同的JS版本,这取决于第2步中所做的修改。(好吧,你甚至可以不做任何转换就运行Babel)。你发现的例子是如何做到这一点的?你能链接它们吗?@Bergi,正如你所说,如果我不提供任何插件
    babylon.parse
    ,修改AST后,babel generate会将AST返回到我想要的,对吗?(因为没有插件进行转换)。下面是链接:是的,一般来说,
    生成(解析(代码))==code
    (身份转换)。或者,根据那篇文章,
    babel.transform(code,{plugins:[]}).out==code