diff options
4 files changed, 16 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpBackend.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpBackend.java index b588296..d69edf6 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpBackend.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpBackend.java @@ -65,7 +65,7 @@ public class CsharpBackend implements Backend { ReturnNode returnNode = (ReturnNode) method.getBody().get(0); return "public static dynamic " + method.getName() + "() {" + - " return " + CsharpSerializer.serialize(returnNode.getValue(), namespace) + ";" + + CsharpSerializer.serialize(returnNode, namespace) + "}"; } } 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 b8d81ad..31a7b23 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java @@ -118,7 +118,10 @@ public class CsharpSerializer implements NodeVisitor { @Override public void visit(ReturnNode returnNode) { - throw new UnsupportedOperationException(); + writer.writeKeyword("return"); + writer.writeSpace(); + write(returnNode.getValue()); + writer.writeSymbol(";"); } @Override diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpWriter.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpWriter.java index 7aef7e6..d3cfce2 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpWriter.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpWriter.java @@ -31,4 +31,8 @@ public class CsharpWriter { public void writeIdentifier(String identifier) { builder.append(identifier); } + + public void writeSpace() { + builder.append(" "); + } } 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 39e0e8f..9425d55 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 @@ -7,6 +7,7 @@ import org.zwobble.couscous.backends.csharp.CsharpSerializer; import static org.junit.Assert.assertEquals; import static org.zwobble.couscous.ast.LiteralNode.literal; +import static org.zwobble.couscous.ast.ReturnNode.returns; public class CsharpSerializerTests { @Test @@ -36,6 +37,12 @@ public class CsharpSerializerTests { assertEquals("typeof(Couscous.com.example.Example)", output); } + @Test + public void returnStatementUsesReturnStatement() { + String output = serialize(returns(literal(true))); + assertEquals("return true;", output); + } + private String serialize(Node node) { return CsharpSerializer.serialize(node, "Couscous"); } |
