X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=compiler%2Fsrc%2Flib%2Ftiger%2Ftiger_env_type.mli;h=c8810a76345f4df61a7475bd496bc4ba3eb2f8d7;hb=HEAD;hp=faeb84ac037afc40673cd8d28bab3693a7ad2892;hpb=523e2b063b9ba20329af61e18dc9a5ccbaca06a0;p=tiger.ml.git diff --git a/compiler/src/lib/tiger/tiger_env_type.mli b/compiler/src/lib/tiger/tiger_env_type.mli index faeb84a..c8810a7 100644 --- a/compiler/src/lib/tiger/tiger_env_type.mli +++ b/compiler/src/lib/tiger/tiger_env_type.mli @@ -1,3 +1,5 @@ +module Sym = Tiger_symbol + type unique type t = @@ -13,12 +15,12 @@ type t = { unique : unique ; ty : t } - | Name of Tiger_symbol.t * t option ref + | Name of Sym.t * t option ref and record_fields = - (Tiger_symbol.t * t) list + (Sym.t * t) list type env = - (Tiger_symbol.t, t ) Tiger_map.t + (Sym.t, t ) Tiger_map.t val built_in : env @@ -31,8 +33,9 @@ val is_record : t -> bool val is_name : t -> bool val if_record : t -> f:(record_fields -> 'a) -> otherwise:(unit -> 'a) -> 'a +val if_array : t -> f:(t -> 'a) -> otherwise:(unit -> 'a) -> 'a -val new_record : record_fields -> t -val new_array : t -> t +val new_record : name:Sym.t -> fields:record_fields -> t +val new_array : name:Sym.t -> ty:t -> t val to_string : t -> string