Я пишу сценарий для преобразования коллекции js файлов в один файл, который будет содержать все определения внутри файла js как
const filename = { filename definitions }
Пока я могу согласовать файл в этот формат, но у меня возникают проблемы с определением переменных и функций верхнего уровня в файле, например, function main ().
Мне нужно сделать это, чтобы я мог заменить их в скрипте на fileName. main ().
Я пытался использовать slimit, но slimit вызывает ошибку для ключевых слов let или шаблонных литералов (${var}
), вот рабочий код для других случаев
from slimit.visitors.scopevisitor import ScopeTreeVisitor
from slimit.scope import SymbolTable
from slimit.parser import Parser
from slimit.visitors import nodevisitor
def createMap(data):
sym_table = SymbolTable()
visitor = ScopeTreeVisitor(sym_table)
parser = Parser()
tree = parser.parse(data)
visitor.visit(tree)
print(list(sym_table.globals.symbols.keys()))
где данные - это файл js в виде строки.