diff src/cjr_print.sml @ 476:c9566d49ecfe

Handle EError returning a function; handle multiple cookies in one input header
author Adam Chlipala <adamc@hcoop.net>
date Sat, 08 Nov 2008 12:12:50 -0500
parents 20fab0e96217
children 8e055bbbd28b
line wrap: on
line diff
--- a/src/cjr_print.sml	Sat Nov 08 10:58:59 2008 -0500
+++ b/src/cjr_print.sml	Sat Nov 08 12:12:50 2008 -0500
@@ -70,14 +70,8 @@
 
 fun p_typ' par env (t, loc) =
     case t of
-        TFun (t1, t2) => parenIf par (box [string "(",
-                                           p_typ' true env t2,
-                                           space,
-                                           string "(*)",
-                                           space,
-                                           string "(",
-                                           p_typ env t1,
-                                           string "))"])
+        TFun (t1, t2) => (EM.errorAt loc "Function type remains";
+                          string "<FUNCTION>")
       | TRecord i => box [string "struct",
                           space,
                           string "__uws_",
@@ -967,6 +961,9 @@
              string "tmp;",
              newline,
              string "})"]
+      | EApp ((EError (e, (TFun (_, ran), _)), loc), _) =>
+        p_exp env (EError (e, ran), loc)
+
       | EFfiApp (m, x, es) => box [string "uw_",
                                    p_ident m,
                                    string "_",