示例#1
0
文件: test_cfg.py 项目: fjarri/peval
def check_cfg(function, expected_edges, expected_exits, expected_raises):
    statements = get_body(function)
    cfg = build_cfg(statements)

    assert_labels_equal(cfg, expected_edges, expected_exits, expected_raises)

    if RENDER_GRAPHS:
        render_cfg(cfg, "test_" + function.__name__ + ".pdf")
示例#2
0
文件: fold.py 项目: qfhuang/peval-1
def fold(tree, constants):
    statements = tree.body
    cfg = build_cfg(statements)
    gen_sym = GenSym.for_tree(tree)
    new_nodes, temp_bindings = maximal_fixed_point(gen_sym, cfg.graph, cfg.enter, constants)
    constants = dict(constants)
    constants.update(temp_bindings)
    new_tree = replace_exprs(tree, new_nodes)
    return new_tree, constants