aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/backends
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-07-15 20:41:09 +0100
committerMichael Williamson <mike@zwobble.org>2016-07-15 20:41:09 +0100
commitd51fce58306742dd574b637337aefbf7daf92787 (patch)
treead70037af0e3db86af0826e7ef79be402bd91fed /src/main/java/org/zwobble/couscous/backends
parent39556c29e0913bdb4e597d4fc629fa101c555959 (diff)
Handle char literals properly
Diffstat (limited to 'src/main/java/org/zwobble/couscous/backends')
-rw-r--r--src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java8
-rw-r--r--src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java6
-rw-r--r--src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java6
3 files changed, 20 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java b/src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java
index eb29a4e..b39fbc0 100644
--- a/src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java
+++ b/src/main/java/org/zwobble/couscous/backends/SourceCodeWriter.java
@@ -37,6 +37,14 @@ public class SourceCodeWriter {
builder.append(value);
}
+ public void writeChar(char value) {
+ builder.append("'");
+ if (value == '\'') {
+ builder.append("\\");
+ }
+ builder.append(value).append("'");
+ }
+
public void writeStringLiteral(String value) {
builder.append("\"");
builder.append(value
diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
index e343071..798d75c 100644
--- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
+++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
@@ -160,6 +160,12 @@ public class CsharpSerializer {
}
@Override
+ public Void visitChar(char value) {
+ writer.writeChar(value);
+ return null;
+ }
+
+ @Override
public Void visitString(String value) {
writer.writeStringLiteral(value);
return null;
diff --git a/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java b/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java
index 949506a..c6de9f3 100644
--- a/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java
+++ b/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java
@@ -161,6 +161,12 @@ public class PythonCodeGenerator {
}
@Override
+ public PythonExpressionNode visitChar(char value) {
+ // TODO:
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
public PythonExpressionNode visitString(String value) {
return pythonStringLiteral(value);
}