`esprima` AST Tree:如何轻松检测和添加功能parens?

时间:2016-10-10 14:43:43

标签: esprima

TL; DR:当我使用esprima遍历AST树时,我希望与https://github.com/nolanlawson/optimize-js做同样的事情,但使用estraverse

ESPrima为以下代码提供相同的输出节点:

!function (){}()

!(function (){})()

http://esprima.org/demo/parse.html?code=!function%20()%7B%7D()%0A%0A!(function%20()%7B%7D)()

例如 - 我将遍历AST树。在函数表达式ExpressionStatement节点我想检查 - 如果该节点没有函数的parens - 我想添加它。

那么,我如何能够检测功能parens,我如何添加它们?我看看令牌,但我不知道如何将flat tokens对象与具有指定AST节点的对象相关联。

1 个答案:

答案 0 :(得分:1)

似乎它的任务不是为了esprima,而是为了escodegen https://github.com/estools/escodegen/issues/315