diff options
Diffstat (limited to 'src/monoize.sml')
-rw-r--r-- | src/monoize.sml | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/monoize.sml b/src/monoize.sml index 6b2974ee..ad177a64 100644 --- a/src/monoize.sml +++ b/src/monoize.sml @@ -140,9 +140,7 @@ fun monoExp env (all as (e, loc)) = | L.EApp ( (L.ECApp ( - (L.ECApp ( - (L.ECApp ((L.EFfi ("Basis", "cdata"), _), _), _), - _), _), + (L.ECApp ((L.EFfi ("Basis", "cdata"), _), _), _), _), _), se) => (L'.EFfiApp ("Basis", "htmlifyString", [monoExp env se]), loc) | L.EApp ( @@ -234,8 +232,11 @@ fun monoExp env (all as (e, loc)) = in case xml of - (L.EApp ((L.ECApp ((L.EFfi ("Basis", "cdata"), _), - _), _), (L.EPrim (Prim.String s), _)), _) => + (L.EApp ((L.ECApp ( + (L.ECApp ((L.EFfi ("Basis", "cdata"), _), + _), _), + _), _), + (L.EPrim (Prim.String s), _)), _) => if CharVector.all Char.isSpace s then (L'.EStrcat (tagStart, (L'.EPrim (Prim.String "/>"), loc)), loc) else @@ -243,6 +244,14 @@ fun monoExp env (all as (e, loc)) = | _ => normal () end + | L.EApp ((L.ECApp ( + (L.ECApp ((L.EFfi ("Basis", "lform"), _), _), _), + _), _), + xml) => + (L'.EStrcat ((L'.EPrim (Prim.String "<form>"), loc), + (L'.EStrcat (monoExp env xml, + (L'.EPrim (Prim.String "</form>"), loc)), loc)), loc) + | L.EApp (e1, e2) => (L'.EApp (monoExp env e1, monoExp env e2), loc) | L.EAbs (x, dom, ran, e) => (L'.EAbs (x, monoType env dom, monoType env ran, monoExp (Env.pushERel env x dom) e), loc) |