From 604d1e71ef722e1006e955ae0bb72fa00cd78c8a Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 31 Oct 2015 13:05:10 +0000 Subject: Support equality on ints --- .../java/org/zwobble/couscous/backends/python/PrimitiveMethods.java | 1 + src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java | 2 ++ .../zwobble/couscous/interpreter/values/IntegerInterpreterValue.java | 2 ++ 3 files changed, 5 insertions(+) (limited to 'src/main/java/org/zwobble') 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), -- cgit v1.2.3