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)