diff options
| -rw-r--r-- | src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java | 15 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java | 2 |
2 files changed, 14 insertions, 3 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 3a50e18..ef13854 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java @@ -1,13 +1,19 @@ package org.zwobble.couscous.backends.csharp; +import com.google.common.collect.ImmutableMap; import org.zwobble.couscous.ast.*; import org.zwobble.couscous.ast.visitors.NodeVisitor; import org.zwobble.couscous.backends.SourceCodeWriter; +import org.zwobble.couscous.values.IntegerValue; import org.zwobble.couscous.values.PrimitiveValueVisitor; import java.util.List; +import java.util.Map; public class CsharpSerializer implements NodeVisitor { + private final static Map<TypeName, String> PRIMITIVES = ImmutableMap.of( + IntegerValue.REF, "int"); + public static String serialize(Node node, String namespace) { SourceCodeWriter writer = new SourceCodeWriter( (writer2) -> { @@ -177,7 +183,7 @@ public class CsharpSerializer implements NodeVisitor { @Override public void visit(FormalArgumentNode argument) { - writer.writeKeyword("dynamic"); + writeTypeReference(argument.getType()); writer.writeSpace(); writer.writeIdentifier(argument.getName()); } @@ -252,7 +258,12 @@ public class CsharpSerializer implements NodeVisitor { } private void writeTypeReference(TypeName value) { - writer.writeIdentifier(typeReference(value)); + // TODO: process the nodes before serialization + if (PRIMITIVES.containsKey(value)) { + writer.writeIdentifier(PRIMITIVES.get(value)); + } else { + writer.writeIdentifier(typeReference(value)); + } } private String typeReference(TypeName value) { 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 4e2bf65..22eeac0 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 @@ -130,7 +130,7 @@ public class CsharpSerializerTests { String output = serialize(methodNode); - assertEquals("internal static dynamic nothing(dynamic x, dynamic y) {\n}\n", output); + assertEquals("internal static dynamic nothing(Couscous.X x, Couscous.Y y) {\n}\n", output); } @Test |
