Allow for single args as bool ex. if 3 instead of if 3 == 3

This commit is contained in:
sam-astro 2022-05-25 10:45:15 -04:00 committed by GitHub
parent e0966a7920
commit 1ad7019940
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -279,8 +279,10 @@ boost::any EvalExpression(const string& ex, unordered_map<string, boost::any>& v
bool BooleanLogic(const string& valA, const string& determinant, const string& valB, unordered_map<string, boost::any>& variableValues)
{
boost::any valARealValue = EvalExpression(valA, variableValues);
boost::any valBRealValue = EvalExpression(valB, variableValues);
if(valA)
boost::any valARealValue = EvalExpression(valA, variableValues);
if(valB)
boost::any valBRealValue = EvalExpression(valB, variableValues);
#if DEVELOPER_MESSAGES == true
InterpreterLog(AnyAsString(valARealValue) + " " + determinant + " " + AnyAsString(valBRealValue) + " : " + AnyAsString(valA) + " " + determinant + " " + AnyAsString(valB) + " : " + to_string(AnyAsString(valARealValue) == AnyAsString(valBRealValue)));
#endif
@ -296,6 +298,8 @@ bool BooleanLogic(const string& valA, const string& determinant, const string& v
return AnyAsFloat(valARealValue) > AnyAsFloat(valBRealValue);
else if (determinant == "<")
return AnyAsFloat(valARealValue) < AnyAsFloat(valBRealValue);
else if (determinant == "")
return AnyAsBool(valARealValue) == true;
else
LogWarning("unrecognized determinant \'" + determinant + "\'");