From ee11b2bc0f6bf76a483775bc2c825757ea295c85 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 16 Jan 2016 14:29:40 +0000 Subject: Split out C# serializer --- .../couscous/backends/csharp/CsharpBackend.java | 88 +--------------------- 1 file changed, 4 insertions(+), 84 deletions(-) (limited to 'src/main/java/org/zwobble/couscous/backends/csharp/CsharpBackend.java') diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpBackend.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpBackend.java index 3fe1d5e..b588296 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpBackend.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpBackend.java @@ -4,9 +4,9 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.io.Resources; import org.zwobble.couscous.Backend; -import org.zwobble.couscous.ast.*; -import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper; -import org.zwobble.couscous.values.PrimitiveValueVisitor; +import org.zwobble.couscous.ast.ClassNode; +import org.zwobble.couscous.ast.MethodNode; +import org.zwobble.couscous.ast.ReturnNode; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -65,87 +65,7 @@ public class CsharpBackend implements Backend { ReturnNode returnNode = (ReturnNode) method.getBody().get(0); return "public static dynamic " + method.getName() + "() {" + - " return " + compileExpression(returnNode.getValue()) + ";" + + " return " + CsharpSerializer.serialize(returnNode.getValue(), namespace) + ";" + "}"; } - - private String compileExpression(ExpressionNode value) { - return value.accept(new ExpressionNodeMapper() { - @Override - public String visit(LiteralNode literal) { - return literal.getValue().accept(new PrimitiveValueVisitor() { - @Override - public String visitInteger(int value) { - return Integer.toString(value); - } - - @Override - public String visitString(String value) { - // TODO: escaping - return "\"" + value + "\""; - } - - @Override - public String visitBoolean(boolean value) { - return value ? "true" : "false"; - } - - @Override - public String visitUnit() { - throw new UnsupportedOperationException(); - } - - @Override - public String visitType(TypeName value) { - return "typeof(" + namespace + "." + value.getQualifiedName() + ")"; - } - }); - } - - @Override - public String visit(VariableReferenceNode variableReference) { - throw new UnsupportedOperationException(); - } - - @Override - public String visit(ThisReferenceNode reference) { - throw new UnsupportedOperationException(); - } - - @Override - public String visit(AssignmentNode assignment) { - throw new UnsupportedOperationException(); - } - - @Override - public String visit(TernaryConditionalNode ternaryConditional) { - throw new UnsupportedOperationException(); - } - - @Override - public String visit(MethodCallNode methodCall) { - throw new UnsupportedOperationException(); - } - - @Override - public String visit(ConstructorCallNode call) { - throw new UnsupportedOperationException(); - } - - @Override - public String visit(FieldAccessNode fieldAccess) { - throw new UnsupportedOperationException(); - } - - @Override - public String visit(TypeCoercionNode typeCoercion) { - throw new UnsupportedOperationException(); - } - - @Override - public String visit(CastNode cast) { - throw new UnsupportedOperationException(); - } - }); - } } -- cgit v1.2.3