def visit(self, node):
'''Return the formatted version of an Ast node, or list of Ast nodes.'''
if isinstance(node, (list, tuple)):
return ','.join([self.visit(z) for z in node])
elif node is None:
return 'None'
else:
assert isinstance(node, ast.AST), node.__class__.__name__
method_name = 'do_' + node.__class__.__name__
method = getattr(self, method_name)
s = method(node)
# assert type(s) == type('abc'), (node, type(s))
assert g.isString(s), type(s)
return s
# Contexts...
# 2: ClassDef(identifier name, expr* bases,
# stmt* body, expr* decorator_list)
# 3: ClassDef(identifier name, expr* bases,
# keyword* keywords, expr? starargs, expr? kwargs
# stmt* body, expr* decorator_list)
#
# keyword arguments supplied to call (NULL identifier for **kwargs)
# keyword = (identifier? arg, expr value)
评论列表
文章目录