From cd244418efb005c27b1018458767c57dfa09e046 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 17 Jan 2016 18:02:27 +0000 Subject: Add transformation pass to C# backend --- .../backends/csharp/CsharpPrimitiveMethods.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java') diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java index b53560d..9424b2d 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java @@ -3,25 +3,24 @@ package org.zwobble.couscous.backends.csharp; import com.google.common.collect.ImmutableMap; import org.zwobble.couscous.ast.ExpressionNode; import org.zwobble.couscous.ast.TypeName; -import org.zwobble.couscous.backends.SourceCodeWriter; import org.zwobble.couscous.values.ObjectValues; import java.util.List; import java.util.Map; import java.util.Optional; +import static org.zwobble.couscous.ast.MethodCallNode.staticMethodCall; +import static org.zwobble.couscous.util.ExtraLists.list; + public class CsharpPrimitiveMethods { private static final Map STATIC_INT_METHODS = ImmutableMap.builder() - .put("parseInt", (arguments, writer) -> { - writer.writeIdentifier("int"); - writer.writeSymbol("."); - writer.writeIdentifier("Parse"); - writer.writeSymbol("("); - writer.writeIdentifier(CsharpSerializer.serialize(arguments.get(0), "")); - writer.writeSymbol(")"); - }) + .put("parseInt", arguments -> staticMethodCall( + TypeName.of("int"), + "Parse", + list(arguments.get(0)), + TypeName.of("int"))) .build(); @@ -37,6 +36,6 @@ public class CsharpPrimitiveMethods { @FunctionalInterface public interface PrimitiveStaticMethodGenerator { - void generate(List arguments, SourceCodeWriter writer); + ExpressionNode generate(List arguments); } } -- cgit v1.2.3