Example #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)
Example #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)
Example #3
0
 def expand_list(form):
     return rt.reduce(expand_list_rfn, EMPTY_VECTOR, form)
Example #4
0
 def expand_list(form):
     return rt.reduce(expand_list_rfn, EMPTY_VECTOR, form)
Example #5
0
 def flatten_map(form):
     return rt.reduce(flatten_map_rfn, EMPTY_VECTOR, form)
Example #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)
Example #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)