From aed79752c0f9f7a637b7bee26c992c3834bcc236 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 16 Jan 2016 16:02:34 +0000 Subject: Add expression statement serialisation to C# backend --- .../org/zwobble/couscous/backends/csharp/CsharpSerializer.java | 5 ++++- .../couscous/tests/backends/csharp/CsharpSerializerTests.java | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) 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 fd7f953..c9df2ac 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java @@ -168,7 +168,10 @@ public class CsharpSerializer implements NodeVisitor { @Override public void visit(ExpressionStatementNode expressionStatement) { - throw new UnsupportedOperationException(); + writer.writeStatement(() -> { + write(expressionStatement.getExpression()); + writer.writeSymbol(";"); + }); } @Override 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 8c3162b..2986234 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.tests.TestIds; import static org.junit.Assert.assertEquals; import static org.zwobble.couscous.ast.ConstructorCallNode.constructorCall; +import static org.zwobble.couscous.ast.ExpressionStatementNode.expressionStatement; import static org.zwobble.couscous.ast.FieldAccessNode.fieldAccess; import static org.zwobble.couscous.ast.FormalArgumentNode.formalArg; import static org.zwobble.couscous.ast.LiteralNode.literal; @@ -126,6 +127,12 @@ public class CsharpSerializerTests { assertEquals("return true;", output); } + @Test + public void expressionStatementWritesExpression() { + String output = serialize(expressionStatement(literal(true))); + assertEquals("true;\n", output); + } + @Test public void methodHasDynamicReturnType() { String output = serialize(MethodNode.staticMethod("nothing").build()); -- cgit v1.2.3