diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-01-17 18:02:27 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-01-17 18:02:27 +0000 |
| commit | cd244418efb005c27b1018458767c57dfa09e046 (patch) | |
| tree | 9a536359b38446a6271659337cc6803aab1529b9 /src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java | |
| parent | 013265afb2432181de05a109fd8fe7823d8f3d69 (diff) | |
Add transformation pass to C# backend
Diffstat (limited to 'src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java | 19 |
1 files changed, 9 insertions, 10 deletions
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<String, PrimitiveStaticMethodGenerator> STATIC_INT_METHODS = ImmutableMap.<String, PrimitiveStaticMethodGenerator>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<ExpressionNode> arguments, SourceCodeWriter writer); + ExpressionNode generate(List<ExpressionNode> arguments); } } |
