aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/mono_opt.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-08-03 19:01:16 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-08-03 19:01:16 -0400
commit9a9f1738a8eae9df07f97da224cd9cf45033e9dc (patch)
treec0157862ff2f69cb327072dedf21191b973bfdaa /src/mono_opt.sml
parentf946d43f10e2f78d179db30c3c9ae8dcc10f3c10 (diff)
Mono_opt for urlifying bools
Diffstat (limited to 'src/mono_opt.sml')
-rw-r--r--src/mono_opt.sml11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mono_opt.sml b/src/mono_opt.sml
index 6558115c..77071985 100644
--- a/src/mono_opt.sml
+++ b/src/mono_opt.sml
@@ -185,6 +185,17 @@ fun exp e =
| EWrite (EFfiApp ("Basis", "urlifyString", [e]), _) =>
EFfiApp ("Basis", "urlifyString_w", [e])
+ | EFfiApp ("Basis", "urlifyBool", [(ECon (PConFfi {con = "True", ...}, NONE), _)]) =>
+ EPrim (Prim.String "1")
+ | EFfiApp ("Basis", "urlifyBool", [(ECon (PConFfi {con = "False", ...}, NONE), _)]) =>
+ EPrim (Prim.String "0")
+ | EWrite (EFfiApp ("Basis", "urlifyBool", [(ECon (PConFfi {con = "True", ...}, NONE), _)]), loc) =>
+ EWrite (EPrim (Prim.String "1"), loc)
+ | EWrite (EFfiApp ("Basis", "urlifyBool", [(ECon (PConFfi {con = "False", ...}, NONE), _)]), loc) =>
+ EWrite (EPrim (Prim.String "0"), loc)
+ | EWrite (EFfiApp ("Basis", "urlifyBool", [e]), _) =>
+ EFfiApp ("Basis", "urlifyBool_w", [e])
+
| EWrite (ECase (discE, pes, {disc, ...}), loc) =>
optExp (ECase (discE,
map (fn (p, e) => (p, (EWrite e, loc))) pes,