void EXParser::evaluateParenthesis(std::string & _expression, const int index) { std::string tempExpression = isolateParenthesisExpression(_expression, index); size_t expressionLen = tempExpression.length(); priorityOperatorLoop(tempExpression); _expression.replace(index, expressionLen+2, tempExpression); }
void EXParser::priorityLoop(std::string &_expression) { if(!isParenthesisBalanced(_expression)){ throw EXError("parenthesis_logic_error", ErrorIndex::PARENTHESIS_LOGIC_ERROR); } priorityFormulaLoop(_expression); priorityFunctionLoop(_expression); priorityOperatorLoop(_expression); }
bool EXParser::evaluateParenthesis(std::string & _expression, const int index) { std::string tempExpression = isolateParenthesisExpression(_expression, index); size_t expressionLen = tempExpression.length(); if(!priorityOperatorLoop(tempExpression)) return false; _expression.replace(index, expressionLen+2, tempExpression); return true; }
bool EXParser::priorityLoop(std::string &_expression) { if(!isParenthesisBalanced(_expression)){ mErrorStr = "parenthesis logic error"; return false; } if(!priorityFormulaLoop(_expression)) return false; if(!priorityFunctionLoop(_expression)) return false; if(!priorityOperatorLoop(_expression)) return false; return true; }