1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
from StringIO import StringIO
import string
testcases = r"""1 -> 1
1"2" -> 12
1"2 -> 12
1"\"2" -> 1"2
"1" "2" -> 1, 2
1\" -> 1"
1\\" -> 1\
1\\\" -> 1\"
1\\\\" -> 1\\
1" 1 -> 1 1
1\" 1 -> 1", 1
1\1 -> 1\1
1\\1 -> 1\\1
"""
#testcases = r"""1\\\\" -> 1\\
#"""
t = StringIO(testcases)
def quote(s):
result = s.replace("\\", r"\\")
result = result.replace("\"", "\\\"")
return '"' + result + '"'
for s in t:
s = string.strip(s)
(value, result) = string.split(s, "->")
# print value, result
tokens = string.split(result, ",")
value = quote(value)
tokens = map(string.strip, tokens)
tokens = map(quote, tokens)
print "TEST(%s, {%s});" % (value, string.join(tokens, ","))
|