diff --git a/src/Eval.cpp b/src/Eval.cpp index 5855fd6b4..67fa6c8cc 100644 --- a/src/Eval.cpp +++ b/src/Eval.cpp @@ -50,17 +50,17 @@ static struct { "_hastag_", 14, 'b', 'l'}, // +tag [Pseudo-op] { "_notag_", 14, 'b', 'l'}, // -tag [Pseudo-op] - { "*", 13, 'b', 'l' }, // Multiplication - { "/", 13, 'b', 'l' }, // Division - { "%", 13, 'b', 'l' }, // Modulus + { "*", 13, 'b', 'l' }, // Multiplication + { "/", 13, 'b', 'l' }, // Division + { "%", 13, 'b', 'l' }, // Modulus - { "+", 12, 'b', 'l' }, // Addition - { "-", 12, 'b', 'l' }, // Subtraction + { "+", 12, 'b', 'l' }, // Addition + { "-", 12, 'b', 'l' }, // Subtraction { "<=", 10, 'b', 'l' }, // Less than or equal { ">=", 10, 'b', 'l' }, // Greater than or equal { ">", 10, 'b', 'l' }, // Greater than - { "<", 10, 'b', 'l' }, // Less than + { "<", 10, 'b', 'l' }, // Less than { "=", 9, 'b', 'l' }, // Equal { "==", 9, 'b', 'l' }, // Equal @@ -73,8 +73,8 @@ static struct { "or", 4, 'b', 'l' }, // Disjunction { "xor", 3, 'b', 'l' }, // Disjunction - { "(", 0, 'b', 'l' }, // Precedence start - { ")", 0, 'b', 'l' }, // Precedence end + { "(", 0, 'b', 'l' }, // Precedence start + { ")", 0, 'b', 'l' }, // Precedence end }; #define NUM_OPERATORS (sizeof (operators) / sizeof (operators[0])) @@ -171,6 +171,15 @@ void Eval::debug () _debug = true; } +//////////////////////////////////////////////////////////////////////////////// +// Static. +void Eval::getOperators (std::vector & all) +{ + all.clear (); + for (unsigned int i = 0; i < NUM_OPERATORS; ++i) + all.push_back (operators[i].op); +} + //////////////////////////////////////////////////////////////////////////////// void Eval::evaluatePostfixStack ( const std::vector >& tokens, diff --git a/src/Eval.h b/src/Eval.h index 258673a0c..11219894b 100644 --- a/src/Eval.h +++ b/src/Eval.h @@ -47,6 +47,8 @@ public: void ambiguity (bool); void debug (); + static void getOperators (std::vector &); + private: void evaluatePostfixStack (const std::vector >&, Variant&) const; void infixToPostfix (std::vector >&) const;