aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-17 18:02:27 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-17 18:02:27 +0000
commitcd244418efb005c27b1018458767c57dfa09e046 (patch)
tree9a536359b38446a6271659337cc6803aab1529b9 /src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java
parent013265afb2432181de05a109fd8fe7823d8f3d69 (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.java19
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);
}
}