| 1 | module Level : sig |
| 2 | type t |
| 3 | |
| 4 | val init : t |
| 5 | (** "outermost" in Applel's code *) |
| 6 | |
| 7 | val next : t -> name:Tiger_temp.Label.t -> formals:bool list -> t |
| 8 | (** "newLevel" in Appel's code *) |
| 9 | end |
| 10 | |
| 11 | type gen_stm = |
| 12 | (Tiger_temp.Label.t * Tiger_temp.Label.t) -> Tiger_tree.stm |
| 13 | |
| 14 | type exp |
| 15 | |
| 16 | type access |
| 17 | |
| 18 | val alloc_local : level:Level.t -> escapes:bool -> access |
| 19 | |
| 20 | val formals : level:Level.t -> access list |
| 21 | |
| 22 | val unEx : exp -> Tiger_tree.exp |
| 23 | val unNx : exp -> Tiger_tree.stm |
| 24 | val unCx : exp -> gen_stm |
| 25 | |
| 26 | val dummy__FIXME : exp (* FIXME: Remove dummy when real is ready *) |