diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java | 12 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java | 7 |
2 files changed, 17 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java b/src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java index b39fbc0..6d26e8b 100644 --- a/src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java +++ b/src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java @@ -40,9 +40,17 @@ public class SourceCodeWriter { public void writeChar(char value) { builder.append("'"); if (value == '\'') { - builder.append("\\"); + builder.append("\\'"); + } else if (value == '\n') { + builder.append("\\n"); + } else if (value == '\r') { + builder.append("\\r"); + } else if (value == '\t') { + builder.append("\\t"); + } else { + builder.append(value); } - builder.append(value).append("'"); + builder.append("'"); } public void writeStringLiteral(String value) { diff --git a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java index ca15ba9..dd1a051 100644 --- a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java +++ b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java @@ -63,6 +63,13 @@ public class CsharpSerializerTests { } @Test + public void charLiteralsAreEscaped() { + assertEquals("'\\n'", serialize(literal('\n'))); + assertEquals("'\\r'", serialize(literal('\r'))); + assertEquals("'\\t'", serialize(literal('\t'))); + } + + @Test public void stringLiteralsUseDoubleQuotes() { String output = serialize(literal("blah")); assertEquals("\"blah\"", output); |
