Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include <memory>
- #include "date.h"
- //#include "condition_parser.h"
- using namespace std;
- class Node {
- public:
- Node();
- virtual bool Evaluate(const Date &date, const string &event) const = 0;
- };
- class EmptyNode : public Node {
- public:
- EmptyNode();
- bool Evaluate(const Date &date, const string &event) const override;
- };
- class DateComparisonNode : public Node {
- public:
- DateComparisonNode(const Comparison &comparison, const Date &date);
- bool Evaluate(const Date &date, const string &event) const override;
- private:
- const Comparison _comparison;
- const Date _date;
- };
- class EventComparisonNode : public Node {
- public:
- EventComparisonNode(const Comparison &comparison, const string &value);
- bool Evaluate(const Date &date, const string &event) const override;
- private:
- const Comparison _comparison;
- const string _value;
- };
- class LogicalOperationNode : public Node {
- public:
- LogicalOperationNode(const LogicalOperation &logical_operation, const shared_ptr<Node> &left,
- const shared_ptr<Node> &right);
- bool Evaluate(const Date &date, const string &event) const override;
- private:
- const LogicalOperation _logical_operation;
- const shared_ptr<Node> _left, _right;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement