diff options
| -rw-r--r-- | src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java | 6 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java | 10 |
2 files changed, 15 insertions, 1 deletions
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 c7d6db1..861caec 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java @@ -93,7 +93,11 @@ public class CsharpSerializer implements NodeVisitor { @Override public void visit(AssignmentNode assignment) { - throw new UnsupportedOperationException(); + write(assignment.getTarget()); + writer.writeSpace(); + writer.writeSymbol("="); + writer.writeSpace(); + write(assignment.getValue()); } @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 c617f65..30a6f2b 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 @@ -4,8 +4,10 @@ import org.junit.Test; import org.zwobble.couscous.ast.*; import org.zwobble.couscous.backends.csharp.CsharpSerializer; import org.zwobble.couscous.tests.TestIds; +import org.zwobble.couscous.values.BooleanValue; import static org.junit.Assert.assertEquals; +import static org.zwobble.couscous.ast.AssignmentNode.assign; import static org.zwobble.couscous.ast.ConstructorCallNode.constructorCall; import static org.zwobble.couscous.ast.ExpressionStatementNode.expressionStatement; import static org.zwobble.couscous.ast.FieldAccessNode.fieldAccess; @@ -61,6 +63,14 @@ public class CsharpSerializerTests { } @Test + public void assignmentSeparatesTargetAndValueWithEqualsSign() { + String output = serialize(assign( + reference(var(TestIds.ANY_ID, "x", BooleanValue.REF)), + literal(true))); + assertEquals("x = true", output); + } + + @Test public void ternaryConditionalWritesConditionAndBranches() { String output = serialize(ternaryConditional(literal(true), literal(1), literal(2))); assertEquals("true ? 1 : 2", output); |
