示例#1
0
def compile_map_literal(form, ctx):
    ctx.push_const(code.intern_var(u"pixie.stdlib", u"hashmap"))

    rt.reduce(CompileMapRf(ctx), nil, form)

    size = rt.count(form).int_val() * 2
    ctx.bytecode.append(code.INVOKE)
    ctx.bytecode.append(r_uint(size) + 1)
示例#2
0
def compile_map_literal(form, ctx):
    ctx.push_const(code.intern_var(u"pixie.stdlib", u"hashmap"))

    rt.reduce(CompileMapRf(ctx), nil, form)

    size = rt.count(form) * 2
    ctx.bytecode.append(code.INVOKE)
    ctx.bytecode.append(r_uint(size) + 1)
    if size > 0:
        ctx.sub_sp(size)

    compile_meta(rt.meta(form), ctx)
示例#3
0
文件: reader.py 项目: foodhype/pixie
 def expand_list(form):
     return rt.reduce(expand_list_rfn, EMPTY_VECTOR, form)
示例#4
0
文件: reader.py 项目: rowhit/pixie
 def expand_list(form):
     return rt.reduce(expand_list_rfn, EMPTY_VECTOR, form)
示例#5
0
文件: reader.py 项目: rowhit/pixie
 def flatten_map(form):
     return rt.reduce(flatten_map_rfn, EMPTY_VECTOR, form)
示例#6
0
def compile_set_literal(form, ctx):
    vals = rt.reduce(ConsReduce(), nil, form)
    vector_call = rt.cons(rt.symbol(rt.wrap(u"vector")), vals)
    set_call = rt.cons(rt.symbol(rt.wrap(u"set")), rt.cons(vector_call, nil))

    compile_cons(set_call, ctx)
示例#7
0
def compile_set_literal(form, ctx):
    vals = rt.reduce(ConsReduce(), nil, form)
    vector_call = rt.cons(rt.symbol(rt.wrap(u"vector")), vals)
    set_call = rt.cons(rt.symbol(rt.wrap(u"set")), rt.cons(vector_call, nil))

    compile_cons(set_call, ctx)