aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/NoSuchMethod.java12
-rw-r--r--src/main/java/org/zwobble/couscous/values/StringValue.java4
2 files changed, 15 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/NoSuchMethod.java b/src/main/java/org/zwobble/couscous/interpreter/NoSuchMethod.java
new file mode 100644
index 0000000..e69c978
--- /dev/null
+++ b/src/main/java/org/zwobble/couscous/interpreter/NoSuchMethod.java
@@ -0,0 +1,12 @@
+package org.zwobble.couscous.interpreter;
+
+import lombok.EqualsAndHashCode;
+import lombok.Value;
+
+@Value
+@EqualsAndHashCode(callSuper=false)
+public class NoSuchMethod extends InterpreterException {
+ private static final long serialVersionUID = 1L;
+
+ String methodName;
+}
diff --git a/src/main/java/org/zwobble/couscous/values/StringValue.java b/src/main/java/org/zwobble/couscous/values/StringValue.java
index 3a1a13d..9cf81ff 100644
--- a/src/main/java/org/zwobble/couscous/values/StringValue.java
+++ b/src/main/java/org/zwobble/couscous/values/StringValue.java
@@ -2,6 +2,8 @@ package org.zwobble.couscous.values;
import java.util.List;
+import org.zwobble.couscous.interpreter.NoSuchMethod;
+
import lombok.Value;
import lombok.val;
@@ -18,7 +20,7 @@ public class StringValue implements InterpreterValue {
val endIndex = (IntegerValue)arguments.get(1);
return new StringValue(value.substring(startIndex.getValue(), endIndex.getValue()));
} else {
- throw new UnsupportedOperationException();
+ throw new NoSuchMethod(methodName);
}
}
}