aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-06 22:11:12 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-06 22:11:12 +0000
commitb81b68e59c6d34ccd109ec9aa517c4ead3c56ebd (patch)
tree09a98bf42ed1be289a6501241322eb6d438f1e5a /src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java
parent45ae597f7751b7e9d12ef00cf394a9cf0155176c (diff)
Implement overloading by argument type in Python backend
Diffstat (limited to 'src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java')
-rw-r--r--src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java b/src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java
index d2721ae..d2f89ba 100644
--- a/src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java
+++ b/src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java
@@ -4,9 +4,11 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
+import com.google.common.collect.ImmutableList;
import org.zwobble.couscous.ast.Operator;
import org.zwobble.couscous.ast.TypeName;
import org.zwobble.couscous.backends.python.ast.PythonBinaryOperation;
+import org.zwobble.couscous.backends.python.ast.PythonCallNode;
import org.zwobble.couscous.backends.python.ast.PythonExpressionNode;
import org.zwobble.couscous.backends.python.ast.PythonNotNode;
import org.zwobble.couscous.values.*;
@@ -47,6 +49,9 @@ public class PrimitiveMethods {
static {
ImmutableMap.Builder<String, PrimitiveMethodGenerator> methods = ImmutableMap.builder();
+
+ methods.put("toString", (receiver, arguments) ->
+ pythonCall(pythonVariableReference("str"), ImmutableList.of(receiver)));
addOperation(methods, Operator.ADD.getMethodName(), "+");
addOperation(methods, Operator.SUBTRACT.getMethodName(), "-");
@@ -91,6 +96,7 @@ public class PrimitiveMethods {
.put(StringValue.REF, STRING_METHODS)
.put(BooleanValue.REF, BOOLEAN_METHODS)
.put(IntegerValue.REF, INT_METHODS)
+ .put(ObjectValues.BOXED_INT, INT_METHODS)
.build();
private static final Map<String, PrimitiveStaticMethodGenerator> INTERNAL_METHODS =