Beispiel #1
0
def transform_stackless_function(fn, callback_for_transform=None):
    def wrapper(argv):
        return fn()
    t = rtype_stackless_function(wrapper)
    if callback_for_transform:
        callback_for_transform(t)
    if conftest.option.view:
        t.view()
    st = StacklessTransformer(t, wrapper, False)
    st.transform_all()
Beispiel #2
0
def transform_stackless_function(fn, callback_for_transform=None):
    def wrapper(argv):
        return fn()

    t = rtype_stackless_function(wrapper)
    if callback_for_transform:
        callback_for_transform(t)
    if conftest.option.view:
        t.view()
    st = StacklessTransformer(t, wrapper, False)
    st.transform_all()
Beispiel #3
0
def llinterp_stackless_function(fn, returntranslator=False, assert_unwind=True):
    def wrapper(argv):
        return fn()

    t = rtype_stackless_function(wrapper)
    st = StacklessTransformer(t, wrapper, assert_unwind=assert_unwind)
    st.transform_all()
    if conftest.option.view:
        t.view()

    graph = graphof(t, st.slp_entry_point)
    r_list_of_strings = t.rtyper.getrepr(t.annotator.binding(graph.startblock.inputargs[0]))
    ll_list = r_list_of_strings.convert_const([""])
    interp = llinterp.LLInterpreter(t.rtyper)
    res = interp.eval_graph(graph, [ll_list])
    if returntranslator:
        return res, t
    else:
        return res
Beispiel #4
0
def llinterp_stackless_function(fn,
                                returntranslator=False,
                                assert_unwind=True):
    def wrapper(argv):
        return fn()

    t = rtype_stackless_function(wrapper)
    st = StacklessTransformer(t, wrapper, assert_unwind=assert_unwind)
    st.transform_all()
    if conftest.option.view:
        t.view()

    graph = graphof(t, st.slp_entry_point)
    r_list_of_strings = t.rtyper.getrepr(
        t.annotator.binding(graph.startblock.inputargs[0]))
    ll_list = r_list_of_strings.convert_const([''])
    interp = llinterp.LLInterpreter(t.rtyper)
    res = interp.eval_graph(graph, [ll_list])
    if returntranslator:
        return res, t
    else:
        return res