Define the environments (for types and values)
[tiger.ml.git] / compiler / src / lib / tiger / tiger_env.ml
diff --git a/compiler/src/lib/tiger/tiger_env.ml b/compiler/src/lib/tiger/tiger_env.ml
new file mode 100644 (file)
index 0000000..f698f89
--- /dev/null
@@ -0,0 +1,25 @@
+module Map   = Tiger_map
+module Type  = Tiger_env_type
+module Value = Tiger_env_value
+
+type t =
+  { typs : Type.env
+  ; vals : Value.env
+  }
+
+let base =
+  { typs = Type.built_in
+  ; vals = Value.built_in
+  }
+
+let get_typ {typs; _} k =
+  Map.get typs ~k
+
+let get_val {vals; _} k =
+  Map.get vals ~k
+
+let set_typ t k v =
+  {t with typs = Map.set t.typs ~k ~v}
+
+let set_val t k v =
+  {t with vals = Map.set t.vals ~k ~v}
This page took 0.025385 seconds and 4 git commands to generate.