33 lines
685 B
C++
33 lines
685 B
C++
#ifndef RSQL_PARSER_LOGICAL_NODE_HPP
|
|
#define RSQL_PARSER_LOGICAL_NODE_HPP
|
|
|
|
#include "node.hpp"
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
#include <memory>
|
|
|
|
namespace matador::rsql {
|
|
enum class logical_operator {
|
|
AND,
|
|
OR,
|
|
};
|
|
|
|
class node_visitor;
|
|
|
|
class logical_node final : public node {
|
|
public:
|
|
explicit logical_node(logical_operator op);
|
|
void accept(node_visitor& visitor) const override;
|
|
|
|
const std::vector<std::shared_ptr<node>>& children() const;
|
|
logical_operator operand() const;
|
|
|
|
private:
|
|
friend class parser;
|
|
logical_operator op_; // ";" for AND, "," for OR
|
|
std::vector<std::shared_ptr<node>> children_;
|
|
};
|
|
|
|
}
|
|
#endif //RSQL_PARSER_LOGICAL_NODE_HPP
|