Как я могу преобразовать код Python в дерево разбора и обратно в исходный код? - PullRequest
0 голосов
/ 07 июня 2019

Я хотел бы иметь возможность преобразовать код 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 = ???
...