static QString tokenizeFormula(const QString& formula) { Formula f; QString expr = formula; expr.prepend( '=' ); f.setExpression( expr ); Tokens tokens = f.tokens(); QString resultCodes; if( tokens.valid() ) for( int i = 0; i < tokens.count(); i++ ) resultCodes.append( encodeTokenType( tokens[i] ) ); return resultCodes; }
Value TestTextFunctions::evaluate(const QString& formula, Value& ex) { Formula f; QString expr = formula; if (expr[0] != '=') expr.prepend('='); f.setExpression(expr); Value result = f.eval(); if (result.isFloat() && ex.isInteger()) ex = Value(ex.asFloat()); if (result.isInteger() && ex.isFloat()) result = Value(result.asFloat()); return result; }