def generic_visit(self, node, phase=None):
"""Drive the visitor."""
phase = phase or constants.PRIMARY
for _, value in ast.iter_fields(node):
if isinstance(value, list):
for item in value:
if not isinstance(item, ast.AST):
continue
if not self.pre_visit(item):
continue
self.visit(item, phase=phase)
self.generic_visit(item, phase=phase)
self.post_visit(item)
elif isinstance(value, ast.AST):
if not self.pre_visit(value):
continue
self.visit(value, phase=phase)
self.generic_visit(value, phase=phase)
self.post_visit(value)
评论列表
文章目录