rsql-parser/include/matador/rsql/logical_node.hpp

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