diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-01-16 15:14:34 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-01-16 15:14:34 +0000 |
| commit | 1bab211fd6231ed99b84b764e8f78ac2be1272f8 (patch) | |
| tree | c0dd85756301de537517ceeb7d0576e551a61433 /src | |
| parent | 5a471db6d2518eaed974f5b9dade1bd3a4df719e (diff) | |
Implement variable references in C# backend
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java | 2 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java | 9 |
2 files changed, 10 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 5a3da8e..702ad12 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java @@ -72,7 +72,7 @@ public class CsharpSerializer implements NodeVisitor { @Override public void visit(VariableReferenceNode variableReference) { - throw new UnsupportedOperationException(); + writer.writeIdentifier(variableReference.getReferent().getName()); } @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 875bcbf..93456ef 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 @@ -3,11 +3,14 @@ package org.zwobble.couscous.tests.backends.csharp; import org.junit.Test; import org.zwobble.couscous.ast.*; import org.zwobble.couscous.backends.csharp.CsharpSerializer; +import org.zwobble.couscous.tests.TestIds; import static org.junit.Assert.assertEquals; import static org.zwobble.couscous.ast.LiteralNode.literal; import static org.zwobble.couscous.ast.ReturnNode.returns; import static org.zwobble.couscous.ast.TernaryConditionalNode.ternaryConditional; +import static org.zwobble.couscous.ast.VariableDeclaration.var; +import static org.zwobble.couscous.ast.VariableReferenceNode.reference; public class CsharpSerializerTests { @Test @@ -38,6 +41,12 @@ public class CsharpSerializerTests { } @Test + public void variableReferenceWritesIdentifier() { + String output = serialize(reference(var(TestIds.ANY_ID, "x", TypeName.of("X")))); + assertEquals("x", output); + } + + @Test public void ternaryConditionalWritesConditionAndBranches() { String output = serialize(ternaryConditional(literal(true), literal(1), literal(2))); assertEquals("true ? 1 : 2", output); |
