aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-08 21:27:39 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-08 21:27:39 +0000
commitbf3645905d5384d25b20e572803b6886c476e057 (patch)
treeed9a4820b8a235a64e19b73510d59b7533d84961 /src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java
parent09f919a23b4846162dac6229564718c1f6cc8c40 (diff)
Add support for String.equals
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java')
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java
index 4fff53e..3aaa073 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java
@@ -1,10 +1,7 @@
package org.zwobble.couscous.interpreter.values;
import org.zwobble.couscous.interpreter.NoSuchField;
-import org.zwobble.couscous.values.IntegerValue;
-import org.zwobble.couscous.values.PrimitiveValue;
-import org.zwobble.couscous.values.PrimitiveValues;
-import org.zwobble.couscous.values.StringValue;
+import org.zwobble.couscous.values.*;
import java.util.Optional;
@@ -29,6 +26,15 @@ public final class StringInterpreterValue implements InterpreterValue {
.method("toLowerCase", list(), (environment, arguments) ->
of(arguments.getReceiver().value.toLowerCase()))
+ .method("equals", list(ObjectValues.OBJECT), (environment, arguments) -> {
+ InterpreterValue right = arguments.get(0);
+ if (right instanceof StringInterpreterValue) {
+ return new BooleanInterpreterValue(arguments.getReceiver().value.equals(((StringInterpreterValue)right).value));
+ } else {
+ return InterpreterValues.FALSE;
+ }
+ })
+
.build();
private final String value;