package org.uva.sea.ql.interpreter.value; import org.uva.sea.ql.ast.type.Type; public class Undefined extends Value<Void> { public Undefined(){ this.value = null; } public Value<?> parse(Type type){ return type.hasValue().parse(this); } private Value<?> defaultReturn(){ return this; } public Value<?> add(Value<?> value) { return defaultReturn(); } protected Value<?> intAdd(Int value) { return defaultReturn(); } public Value<?> sub(Value<?> value) { return defaultReturn(); } protected Value<?> intSub(Int leftValue) { return defaultReturn(); } public Value<?> mul(Value<?> value) { return defaultReturn(); } protected Value<?> intMul(Int leftValue) { return defaultReturn(); } public Value<?> div(Value<?> value) { return defaultReturn(); } protected Value<?> intDiv(Int leftValue) { return defaultReturn(); } public Value<?> pos() { return defaultReturn(); } public Value<?> neg() { return defaultReturn(); } public Value<?> and(Value<?> value) { return defaultReturn(); } public Value<?> or(Value<?> value) { return defaultReturn(); } public Value<?> not() { return defaultReturn(); } protected Value<?> boolAnd(Bool leftValue) { return defaultReturn(); } protected Value<?> boolOr(Bool leftValue) { return defaultReturn(); } public Value<?> lt(Value<?> value) { return defaultReturn(); } public Value<?> leq(Value<?> value) { return defaultReturn(); } public Value<?> gt(Value<?> value) { return defaultReturn(); } public Value<?> geq(Value<?> value) { return defaultReturn(); } public Value<?> eq(Value<?> value) { return defaultReturn(); } public Value<?> neq(Value<?> value) { return defaultReturn(); } protected Value<?> intLt(Int leftValue) { return defaultReturn(); } protected Value<?> intLeq(Int leftValue) { return defaultReturn(); } protected Value<?> intGt(Int leftValue) { return defaultReturn(); } protected Value<?> intGeq(Int leftValue) { return defaultReturn(); } protected Value<?> intEq(Int value) { return defaultReturn(); } protected Value<?> intNeq(Int value) { return defaultReturn(); } protected Value<?> parse(Undefined value){ return defaultReturn(); } protected Value<?> parse(Bool value){ return defaultReturn(); } protected Value<?> parse(Str value){ return defaultReturn(); } protected Value<?> parse(Int value){ return defaultReturn(); } }