Various improvements made while working on relwiki
[bpt/mlt.git] / src / tree.sml
index c74df19..8949dfb 100644 (file)
@@ -49,13 +49,15 @@ struct
       | Eq_e of exp * exp | Neq_e of exp * exp
       | Gt_e of exp * exp | Gte_e of exp * exp
       | Lt_e of exp * exp | Lte_e of exp * exp
-      | Cons_e of exp * exp
+      | Cons_e of exp * exp | Compose_e of exp * exp
       | Record_e of bool * (ident * exp) list
       | RecordUpd_e of exp * (ident * exp) list
       | Proj_e of ident | App_e of exp * exp
       | Case_e of exp * (pat * exp) list
       | Fn_e of (pat * exp) list
       | Raise_e of exp
+      | Let_e of block * exp
+      | If_e of exp * exp * exp
     and exp = EXP of exp' withext
 
     and blockItem' =
@@ -67,7 +69,7 @@ struct
       | Open_i of path list                                 (* imports to top level *)
       | Ifthenelse_i of exp * block * block option          (* if statement *)
       | Case_i of exp * (pat * block) list                  (* case statement *)
-      | Foreach_i of ident * exp * block                    (* foreach statement with list *)
+      | Foreach_i of pat * exp * block                    (* foreach statement with list *)
       | For_i of ident * exp * exp * block                  (* foreach statement with integer range *)
       | TryCatch_i of block * (pat * block) list            (* try...catch exception handlers w/ pattern matching *)
     and blockItem = BITEM of blockItem' withext