aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-31 18:48:55 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-31 18:48:55 +0000
commit65fd63141b5bd76509e005d8bf6878b02a343eef (patch)
treed0230f654e458d9f4ec01afb660131a03f9b54ee /src/main/java/org
parent07f9c22cc9d38da06871d5712608161c5fbac339 (diff)
Support string.length() in C# backend
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java13
1 files changed, 12 insertions, 1 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 e094258..2bd39cb 100644
--- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java
+++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java
@@ -3,14 +3,16 @@ 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.python.ast.PythonExpressionNode;
import org.zwobble.couscous.values.BooleanValue;
+import org.zwobble.couscous.values.IntegerValue;
import org.zwobble.couscous.values.ObjectValues;
+import org.zwobble.couscous.values.StringValue;
import java.util.List;
import java.util.Map;
import java.util.Optional;
+import static org.zwobble.couscous.ast.FieldAccessNode.fieldAccess;
import static org.zwobble.couscous.ast.MethodCallNode.staticMethodCall;
import static org.zwobble.couscous.util.ExtraLists.list;
@@ -22,9 +24,18 @@ public class CsharpPrimitiveMethods {
BOOLEAN_METHODS = methods.build();
}
+ private static final Map<String, PrimitiveMethodGenerator> STRING_METHODS;
+
+ static {
+ ImmutableMap.Builder<String, PrimitiveMethodGenerator> methods = ImmutableMap.builder();
+ methods.put("length", (receiver, arguments) -> fieldAccess(receiver, "Length", IntegerValue.REF));
+ STRING_METHODS = methods.build();
+ }
+
private static final Map<TypeName, Map<String, PrimitiveMethodGenerator>> METHODS =
ImmutableMap.<TypeName, Map<String, PrimitiveMethodGenerator>>builder()
.put(BooleanValue.REF, BOOLEAN_METHODS)
+ .put(StringValue.REF, STRING_METHODS)
.build();
private static final Map<String, PrimitiveStaticMethodGenerator> STATIC_INT_METHODS =