Я хотел бы иметь возможность преобразовать код Python (строку) в дерево разбора, изменить его на уровне дерева, а затем преобразовать дерево в код (строку).При преобразовании в дерево разбора и обратно в код без какой-либо модификации на уровне дерева полученный код должен точно соответствовать исходному входному коду.
Я бы хотел использовать Python для этого.Я нашел модули ast
и parser
python, однако деревья потеряли информацию об исходном коде.Что касается модуля parser
, я не могу понять, как управлять деревом разбора или преобразовывать его в код.
Вот что у меня есть.
import ast
import astor # pip install astor
import parser
code = 'hi = 0'
ast_tree = ast.parse(code)
code_from_ast = astor.to_source(tree) # 'hi = 0\n'
parser_tree = parser.suite(code)
code_from_parser = ???