以下是我编写的代码
`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);
`
我能够标记代码字符串,但生成代码时出错。我浏览了多个样本,到处都遵循相同的模式。我不明白我做错了什么。
函数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);
它会工作