mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1985 Curve Calculator : Simplify interface to expression parser
This commit is contained in:
@@ -26,14 +26,6 @@ ExpressionParserImpl::ExpressionParserImpl()
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void ExpressionParserImpl::setExpression(const QString& expression)
|
||||
{
|
||||
m_expression = expression;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -64,13 +56,14 @@ void ExpressionParserImpl::assignVector(const QString& variableName, std::vector
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool ExpressionParserImpl::evaluate()
|
||||
bool ExpressionParserImpl::evaluate(const QString& expressionText, QString* errorText)
|
||||
{
|
||||
expression_t expression;
|
||||
|
||||
expression.register_symbol_table(m_symbol_table);
|
||||
|
||||
if (!parser.compile(m_expression.toStdString(), expression))
|
||||
parser_t parser;
|
||||
if (!parser.compile(expressionText.toStdString(), expression))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -78,13 +71,18 @@ bool ExpressionParserImpl::evaluate()
|
||||
// Trigger evaluation
|
||||
expression.value();
|
||||
|
||||
if (errorText)
|
||||
{
|
||||
*errorText = parserErrorText(parser);
|
||||
}
|
||||
|
||||
return (parser.error_count() == 0);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString ExpressionParserImpl::errorText() const
|
||||
QString ExpressionParserImpl::parserErrorText(parser_t& parser)
|
||||
{
|
||||
QString txt;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user