def get_all_nodes_in_bfs_order(ast_root):
q = [ast_root]
result = []
while len(q) > 0:
top = q.pop(0)
result.append(top)
for field, value in ast.iter_fields(top):
if isinstance(value, list):
for item in value:
if isinstance(item, ast.AST):
q.append(item)
elif isinstance(value, ast.AST):
result.append(value)
return result
评论列表
文章目录