diff options
Diffstat (limited to 'src')
3 files changed, 16 insertions, 11 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 360fea1..5a3da8e 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java @@ -87,7 +87,15 @@ public class CsharpSerializer implements NodeVisitor { @Override public void visit(TernaryConditionalNode ternaryConditional) { - throw new UnsupportedOperationException(); + write(ternaryConditional.getCondition()); + writer.writeSpace(); + writer.writeSymbol("?"); + writer.writeSpace(); + write(ternaryConditional.getIfTrue()); + writer.writeSpace(); + writer.writeSymbol(":"); + writer.writeSpace(); + write(ternaryConditional.getIfFalse()); } @Override diff --git a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerEvalTests.java b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerEvalTests.java index 9c51117..68870f4 100644 --- a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerEvalTests.java +++ b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerEvalTests.java @@ -27,16 +27,6 @@ public class CsharpCompilerEvalTests extends BackendEvalTests { @Test @Ignore - public void whenConditionIsTrueThenValueOfConditionalTernaryIsTrueBranch() { - } - - @Test - @Ignore - public void whenConditionIsFalseThenValueOfConditionalTernaryIsFalseBranch() { - } - - @Test - @Ignore public void canCallMethodWithNoArgumentsOnBuiltin() { } 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 582f3f0..875bcbf 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; +import static org.zwobble.couscous.ast.TernaryConditionalNode.ternaryConditional; public class CsharpSerializerTests { @Test @@ -37,6 +38,12 @@ public class CsharpSerializerTests { } @Test + public void ternaryConditionalWritesConditionAndBranches() { + String output = serialize(ternaryConditional(literal(true), literal(1), literal(2))); + assertEquals("true ? 1 : 2", output); + } + + @Test public void returnStatementUsesReturnStatement() { String output = serialize(returns(literal(true))); assertEquals("return true;", output); |
