`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