+++ /dev/null
-#ifndef BOOLEANEVALUATOR_H_
-#define BOOLEANEVALUATOR_H_
-
-#include <functional>
-#include <string>
-#include <vector>
-
-class BooleanEvaluator
-{
-public:
- using Function = std::function<bool(const std::string &, const std::string *)>;
-
-private:
- Function func;
- std::string ops;
- std::vector<std::string> var_stack;
- std::vector<unsigned char> value_stack;
- std::vector<char> op_stack;
- bool last_was_op;
-
-public:
- BooleanEvaluator(const Function &, bool = true);
-
- bool evaluate(const std::string &);
-private:
- void push_op(char);
- bool pop_value();
- void collapse(unsigned);
- unsigned precedence(char);
- bool is_unary(char);
- bool is_logic(char);
-};
-
-#endif