【发布时间】:2020-07-24 11:41:23
【问题描述】:
我正在处理 Python 代码的已解析 AST 字符串。现在,我正处于一个阶段,我想将小树结构转换回代码以进行一些分析。
import ast
ast_string = ast.dump(ast.parse("[1,2,3]"))
print(ast_string)
# 'Module(body=[Expr(value=List(elts=[Num(n=1), Num(n=2), Num(n=3)], ctx=Load()))])'
现在,我想将这个 Module(body=[Expr(value=List(elts=[Num(n=1), Num(n=2), Num(n=3)], ctx=Load()))]) 转换回代码。
例子:
def ast_to_code(ast_string):
....
code = ast_to_code(ast_string)
print(code) # [1,2,3]
提前致谢。我在网上搜索找到了不同的库,它们采用解析树对象,然后将其转换回代码。我找不到可以将字符串中的任何 AST 树转换回代码的东西。
【问题讨论】:
-
Nomiluks:我也有同样的问题,你找到任何 Python 解决方案了吗?
-
你试过libcst吗?我能够从节点生成代码,这也是与此相关的帖子:stackoverflow.com/questions/62771691/…
标签: python parsing compiler-construction abstract-syntax-tree