Mercurial > urweb
comparison src/prim.sml @ 1256:d7d5b167f267
Avoid reimplementing conversion to C strings
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sat, 15 May 2010 12:52:34 -0400 |
parents | b06a2a65e670 |
children | fd1a49b51db5 |
comparison
equal
deleted
inserted
replaced
1255:068f55543d03 | 1256:d7d5b167f267 |
---|---|
72 if size s >= n then | 72 if size s >= n then |
73 s | 73 s |
74 else | 74 else |
75 str ch ^ pad (n-1, ch, s) | 75 str ch ^ pad (n-1, ch, s) |
76 | 76 |
77 val gccify = String.translate (fn ch => | 77 val gccify = String.toCString |
78 case ch of | |
79 #"\"" => "\\\"" | |
80 | #"\\" => "\\\\" | |
81 | #"'" => "\\'" | |
82 | #"\n" => "\\n" | |
83 | #"\r" => "\\r" | |
84 | #"\t" => "\\t" | |
85 | #" " => " " | |
86 | _ => | |
87 if Char.isPrint ch then | |
88 str ch | |
89 else | |
90 "\\" ^ pad (3, #"0", Int.fmt StringCvt.OCT (ord ch))) | |
91 | 78 |
92 fun p_t_GCC t = | 79 fun p_t_GCC t = |
93 case t of | 80 case t of |
94 Int n => string (int2s n) | 81 Int n => string (int2s n) |
95 | Float n => string (float2s n) | 82 | Float n => string (float2s n) |