Make codegen for 1 and similar valid

This commit is contained in:
flaviut 2014-05-16 17:47:39 -04:00
commit a568c6102f
3 changed files with 25 additions and 55 deletions

View file

@ -161,6 +161,27 @@ proc makeSingleLineCString*(s: string): string =
result.add(c.toCChar)
result.add('\"')
proc mangle*(name: string): string =
result = ""
case name[0]
of Letters:
result.add(name[0].toLower)
of Digits:
result.add("N" & name[0])
else:
result = "HEX" & toHex(ord(name[0]), 2)
for i in 1..(name.len-1):
let c = name[i]
case c
of 'A'..'Z':
add(result, c.toLower)
of '_':
discard
of 'a'..'z', '0'..'9':
add(result, c)
else:
add(result, "HEX" & toHex(ord(c), 2))
proc makeLLVMString*(s: string): PRope =
const MaxLineLength = 64
result = nil