diff options
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/errors')
10 files changed, 382 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/errors/ConditionMustBeBoolean.java b/src/main/java/org/zwobble/couscous/interpreter/errors/ConditionMustBeBoolean.java new file mode 100644 index 0000000..3d1ad93 --- /dev/null +++ b/src/main/java/org/zwobble/couscous/interpreter/errors/ConditionMustBeBoolean.java @@ -0,0 +1,46 @@ +package org.zwobble.couscous.interpreter.errors; + +import org.zwobble.couscous.interpreter.values.InterpreterValue; + +public final class ConditionMustBeBoolean extends InterpreterException { + private static final long serialVersionUID = 1L; + private final InterpreterValue actual; + + public ConditionMustBeBoolean(final InterpreterValue actual) { + this.actual = actual; + } + + public InterpreterValue getActual() { + return this.actual; + } + + @java.lang.Override + public java.lang.String toString() { + return "ConditionMustBeBoolean(actual=" + this.getActual() + ")"; + } + + @java.lang.Override + public boolean equals(final java.lang.Object o) { + if (o == this) return true; + if (!(o instanceof ConditionMustBeBoolean)) return false; + final ConditionMustBeBoolean other = (ConditionMustBeBoolean)o; + if (!other.canEqual((java.lang.Object)this)) return false; + final java.lang.Object this$actual = this.getActual(); + final java.lang.Object other$actual = other.getActual(); + if (this$actual == null ? other$actual != null : !this$actual.equals(other$actual)) return false; + return true; + } + + protected boolean canEqual(final java.lang.Object other) { + return other instanceof ConditionMustBeBoolean; + } + + @java.lang.Override + public int hashCode() { + final int PRIME = 59; + int result = 1; + final java.lang.Object $actual = this.getActual(); + result = result * PRIME + ($actual == null ? 43 : $actual.hashCode()); + return result; + } +}
\ No newline at end of file diff --git a/src/main/java/org/zwobble/couscous/interpreter/errors/InterpreterException.java b/src/main/java/org/zwobble/couscous/interpreter/errors/InterpreterException.java new file mode 100644 index 0000000..0846437 --- /dev/null +++ b/src/main/java/org/zwobble/couscous/interpreter/errors/InterpreterException.java @@ -0,0 +1,6 @@ +package org.zwobble.couscous.interpreter.errors; + +public class InterpreterException extends RuntimeException { + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/zwobble/couscous/interpreter/errors/InvalidCast.java b/src/main/java/org/zwobble/couscous/interpreter/errors/InvalidCast.java new file mode 100644 index 0000000..241f8ed --- /dev/null +++ b/src/main/java/org/zwobble/couscous/interpreter/errors/InvalidCast.java @@ -0,0 +1,22 @@ +package org.zwobble.couscous.interpreter.errors; + +import org.zwobble.couscous.ast.TypeName; + +public class InvalidCast extends RuntimeException { + private final TypeName expected; + private final TypeName actual; + + public InvalidCast(TypeName expected, TypeName actual) { + + this.expected = expected; + this.actual = actual; + } + + public TypeName getExpected() { + return expected; + } + + public TypeName getActual() { + return actual; + } +} diff --git a/src/main/java/org/zwobble/couscous/interpreter/errors/NoSuchField.java b/src/main/java/org/zwobble/couscous/interpreter/errors/NoSuchField.java new file mode 100644 index 0000000..e42bdfb --- /dev/null +++ b/src/main/java/org/zwobble/couscous/interpreter/errors/NoSuchField.java @@ -0,0 +1,43 @@ +package org.zwobble.couscous.interpreter.errors; + +public final class NoSuchField extends InterpreterException { + private static final long serialVersionUID = 1L; + private final String fieldName; + + public NoSuchField(final String fieldName) { + this.fieldName = fieldName; + } + + public String getFieldName() { + return this.fieldName; + } + + public java.lang.String toString() { + return "NoSuchField(fieldName=" + this.getFieldName() + ")"; + } + + @java.lang.Override + public boolean equals(final java.lang.Object o) { + if (o == this) return true; + if (!(o instanceof NoSuchField)) return false; + final NoSuchField other = (NoSuchField)o; + if (!other.canEqual((java.lang.Object)this)) return false; + final java.lang.Object this$fieldName = this.getFieldName(); + final java.lang.Object other$fieldName = other.getFieldName(); + if (this$fieldName == null ? other$fieldName != null : !this$fieldName.equals(other$fieldName)) return false; + return true; + } + + protected boolean canEqual(final java.lang.Object other) { + return other instanceof NoSuchField; + } + + @java.lang.Override + public int hashCode() { + final int PRIME = 59; + int result = 1; + final java.lang.Object $fieldName = this.getFieldName(); + result = result * PRIME + ($fieldName == null ? 43 : $fieldName.hashCode()); + return result; + } +}
\ No newline at end of file diff --git a/src/main/java/org/zwobble/couscous/interpreter/errors/NoSuchMethod.java b/src/main/java/org/zwobble/couscous/interpreter/errors/NoSuchMethod.java new file mode 100644 index 0000000..8da7d27 --- /dev/null +++ b/src/main/java/org/zwobble/couscous/interpreter/errors/NoSuchMethod.java @@ -0,0 +1,23 @@ +package org.zwobble.couscous.interpreter.errors; + +import org.zwobble.couscous.ast.MethodSignature; + +public final class NoSuchMethod extends InterpreterException { + private static final long serialVersionUID = 1L; + private MethodSignature signature; + + public NoSuchMethod(MethodSignature signature) { + this.signature = signature; + } + + public MethodSignature getSignature() { + return signature; + } + + @Override + public String toString() { + return "NoSuchMethod(" + + "signature=" + signature + + ") " + super.toString(); + } +}
\ No newline at end of file diff --git a/src/main/java/org/zwobble/couscous/interpreter/errors/UnboundField.java b/src/main/java/org/zwobble/couscous/interpreter/errors/UnboundField.java new file mode 100644 index 0000000..4769990 --- /dev/null +++ b/src/main/java/org/zwobble/couscous/interpreter/errors/UnboundField.java @@ -0,0 +1,44 @@ +package org.zwobble.couscous.interpreter.errors; + +public final class UnboundField extends InterpreterException { + private static final long serialVersionUID = 1L; + private final String fieldName; + + public UnboundField(final String fieldName) { + this.fieldName = fieldName; + } + + public String getFieldName() { + return this.fieldName; + } + + @java.lang.Override + public java.lang.String toString() { + return "UnboundField(fieldName=" + this.getFieldName() + ")"; + } + + @java.lang.Override + public boolean equals(final java.lang.Object o) { + if (o == this) return true; + if (!(o instanceof UnboundField)) return false; + final UnboundField other = (UnboundField)o; + if (!other.canEqual((java.lang.Object)this)) return false; + final java.lang.Object this$fieldName = this.getFieldName(); + final java.lang.Object other$fieldName = other.getFieldName(); + if (this$fieldName == null ? other$fieldName != null : !this$fieldName.equals(other$fieldName)) return false; + return true; + } + + protected boolean canEqual(final java.lang.Object other) { + return other instanceof UnboundField; + } + + @java.lang.Override + public int hashCode() { + final int PRIME = 59; + int result = 1; + final java.lang.Object $fieldName = this.getFieldName(); + result = result * PRIME + ($fieldName == null ? 43 : $fieldName.hashCode()); + return result; + } +}
\ No newline at end of file diff --git a/src/main/java/org/zwobble/couscous/interpreter/errors/UnboundVariable.java b/src/main/java/org/zwobble/couscous/interpreter/errors/UnboundVariable.java new file mode 100644 index 0000000..cce5ca3 --- /dev/null +++ b/src/main/java/org/zwobble/couscous/interpreter/errors/UnboundVariable.java @@ -0,0 +1,46 @@ +package org.zwobble.couscous.interpreter.errors; + +import org.zwobble.couscous.ast.identifiers.Identifier; + +public final class UnboundVariable extends InterpreterException { + private static final long serialVersionUID = 1L; + private final Identifier variableId; + + public UnboundVariable(final Identifier variableId) { + this.variableId = variableId; + } + + public Identifier getVariableId() { + return this.variableId; + } + + @java.lang.Override + public java.lang.String toString() { + return "UnboundVariable(variableId=" + this.getVariableId() + ")"; + } + + @java.lang.Override + public boolean equals(final java.lang.Object o) { + if (o == this) return true; + if (!(o instanceof UnboundVariable)) return false; + final UnboundVariable other = (UnboundVariable)o; + if (!other.canEqual((java.lang.Object)this)) return false; + final java.lang.Object this$variableId = this.getVariableId(); + final java.lang.Object other$variableId = other.getVariableId(); + if (this$variableId == null ? other$variableId != null : !this$variableId.equals(other$variableId)) return false; + return true; + } + + protected boolean canEqual(final java.lang.Object other) { + return other instanceof UnboundVariable; + } + + @java.lang.Override + public int hashCode() { + final int PRIME = 59; + int result = 1; + final java.lang.Object $variableId = this.getVariableId(); + result = result * PRIME + ($variableId == null ? 43 : $variableId.hashCode()); + return result; + } +}
\ No newline at end of file diff --git a/src/main/java/org/zwobble/couscous/interpreter/errors/UnexpectedValueType.java b/src/main/java/org/zwobble/couscous/interpreter/errors/UnexpectedValueType.java new file mode 100644 index 0000000..ca40c7c --- /dev/null +++ b/src/main/java/org/zwobble/couscous/interpreter/errors/UnexpectedValueType.java @@ -0,0 +1,57 @@ +package org.zwobble.couscous.interpreter.errors; + +import org.zwobble.couscous.ast.TypeName; + +public final class UnexpectedValueType extends InterpreterException { + private static final long serialVersionUID = 1L; + private final TypeName expected; + private final TypeName actual; + + public UnexpectedValueType(final TypeName expected, final TypeName actual) { + this.expected = expected; + this.actual = actual; + } + + public TypeName getExpected() { + return this.expected; + } + + public TypeName getActual() { + return this.actual; + } + + @java.lang.Override + public java.lang.String toString() { + return "UnexpectedValueType(expected=" + this.getExpected() + ", actual=" + this.getActual() + ")"; + } + + @java.lang.Override + public boolean equals(final java.lang.Object o) { + if (o == this) return true; + if (!(o instanceof UnexpectedValueType)) return false; + final UnexpectedValueType other = (UnexpectedValueType)o; + if (!other.canEqual((java.lang.Object)this)) return false; + final java.lang.Object this$expected = this.getExpected(); + final java.lang.Object other$expected = other.getExpected(); + if (this$expected == null ? other$expected != null : !this$expected.equals(other$expected)) return false; + final java.lang.Object this$actual = this.getActual(); + final java.lang.Object other$actual = other.getActual(); + if (this$actual == null ? other$actual != null : !this$actual.equals(other$actual)) return false; + return true; + } + + protected boolean canEqual(final java.lang.Object other) { + return other instanceof UnexpectedValueType; + } + + @java.lang.Override + public int hashCode() { + final int PRIME = 59; + int result = 1; + final java.lang.Object $expected = this.getExpected(); + result = result * PRIME + ($expected == null ? 43 : $expected.hashCode()); + final java.lang.Object $actual = this.getActual(); + result = result * PRIME + ($actual == null ? 43 : $actual.hashCode()); + return result; + } +}
\ No newline at end of file diff --git a/src/main/java/org/zwobble/couscous/interpreter/errors/VariableNotInScope.java b/src/main/java/org/zwobble/couscous/interpreter/errors/VariableNotInScope.java new file mode 100644 index 0000000..8e7c2d4 --- /dev/null +++ b/src/main/java/org/zwobble/couscous/interpreter/errors/VariableNotInScope.java @@ -0,0 +1,46 @@ +package org.zwobble.couscous.interpreter.errors; + +import org.zwobble.couscous.ast.identifiers.Identifier; + +public final class VariableNotInScope extends InterpreterException { + private static final long serialVersionUID = 1L; + private final Identifier variableId; + + public VariableNotInScope(final Identifier variableId) { + this.variableId = variableId; + } + + public Identifier getVariableId() { + return this.variableId; + } + + @java.lang.Override + public java.lang.String toString() { + return "VariableNotInScope(variableId=" + this.getVariableId() + ")"; + } + + @java.lang.Override + public boolean equals(final java.lang.Object o) { + if (o == this) return true; + if (!(o instanceof VariableNotInScope)) return false; + final VariableNotInScope other = (VariableNotInScope)o; + if (!other.canEqual((java.lang.Object)this)) return false; + final java.lang.Object this$variableId = this.getVariableId(); + final java.lang.Object other$variableId = other.getVariableId(); + if (this$variableId == null ? other$variableId != null : !this$variableId.equals(other$variableId)) return false; + return true; + } + + protected boolean canEqual(final java.lang.Object other) { + return other instanceof VariableNotInScope; + } + + @java.lang.Override + public int hashCode() { + final int PRIME = 59; + int result = 1; + final java.lang.Object $variableId = this.getVariableId(); + result = result * PRIME + ($variableId == null ? 43 : $variableId.hashCode()); + return result; + } +}
\ No newline at end of file diff --git a/src/main/java/org/zwobble/couscous/interpreter/errors/WrongNumberOfArguments.java b/src/main/java/org/zwobble/couscous/interpreter/errors/WrongNumberOfArguments.java new file mode 100644 index 0000000..90078e8 --- /dev/null +++ b/src/main/java/org/zwobble/couscous/interpreter/errors/WrongNumberOfArguments.java @@ -0,0 +1,49 @@ +package org.zwobble.couscous.interpreter.errors; + +public final class WrongNumberOfArguments extends InterpreterException { + private static final long serialVersionUID = 1L; + private final int expected; + private final int actual; + + public WrongNumberOfArguments(final int expected, final int actual) { + this.expected = expected; + this.actual = actual; + } + + public int getExpected() { + return this.expected; + } + + public int getActual() { + return this.actual; + } + + @java.lang.Override + public java.lang.String toString() { + return "WrongNumberOfArguments(expected=" + this.getExpected() + ", actual=" + this.getActual() + ")"; + } + + @java.lang.Override + public boolean equals(final java.lang.Object o) { + if (o == this) return true; + if (!(o instanceof WrongNumberOfArguments)) return false; + final WrongNumberOfArguments other = (WrongNumberOfArguments)o; + if (!other.canEqual((java.lang.Object)this)) return false; + if (this.getExpected() != other.getExpected()) return false; + if (this.getActual() != other.getActual()) return false; + return true; + } + + protected boolean canEqual(final java.lang.Object other) { + return other instanceof WrongNumberOfArguments; + } + + @java.lang.Override + public int hashCode() { + final int PRIME = 59; + int result = 1; + result = result * PRIME + this.getExpected(); + result = result * PRIME + this.getActual(); + return result; + } +}
\ No newline at end of file |
