package ast.value;
public class Bool extends Value{
private final Boolean value;
public Bool(Boolean value) {
this.value = value;
}
public Boolean getValue() {
return value;
}
@Override
public Value and(Value val){
return val.andBool(this);
}
@Override
protected Value andBool(Bool val){
return new Bool(val.getValue() && getValue());
}
@Override
public Value or(Value val){
return val.orBool(this);
}
@Override
protected Value orBool(Bool val){
return new Bool(val.getValue() || getValue());
}
@Override
public Value neq(Value val){
return val.neqBool(this);
}
@Override
protected Value neqBool(Bool val){
return new Bool(val.getValue() != getValue());
}
@Override
public Value eq(Value val){
return val.eqBool(this);
}
@Override
protected Value eqBool(Bool val){
return new Bool(val.getValue() == getValue());
}
@Override
public Value not(){
return new Bool(!getValue());
}
@Override
public boolean isDefined() {
return true;
}
}