diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-01-31 18:48:55 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-01-31 18:48:55 +0000 |
| commit | 65fd63141b5bd76509e005d8bf6878b02a343eef (patch) | |
| tree | d0230f654e458d9f4ec01afb660131a03f9b54ee /src/main/java/org | |
| parent | 07f9c22cc9d38da06871d5712608161c5fbac339 (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.java | 13 |
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 = |
