diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-07-10 15:49:14 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-07-10 15:49:14 -0400 |
commit | 0e95aa2c802d0a4fa54ebf985133eb2584a1d9ba (patch) | |
tree | f8d063fc040cfc82b2b55093ef6053799b1c0a97 /src/mono_opt.sml | |
parent | 0c1f369955bcdfe949bb6793812ef8ead2963228 (diff) |
More with attributes and efficient serialization
Diffstat (limited to 'src/mono_opt.sml')
-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 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) |