def compile_optimize(exp): compiler = Compiler() exp = il.element(exp).alpha(Environment(), compiler) exp = exp.cps(compiler, done()) env = Environment() compiler.lamda_stack = [exp] exp.analyse(compiler) return exp.optimize(env, compiler)
def compile(exp): compiler = Compiler() exp = il.element(exp).cps(compiler, done()) env = Environment() exp = exp.optimize(env, compiler) exps, has_statement = exp.pythonize(Environment(), compiler) compiler = Compiler() return begin(*exps).to_code(compiler)
def cps(exp): return il.element(exp).cps(Compiler(), done())
def generate_code(exp): exps, has_statement = il.element(exp).pythonize(Environment(), Compiler()) compiler = Compiler() return begin(*exps).to_code(compiler)