summaryrefslogtreecommitdiff
path: root/src/monoize.sml
diff options
context:
space:
mode:
Diffstat (limited to 'src/monoize.sml')
-rw-r--r--src/monoize.sml19
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)