aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2017-03-27 23:21:52 +0100
committerMichael Williamson <mike@zwobble.org>2017-03-27 23:21:52 +0100
commit7d734def7a18de00749181457423ad09203c0da5 (patch)
tree161ebfacfabb4537bce254dc79751ba5df260683 /src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java
parentdb0da7284cc5813a14e4582fd67fb1e0b2729555 (diff)
Escape char literals
Diffstat (limited to 'src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java')
-rw-r--r--src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java12
1 files changed, 10 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) {