From e88ccee1e60c3d3b3a164015165d594d369242fa Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 26 May 2014 21:05:38 -0400 Subject: [PATCH] Eval - Added the new Variant::operator_hastag and Variant::operator_notag operators to the expression evaluator. All operators now implemented, at least in stubbed form. --- src/Eval.cpp | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/src/Eval.cpp b/src/Eval.cpp index 76b8bb85f..b62f39bf4 100644 --- a/src/Eval.cpp +++ b/src/Eval.cpp @@ -267,26 +267,28 @@ void Eval::evaluatePostfixStack ( values.pop_back (); // Ordering these by anticipation frequency of use is a good idea. - if (token->first == "and") left = left && right; - else if (token->first == "or") left = left || right; - else if (token->first == "&&") left = left && right; - else if (token->first == "||") left = left || right; - else if (token->first == "<") left = left < right; - else if (token->first == "<=") left = left <= right; - else if (token->first == ">") left = left > right; - else if (token->first == ">=") left = left >= right; - else if (token->first == "==") left = left.operator== (right); - else if (token->first == "=") left = left.operator_partial (right); - else if (token->first == "!=") left = left.operator!= (right); - else if (token->first == "+") left += right; - else if (token->first == "-") left -= right; - else if (token->first == "*") left *= right; - else if (token->first == "/") left /= right; - else if (token->first == "^") left ^= right; - else if (token->first == "%") left %= right; - else if (token->first == "xor") left = left.operator_xor (right); - else if (token->first == "~") left = left.operator_match (right); - else if (token->first == "!~") left = left.operator_nomatch (right); + if (token->first == "and") left = left && right; + else if (token->first == "or") left = left || right; + else if (token->first == "&&") left = left && right; + else if (token->first == "||") left = left || right; + else if (token->first == "<") left = left < right; + else if (token->first == "<=") left = left <= right; + else if (token->first == ">") left = left > right; + else if (token->first == ">=") left = left >= right; + else if (token->first == "==") left = left.operator== (right); + else if (token->first == "=") left = left.operator_partial (right); + else if (token->first == "!=") left = left.operator!= (right); + else if (token->first == "+") left += right; + else if (token->first == "-") left -= right; + else if (token->first == "*") left *= right; + else if (token->first == "/") left /= right; + else if (token->first == "^") left ^= right; + else if (token->first == "%") left %= right; + else if (token->first == "xor") left = left.operator_xor (right); + else if (token->first == "~") left = left.operator_match (right); + else if (token->first == "!~") left = left.operator_nomatch (right); + else if (token->first == "_hastag_") left = left.operator_hastag (right); + else if (token->first == "_notag_") left = left.operator_notag (right); else std::cout << "# Unrecognized operator '" << token->first << "'\n";