diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-08-03 19:01:16 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-08-03 19:01:16 -0400 |
commit | 9a9f1738a8eae9df07f97da224cd9cf45033e9dc (patch) | |
tree | c0157862ff2f69cb327072dedf21191b973bfdaa | |
parent | f946d43f10e2f78d179db30c3c9ae8dcc10f3c10 (diff) |
Mono_opt for urlifying bools
-rw-r--r-- | src/mono_opt.sml | 11 |
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, |