0

以下是我写的代码

`js
  var esprima = require('esprima');
  var escodegen = require('escodegen');
  var a = "var a = 2";
  var ast = esprima.tokenize(a);
  var output = escodegen.generate(ast);
  console.log(output);
`

我能够对代码字符串进行标记,但在生成代码时出现错误。我浏览了多个样本,到处都遵循相同的模式。我不明白我做错了什么。

4

1 回答 1

0

该函数esprima.tokenize不生成 AST,只是生成一个令牌数组。您要使用的是esprima.parse.

试试这个:

  var esprima = require('esprima');
  var escodegen = require('escodegen');
  var a = "var a = 2";
  var ast = esprima.parse(a);
  var output = escodegen.generate(ast);
  console.log(output);

它会工作

于 2019-01-12T19:52:28.440 回答