Silly dot-notation thing
This commit is contained in:
parent
34b2f2ee5b
commit
54e6c30eff
@ -124,6 +124,10 @@ class AST27Converter(object):
|
|||||||
HYMap: self.render_map,
|
HYMap: self.render_map,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.startswith = {
|
||||||
|
".": self._ast_dot
|
||||||
|
}
|
||||||
|
|
||||||
self.native_cases = {
|
self.native_cases = {
|
||||||
"defn": self._defn,
|
"defn": self._defn,
|
||||||
"def": self._def,
|
"def": self._def,
|
||||||
@ -137,6 +141,25 @@ class AST27Converter(object):
|
|||||||
}
|
}
|
||||||
self.in_fn = False
|
self.in_fn = False
|
||||||
|
|
||||||
|
def _ast_dot(self, node):
|
||||||
|
inv = node.get_invocation()
|
||||||
|
args = inv['args']
|
||||||
|
target = args.pop(0)
|
||||||
|
attr = inv['function'][1:]
|
||||||
|
|
||||||
|
return ast.Call(
|
||||||
|
func=ast.Attribute(
|
||||||
|
value=ast.Str(s=str(target)),
|
||||||
|
attr=str(attr),
|
||||||
|
ctx=ast.Load()
|
||||||
|
),
|
||||||
|
args=[self.render(x) for x in args],
|
||||||
|
keywords=[],
|
||||||
|
starargs=None,
|
||||||
|
kwargs=None
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def _def(self, node):
|
def _def(self, node):
|
||||||
""" For the `def` operator """
|
""" For the `def` operator """
|
||||||
inv = node.get_invocation()
|
inv = node.get_invocation()
|
||||||
@ -262,7 +285,7 @@ class AST27Converter(object):
|
|||||||
|
|
||||||
def render_list(self, node):
|
def render_list(self, node):
|
||||||
ret = []
|
ret = []
|
||||||
for c in node.get_children():
|
for c in node:
|
||||||
ret.append(self.render(c))
|
ret.append(self.render(c))
|
||||||
return ast.List(elts=ret, ctx=ast.Load())
|
return ast.List(elts=ret, ctx=ast.Load())
|
||||||
|
|
||||||
@ -306,6 +329,10 @@ class AST27Converter(object):
|
|||||||
if inv['function'] in self.native_cases:
|
if inv['function'] in self.native_cases:
|
||||||
return self.native_cases[inv['function']](node)
|
return self.native_cases[inv['function']](node)
|
||||||
|
|
||||||
|
for key in self.startswith:
|
||||||
|
if inv['function'].startswith(key):
|
||||||
|
return self.startswith[key](node)
|
||||||
|
|
||||||
c = []
|
c = []
|
||||||
for child in node.get_children():
|
for child in node.get_children():
|
||||||
c.append(self.render(child))
|
c.append(self.render(child))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user