Private
Public Access
Improved the ComparisonValue to act more like BoolValue
This commit is contained in:
1 parent
fe53dab235
commit
3ba3c24b50
1 file changed
+13
-9
+13
-9
@@ -31,42 +31,46 @@ namespace Advanced_Software_Engineering.Verbs.Value.ValueTypes {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public string GetOriginalType() {
|
public string GetOriginalType() {
|
||||||
return "comparison";
|
return Evaluate().GetOriginalType();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool isInitialised() {
|
public bool isInitialised() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool ToBool() {
|
private IValue Evaluate() {
|
||||||
switch (op) {
|
switch (op) {
|
||||||
case "=":
|
case "=":
|
||||||
return value1.ToBool() == value2.ToBool() && value1.ToDouble() == value2.ToDouble() && value1.ToInt() == value2.ToInt();
|
return new BoolValue(value1.ToBool() == value2.ToBool() && value1.ToDouble() == value2.ToDouble() && value1.ToInt() == value2.ToInt());
|
||||||
|
|
||||||
case "!":
|
case "!":
|
||||||
return value1.ToBool() != value2.ToBool() && value1.ToDouble() != value2.ToDouble() && value1.ToInt() != value2.ToInt();
|
return new BoolValue(value1.ToBool() != value2.ToBool() && value1.ToDouble() != value2.ToDouble() && value1.ToInt() != value2.ToInt());
|
||||||
|
|
||||||
case ">":
|
case ">":
|
||||||
return value1.ToDouble() > value2.ToDouble() && value1.ToInt() > value2.ToInt();
|
return new BoolValue(value1.ToDouble() > value2.ToDouble() && value1.ToInt() > value2.ToInt());
|
||||||
|
|
||||||
case "<":
|
case "<":
|
||||||
return value1.ToDouble() < value2.ToDouble() && value1.ToInt() < value2.ToInt();
|
return new BoolValue(value1.ToDouble() < value2.ToDouble() && value1.ToInt() < value2.ToInt());
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw new Exception("Bad operator");
|
throw new Exception("Bad operator");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool ToBool() {
|
||||||
|
return Evaluate().ToBool();
|
||||||
|
}
|
||||||
|
|
||||||
public Color ToColor() {
|
public Color ToColor() {
|
||||||
throw new Exception("Cannot convert comparison to color");
|
return Evaluate().ToColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public double ToDouble() {
|
public double ToDouble() {
|
||||||
throw new Exception("Cannot convert comparison to double");
|
return Evaluate().ToDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int ToInt() {
|
public int ToInt() {
|
||||||
throw new Exception("Cannot convert comparison to int");
|
return Evaluate().ToInt();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user