module Map = Tiger_map
module Sym = Tiger_symbol
+module Translate = Tiger_translate
module Type = Tiger_env_type
module Value = Tiger_env_value
{ typs : Type.env
; vals : Value.env
; loop : Sym.t option
+ ; level : Translate.Level.t
}
let base =
{ typs = Type.built_in
; vals = Value.built_in
; loop = None
+ ; level = Translate.Level.init
}
let get_typ {typs; _} k =
let loop_current {loop; _} =
loop
+
+let level_set t level =
+ {t with level}
+
+let level_get {level; _} =
+ level