aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-31 13:05:10 +0000
committerMichael Williamson <mike@zwobble.org>2015-10-31 13:05:10 +0000
commit604d1e71ef722e1006e955ae0bb72fa00cd78c8a (patch)
tree6b46e5262e3cef660f9b0c00cbc63867cd0de4a1 /src/main/java/org/zwobble
parentccbcd95c177ef9725ed772504e33310474835b57 (diff)
Support equality on ints
Diffstat (limited to 'src/main/java/org/zwobble')
-rw-r--r--src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java1
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java2
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/IntegerInterpreterValue.java2
3 files changed, 5 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 5208ff1..9639c72 100644
--- a/src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java
+++ b/src/main/java/org/zwobble/couscous/backends/python/PrimitiveMethods.java
@@ -50,6 +50,7 @@ public class PrimitiveMethods {
internalReference("_mod_round_to_zero"),
asList(receiver, arguments.get(0))));
+ addMethod(methods, "equals", "__eq__");
addMethod(methods, "greaterThan", "__gt__");
addMethod(methods, "greaterThanOrEqual", "__ge__");
addMethod(methods, "lessThan", "__lt__");
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
index baef84a..99d6a7a 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
@@ -280,6 +280,8 @@ public class JavaReader {
return JavaOperator.of("divide", IntegerValue.REF);
} else if (operator == Operator.REMAINDER) {
return JavaOperator.of("mod", IntegerValue.REF);
+ } else if (operator == Operator.EQUALS) {
+ return JavaOperator.of("equals", BooleanValue.REF);
} else if (operator == Operator.GREATER) {
return JavaOperator.of("greaterThan", BooleanValue.REF);
} else if (operator == Operator.GREATER_EQUALS) {
diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/IntegerInterpreterValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/IntegerInterpreterValue.java
index 823e873..85480e7 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/IntegerInterpreterValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/IntegerInterpreterValue.java
@@ -27,6 +27,8 @@ public final class IntegerInterpreterValue implements InterpreterValue {
infixReturningInteger((left, right) -> left / right))
.method("mod", asList(IntegerValue.REF),
infixReturningInteger((left, right) -> left % right))
+ .method("equals", asList(IntegerValue.REF),
+ infixReturningBoolean((left, right) -> left == right))
.method("greaterThan", asList(IntegerValue.REF),
infixReturningBoolean((left, right) -> left > right))
.method("greaterThanOrEqual", asList(IntegerValue.REF),