`esprima` AST Tree: Как легко обнаружить и добавить функцию паренов?

TL;DR: я хочу сделать то же самое, что и там, https://github.com/nolanlawson/optimize-js но с esprima когда я прохожу через дерево AST с estraverse,

ESPrima предоставляет одинаковые выходные узлы для следующего кода:

!function (){}()

а также

!(function (){})()

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

Например - я пройду через дерево AST. На узле ExpressionStatement ExpressionStatement функции я хочу проверить - если у этого узла нет символов вокруг функции - я хочу добавить его.

Итак, как я могу определить функции паренов, как я могу их добавить? Я смотрю на токены, но я понятия не имею, как я могу связать плоский объект токенов с объектом с указанным узлом AST.

1 ответ

Кажется, это задача не для esprima, а для escodegen https://github.com/estools/escodegen/issues/315

Другие вопросы по тегам