package ast.evaluate;
public abstract class Value {
//conditional
public Value and(Value obj) {
throw new UnsupportedOperationException();
}
protected Value andBool(Bool obj) {
throw new UnsupportedOperationException();
}
public Value or(Value obj) {
throw new UnsupportedOperationException();
}
protected Value orBool(Bool obj) {
throw new UnsupportedOperationException();
}
//arithmatic
public Value add(Value obj) {
throw new UnsupportedOperationException();
}
protected Value addInt(Int obj) {
throw new UnsupportedOperationException();
}
public Value sub(Value obj) {
throw new UnsupportedOperationException();
}
protected Value subInt(Int obj) {
throw new UnsupportedOperationException();
}
public Value div(Value obj) {
throw new UnsupportedOperationException();
}
protected Value divInt(Int obj) {
throw new UnsupportedOperationException();
}
public Value mul(Value obj) {
throw new UnsupportedOperationException();
}
protected Value mulInt(Int obj) {
throw new UnsupportedOperationException();
}
//relational
public Value eq(Value obj) {
throw new UnsupportedOperationException();
}
protected Value eqBool(Bool obj) {
throw new UnsupportedOperationException();
}
public Value neq(Value obj) {
throw new UnsupportedOperationException();
}
protected Value neqBool(Bool obj) {
throw new UnsupportedOperationException();
}
public Value gt(Value obj) {
throw new UnsupportedOperationException();
}
protected Value gtInt(Int obj) {
throw new UnsupportedOperationException();
}
public Value lt(Value obj) {
throw new UnsupportedOperationException();
}
protected Value ltInt(Int obj) {
throw new UnsupportedOperationException();
}
public Value geq(Value obj) {
throw new UnsupportedOperationException();
}
protected Value geqInt(Int obj) {
throw new UnsupportedOperationException();
}
public Value leq(Value obj) {
throw new UnsupportedOperationException();
}
protected Value leqInt(Int obj) {
throw new UnsupportedOperationException();
}
//unary
public Value pos() {
throw new UnsupportedOperationException();
}
public Value neg() {
throw new UnsupportedOperationException();
}
public Value not() {
throw new UnsupportedOperationException();
}
}