| 125 |
vars = Env.add x (Stack env.stack_size) env.vars; |
vars = Env.add x (Stack env.stack_size) env.vars; |
| 126 |
stack_size = env.stack_size + 1 } |
stack_size = env.stack_size + 1 } |
| 127 |
|
|
| 128 |
) env (Patterns.fv_list br.Typed.br_pat) in |
) env (Patterns.fv br.Typed.br_pat) in |
| 129 |
(br.Typed.br_pat, compile env tail br.Typed.br_body) |
(br.Typed.br_pat, compile env tail br.Typed.br_body) |
| 130 |
|
|
| 131 |
|
|
| 159 |
|
|
| 160 |
let compile_let_decl env decl = |
let compile_let_decl env decl = |
| 161 |
let pat = decl.Typed.let_pat in |
let pat = decl.Typed.let_pat in |
| 162 |
let (env,code) = enter_globals env (Patterns.fv_list pat) in |
let (env,code) = enter_globals env (Patterns.fv pat) in |
| 163 |
(env, (Push (compile_expr env decl.Typed.let_body)) :: (Split pat) :: code) |
(env, (Push (compile_expr env decl.Typed.let_body)) :: (Split pat) :: code) |
| 164 |
|
|
| 165 |
let compile_rec_funs env funs = |
let compile_rec_funs env funs = |