Improved Easy_domain, with boolean env vars
[hcoop/domtool2.git] / src / printFn.sml
index 871c1df..42282aa 100644 (file)
@@ -115,9 +115,13 @@ fun p_exp' pn (e, _) =
 
       | ESkip => keyword "_"
       | ESet (x, e) => parenIf pn [exp x, space 1, punct "=", space 1, p_exp e]
-      | EGet (x1, x2, e) => parenIf pn [dBox [exp x1, space 1, punct "<-",
-                                             space 1, exp x2, punct ";", space 1],
-                                       p_exp e]
+      | EGet (x1, NONE, x2, e) => parenIf pn [dBox [exp x1, space 1, punct "<-",
+                                                   space 1, exp x2, punct ";", space 1],
+                                             p_exp e]
+      | EGet (x1, SOME t, x2, e) => parenIf pn [dBox [exp x1, space 1, punct ":", space 1, p_typ t,
+                                                     space 1, punct "<-",
+                                                     space 1, exp x2, punct ";", space 1],
+                                               p_exp e]
       | ESeq es => parenIf pn (valOf (foldr (fn (e, NONE) => SOME [p_exp e]
                                        | (e, SOME ds) => SOME (dBox [p_exp e, punct ";", newline] :: ds))
                                      NONE es))
@@ -128,6 +132,9 @@ fun p_exp' pn (e, _) =
                                 keyword "end"]
       | EWith (e1, (ESkip, _)) => dBox [p_exp e1, space 1, keyword "with", space 1, keyword "end"]
       | EWith (e1, e2) => dBox [p_exp e1, space 1, keyword "with", p_exp e2, space 1, keyword "end"]
+      | EIf (e1, e2, e3) => dBox [keyword "if", space 1, p_exp e1,
+                                 space 1, keyword "then", space 1, p_exp e2,
+                                 space 1, keyword "else", space 1, p_exp e3]
 and p_exp e = p_exp' false e
 
 fun p_decl d =