diff options
author | 2009-03-10 12:44:40 -0400 | |
---|---|---|
committer | 2009-03-10 12:44:40 -0400 | |
commit | 18c2f489867bf282c49346eb090b22e41ec5f67a (patch) | |
tree | 82f3cb492c30ab735fe779934eca0e58a1e6b461 /src/jscomp.sml | |
parent | 998ec0f6506d8b7065fbe277c253188b38bcac7c (diff) |
ListEdit demo, minus prose
Diffstat (limited to 'src/jscomp.sml')
-rw-r--r-- | src/jscomp.sml | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/jscomp.sml b/src/jscomp.sml index 23b6e936..37bbf79d 100644 --- a/src/jscomp.sml +++ b/src/jscomp.sml @@ -409,6 +409,12 @@ fun process file = Print.prefaces "Can't unurlify" [("t", MonoPrint.p_typ MonoEnv.empty t)]; ("ERROR", st)) + fun padWith (ch, s, len) = + if size s < len then + padWith (ch, String.str ch ^ s, len - 1) + else + s + fun jsExp mode skip outer = let val len = length outer @@ -448,7 +454,16 @@ fun process file = else "\\074" | #"\\" => "\\\\" - | ch => String.str ch) s + | #"\n" => "\\n" + | #"\r" => "\\r" + | #"\t" => "\\t" + | ch => + if Char.isPrint ch then + String.str ch + else + "\\" ^ padWith (#"0", + Int.fmt StringCvt.OCT (ord ch), + 3)) s ^ "\"") | _ => str (Prim.toString p) @@ -878,6 +893,15 @@ fun process file = | EDml _ => unsupported "DML" | ENextval _ => unsupported "Nextval" | EUnurlify _ => unsupported "EUnurlify" + | EJavaScript (_, e as (EAbs _, _), _) => + let + val (e, st) = jsE inner (e, st) + in + (strcat [str "\"cr(\"+ca(", + e, + str ")+\")\""], + st) + end | EJavaScript (_, e, _) => let val (e, st) = jsE inner (e, st) |