This commit is contained in:
Paul Tagliamonte 2012-12-22 21:31:05 -05:00
parent c953692816
commit c458fa6a37

View File

@ -7,6 +7,7 @@ from hy.lang.string import HYString
from hy.lang.symbol import HYSymbol from hy.lang.symbol import HYSymbol
from hy.lang.list import HYList from hy.lang.list import HYList
from hy.lang.bool import HYBool from hy.lang.bool import HYBool
from hy.lang.map import HYMap
from hy.lang.builtins import builtins from hy.lang.builtins import builtins
from hy.lang.natives import natives from hy.lang.natives import natives
@ -112,6 +113,8 @@ class AST27Converter(object):
HYNumber: self.render_number, HYNumber: self.render_number,
HYSymbol: self.render_symbol, HYSymbol: self.render_symbol,
HYBool: self.render_bool, HYBool: self.render_bool,
HYList: self.render_list,
HYMap: self.render_map,
} }
self.native_cases = { self.native_cases = {
@ -173,6 +176,20 @@ class AST27Converter(object):
""" Render a string to AST """ """ Render a string to AST """
return ast.Str(s=str(node)) return ast.Str(s=str(node))
def render_list(self, node):
ret = []
for c in node.get_children():
ret.append(self.render(c))
return ast.List(elts=ret, ctx=ast.Load())
def render_map(self, node):
keys = []
values = []
for key in node:
keys.append(self.render(key))
values.append(self.render(node[key]))
return ast.Dict(keys=keys, values=values)
def render_bool(self, node): def render_bool(self, node):
""" Render a boolean to AST """ """ Render a boolean to AST """
thing = "True" if node else "False" thing = "True" if node else "False"