aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/mono_opt.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-07-10 15:49:14 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-07-10 15:49:14 -0400
commit0e95aa2c802d0a4fa54ebf985133eb2584a1d9ba (patch)
treef8d063fc040cfc82b2b55093ef6053799b1c0a97 /src/mono_opt.sml
parent0c1f369955bcdfe949bb6793812ef8ead2963228 (diff)
More with attributes and efficient serialization
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 c9cd5f84..30b462bf 100644
--- a/src/mono_opt.sml
+++ b/src/mono_opt.sml
@@ -81,6 +81,17 @@ fun exp e =
| EStrcat ((EStrcat (e1, e2), loc), e3) =>
optExp (EStrcat (e1, (EStrcat (e2, e3), loc)), loc)
+ | EWrite (EStrcat (e1, e2), loc) =>
+ ESeq ((optExp (EWrite e1, loc), loc),
+ (optExp (EWrite e2, loc), loc))
+
+ | EWrite (EFfiApp ("Basis", "attrifyInt", [e]), _) =>
+ EFfiApp ("Basis", "attrifyInt_w", [e])
+ | EWrite (EFfiApp ("Basis", "attrifyFloat", [e]), _) =>
+ EFfiApp ("Basis", "attrifyFloat_w", [e])
+ | EWrite (EFfiApp ("Basis", "attrifyString", [e]), _) =>
+ EFfiApp ("Basis", "attrifyString_w", [e])
+
| _ => e
and optExp e = #1 (U.Exp.map {typ = typ, exp = exp} e)