From 65fd63141b5bd76509e005d8bf6878b02a343eef Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 31 Jan 2016 18:48:55 +0000 Subject: Support string.length() in C# backend --- .../couscous/backends/csharp/CsharpPrimitiveMethods.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (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 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_METHODS; + + static { + ImmutableMap.Builder methods = ImmutableMap.builder(); + methods.put("length", (receiver, arguments) -> fieldAccess(receiver, "Length", IntegerValue.REF)); + STRING_METHODS = methods.build(); + } + private static final Map> METHODS = ImmutableMap.>builder() .put(BooleanValue.REF, BOOLEAN_METHODS) + .put(StringValue.REF, STRING_METHODS) .build(); private static final Map STATIC_INT_METHODS = -- cgit v1.2.3