aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java11
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerMethodTests.java5
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java11
3 files changed, 21 insertions, 6 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 680e93f..b16f684 100644
--- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
+++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
@@ -192,7 +192,16 @@ public class CsharpSerializer implements NodeVisitor {
@Override
public void visit(LocalVariableDeclarationNode localVariableDeclaration) {
- throw new UnsupportedOperationException();
+ writer.writeStatement(() -> {
+ writeTypeReference(localVariableDeclaration.getType());
+ writer.writeSpace();
+ writer.writeIdentifier(localVariableDeclaration.getName());
+ writer.writeSpace();
+ writer.writeSymbol("=");
+ writer.writeSpace();
+ write(localVariableDeclaration.getInitialValue());
+ writer.writeSymbol(";");
+ });
}
@Override
diff --git a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerMethodTests.java b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerMethodTests.java
index fcacda0..6a3424e 100644
--- a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerMethodTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpCompilerMethodTests.java
@@ -13,11 +13,6 @@ public class CsharpCompilerMethodTests extends BackendMethodTests {
@Ignore
@Test
- public void canDeclareVariable() {
- }
-
- @Ignore
- @Test
public void canDeclareVariableAndThenAssignValues() {
}
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 22da6d2..cc686e5 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
@@ -14,6 +14,7 @@ import static org.zwobble.couscous.ast.FieldAccessNode.fieldAccess;
import static org.zwobble.couscous.ast.FormalArgumentNode.formalArg;
import static org.zwobble.couscous.ast.IfStatementNode.ifStatement;
import static org.zwobble.couscous.ast.LiteralNode.literal;
+import static org.zwobble.couscous.ast.LocalVariableDeclarationNode.localVariableDeclaration;
import static org.zwobble.couscous.ast.MethodCallNode.methodCall;
import static org.zwobble.couscous.ast.MethodCallNode.staticMethodCall;
import static org.zwobble.couscous.ast.Operations.not;
@@ -159,6 +160,16 @@ public class CsharpSerializerTests {
}
@Test
+ public void localVariableDeclarationCanDeclareVariable() {
+ String output = serialize(localVariableDeclaration(
+ TestIds.ANY_ID,
+ "x",
+ TypeName.of("string"),
+ literal("[value]")));
+ assertEquals("string x = \"[value]\";\n", output);
+ }
+
+ @Test
public void ifElseStatementPrintsBothBranches() {
String output = serialize(ifStatement(
literal(true),