def visit(self, node):
if not isinstance(node, sre_parse.SubPattern):
raise TypeError('{0!r} is not a subpattern'.format(node))
for op, args in node.data:
if not isinstance(args, (list, tuple)):
args = (args,)
op = normalize_token(op)
method = 'visit_' + op
visitor = getattr(self, method, None)
original_flags = self.flags
try:
if self.flags is None:
self.flags = node.pattern.flags
if self.flags & re.IGNORECASE:
for flag in locale_flags.values():
self.justified_flags |= flag
if visitor is not None:
ts = visitor(*args) or ()
for t in ts:
yield t
for t in self.generic_visit(*args):
yield t
finally:
self.flags = original_flags
评论列表
文章目录