20
20
def transform(self, node, results):
21
21
name = results["name"]
22
if name.value == "xrange":
22
if name.value == u"xrange":
23
23
return self.transform_xrange(node, results)
24
elif name.value == "range":
24
elif name.value == u"range":
25
25
return self.transform_range(node, results)
27
27
raise ValueError(repr(name))
29
29
def transform_xrange(self, node, results):
30
30
name = results["name"]
31
name.replace(Name("range", prefix=name.get_prefix()))
31
name.replace(Name(u"range", prefix=name.prefix))
33
33
def transform_range(self, node, results):
34
34
if not self.in_special_context(node):
35
range_call = Call(Name("range"), [results["args"].clone()])
35
range_call = Call(Name(u"range"), [results["args"].clone()])
36
36
# Encase the range call in list().
37
list_call = Call(Name("list"), [range_call],
38
prefix=node.get_prefix())
37
list_call = Call(Name(u"list"), [range_call],
39
39
# Put things that were after the range() call after the list call.
40
40
for n in results["rest"]:
41
41
list_call.append_child(n)
45
44
P1 = "power< func=NAME trailer< '(' node=any ')' > any* >"
46
45
p1 = patcomp.compile_pattern(P1)