#ifndef MEMGRAPH_CYPHER_AST_AST_NODE_HPP #define MEMGRAPH_CYPHER_AST_AST_NODE_HPP #include #include "utils/visitor/visitable.hpp" #include "utils/crtp.hpp" #include "ast_visitor.hpp" namespace ast { struct AstVisitor; struct AstVisitable : public Visitable { using uptr = std::unique_ptr; }; template struct AstNode : public Crtp, public AstVisitable { using uptr = std::unique_ptr; virtual void accept(AstVisitor& visitor) { visitor.visit(this->derived()); } }; } #endif