Revert "Changed to switch case for Equ and BooleanLogic and added warnings"

This reverts commit d761591b14ee3cee5a24199765325d72002fd57e.
This commit is contained in:
sam-astro 2022-01-05 15:10:55 -05:00
parent 741e05b500
commit b1a1133d85

View File

@ -309,25 +309,19 @@ bool BooleanLogic(const string& valA, const string& determinant, const string& v
any valARealValue = EvalExpression(valA, variableVals);
any valBRealValue = EvalExpression(valB, variableVals);
switch(determinant)
{
case "==":
return AnyAsString(valARealValue) == AnyAsString(valBRealValue);
case "!=":
return AnyAsString(valARealValue) != AnyAsString(valBRealValue);
case ">=":
return AnyAsFloat(valARealValue) >= AnyAsFloat(valBRealValue);
case "<=":
return AnyAsFloat(valARealValue) <= AnyAsFloat(valBRealValue);
case ">":
return AnyAsFloat(valARealValue) > AnyAsFloat(valBRealValue);
case "<":
return AnyAsFloat(valARealValue) < AnyAsFloat(valBRealValue);
default:
LogWarning("invalid determinant \'" + determinant + "\'");
return false;
}
if (determinant == "==")
return AnyAsString(valARealValue) == AnyAsString(valBRealValue);
if (determinant == "!=")
return AnyAsString(valARealValue) != AnyAsString(valBRealValue);
if (determinant == ">=")
return AnyAsFloat(valARealValue) >= AnyAsFloat(valBRealValue);
if (determinant == "<=")
return AnyAsFloat(valARealValue) <= AnyAsFloat(valBRealValue);
if (determinant == ">")
return AnyAsFloat(valARealValue) > AnyAsFloat(valBRealValue);
if (determinant == "<")
return AnyAsFloat(valARealValue) < AnyAsFloat(valBRealValue);
return false;
}
@ -335,43 +329,34 @@ int varOperation(const vector<string>& str, unordered_map<string, any>& variable
{
if (IsVar(str[0], variableValues))
{
switch(str[1])
{
case "=":
variableValues[str[0]] = EvalExpression(unWrapVec(vector<string>(str.begin() + 2, str.end())), variableValues);
case "+=":
variableValues[str[0]] = EvalExpression(str[0] + "+(" + unWrapVec(vector<string>(str.begin() + 2, str.end())) + ")", variableValues);
case "-=":
variableValues[str[0]] = AnyAsFloat(variableValues[str[0]]) - AnyAsFloat(EvalExpression(unWrapVec(vector<string>(str.begin() + 2, str.end())), variableValues));
case "*=":
variableValues[str[0]] = AnyAsFloat(variableValues[str[0]]) * AnyAsFloat(EvalExpression(unWrapVec(vector<string>(str.begin() + 2, str.end())), variableValues));
case "/=":
variableValues[str[0]] = AnyAsFloat(variableValues[str[0]]) / AnyAsFloat(EvalExpression(unWrapVec(vector<string>(str.begin() + 2, str.end())), variableValues));
default:
LogWarning("invalid operator \'" + str[1] + "\'");
return 1;
}
if (str[1] == "=")
variableValues[str[0]] = EvalExpression(unWrapVec(vector<string>(str.begin() + 2, str.end())), variableValues);
else if (str[1] == "+=")
variableValues[str[0]] = EvalExpression(str[0] + "+(" + unWrapVec(vector<string>(str.begin() + 2, str.end())) + ")", variableValues);
else if (str[1] == "-=")
variableValues[str[0]] = AnyAsFloat(variableValues[str[0]]) - AnyAsFloat(EvalExpression(unWrapVec(vector<string>(str.begin() + 2, str.end())), variableValues));
else if (str[1] == "*=")
variableValues[str[0]] = AnyAsFloat(variableValues[str[0]]) * AnyAsFloat(EvalExpression(unWrapVec(vector<string>(str.begin() + 2, str.end())), variableValues));
else if (str[1] == "/=")
variableValues[str[0]] = AnyAsFloat(variableValues[str[0]]) / AnyAsFloat(EvalExpression(unWrapVec(vector<string>(str.begin() + 2, str.end())), variableValues));
//cout << variables[v] << " is " << variableValues[v] << endl;
return 0;
}
else if (IsVar(str[0], globalVariableValues))
{
switch(str[1])
{
case "=":
globalVariableValues[str[0]] = EvalExpression(unWrapVec(vector<string>(str.begin() + 2, str.end())), variableValues);
case "+=":
globalVariableValues[str[0]] = EvalExpression(str[0] + "+(" + unWrapVec(vector<string>(str.begin() + 2, str.end())) + ")", variableValues);
case "-=":
globalVariableValues[str[0]] = AnyAsFloat(variableValues[str[0]]) - AnyAsFloat(EvalExpression(unWrapVec(vector<string>(str.begin() + 2, str.end())), variableValues));
case "*=":
globalVariableValues[str[0]] = AnyAsFloat(variableValues[str[0]]) * AnyAsFloat(EvalExpression(unWrapVec(vector<string>(str.begin() + 2, str.end())), variableValues));
case "/=":
globalVariableValues[str[0]] = AnyAsFloat(variableValues[str[0]]) / AnyAsFloat(EvalExpression(unWrapVec(vector<string>(str.begin() + 2, str.end())), variableValues));
default:
LogWarning("invalid operator \'" + str[1] + "\'");
return 1;
}
if (str[1] == "=")
globalVariableValues[str[0]] = EvalExpression(unWrapVec(vector<string>(str.begin() + 2, str.end())), variableValues);
else if (str[1] == "+=")
globalVariableValues[str[0]] = EvalExpression(str[0] + "+(" + unWrapVec(vector<string>(str.begin() + 2, str.end())) + ")", variableValues);
else if (str[1] == "-=")
globalVariableValues[str[0]] = AnyAsFloat(variableValues[str[0]]) - AnyAsFloat(EvalExpression(unWrapVec(vector<string>(str.begin() + 2, str.end())), variableValues));
else if (str[1] == "*=")
globalVariableValues[str[0]] = AnyAsFloat(variableValues[str[0]]) * AnyAsFloat(EvalExpression(unWrapVec(vector<string>(str.begin() + 2, str.end())), variableValues));
else if (str[1] == "/=")
globalVariableValues[str[0]] = AnyAsFloat(variableValues[str[0]]) / AnyAsFloat(EvalExpression(unWrapVec(vector<string>(str.begin() + 2, str.end())), variableValues));
//cout << variables[v] << " is " << variableValues[v] << endl;
return 0;
}
LogWarning("uninitialized variable or typo in \'" << str[0] << "\'");