def walker(node, source_lines, indent=''):
"""Recursively visit the ast in a preorder traversal."""
node_name = str(node)[0:str(node).index('(')]
value = None
if hasattr(node, 'value'):
if '(' in str(node.value):
value = str(node.value)[0:str(node.value).index('(')]
else:
value = node.value
name = node.name if hasattr(node, 'name') else None
print('{}{} {} (name: {}, value: {})'.format(
indent, CHAR_TUBE, node_name, name, value))
lines = [line for line in node.as_string().split('\n')]
for line in lines:
print(indent + FILL + '>>>' + Fore.BLUE + line + Fore.RESET)
for child in node.get_children():
walker(child, source_lines, indent + FILL + CHAR_PIPE)
评论列表
文章目录