
// Generated from Plan.g4 by ANTLR 4.9.2

#pragma once


#include "antlr4-runtime.h"
#include "PlanParser.h"



/**
 * This class defines an abstract visitor for a parse tree
 * produced by PlanParser.
 */
class  PlanVisitor : public antlr4::tree::AbstractParseTreeVisitor {
public:

  /**
   * Visit parse trees produced by PlanParser.
   */
    virtual antlrcpp::Any visitJSONIdentifier(PlanParser::JSONIdentifierContext *context) = 0;

    virtual antlrcpp::Any visitParens(PlanParser::ParensContext *context) = 0;

    virtual antlrcpp::Any visitString(PlanParser::StringContext *context) = 0;

    virtual antlrcpp::Any visitFloating(PlanParser::FloatingContext *context) = 0;

    virtual antlrcpp::Any visitJSONContainsAll(PlanParser::JSONContainsAllContext *context) = 0;

    virtual antlrcpp::Any visitLogicalOr(PlanParser::LogicalOrContext *context) = 0;

    virtual antlrcpp::Any visitMulDivMod(PlanParser::MulDivModContext *context) = 0;

    virtual antlrcpp::Any visitIdentifier(PlanParser::IdentifierContext *context) = 0;

    virtual antlrcpp::Any visitLike(PlanParser::LikeContext *context) = 0;

    virtual antlrcpp::Any visitLogicalAnd(PlanParser::LogicalAndContext *context) = 0;

    virtual antlrcpp::Any visitEquality(PlanParser::EqualityContext *context) = 0;

    virtual antlrcpp::Any visitBoolean(PlanParser::BooleanContext *context) = 0;

    virtual antlrcpp::Any visitShift(PlanParser::ShiftContext *context) = 0;

    virtual antlrcpp::Any visitReverseRange(PlanParser::ReverseRangeContext *context) = 0;

    virtual antlrcpp::Any visitBitOr(PlanParser::BitOrContext *context) = 0;

    virtual antlrcpp::Any visitAddSub(PlanParser::AddSubContext *context) = 0;

    virtual antlrcpp::Any visitRelational(PlanParser::RelationalContext *context) = 0;

    virtual antlrcpp::Any visitArrayLength(PlanParser::ArrayLengthContext *context) = 0;

    virtual antlrcpp::Any visitTerm(PlanParser::TermContext *context) = 0;

    virtual antlrcpp::Any visitJSONContains(PlanParser::JSONContainsContext *context) = 0;

    virtual antlrcpp::Any visitRange(PlanParser::RangeContext *context) = 0;

    virtual antlrcpp::Any visitUnary(PlanParser::UnaryContext *context) = 0;

    virtual antlrcpp::Any visitInteger(PlanParser::IntegerContext *context) = 0;

    virtual antlrcpp::Any visitArray(PlanParser::ArrayContext *context) = 0;

    virtual antlrcpp::Any visitJSONContainsAny(PlanParser::JSONContainsAnyContext *context) = 0;

    virtual antlrcpp::Any visitBitXor(PlanParser::BitXorContext *context) = 0;

    virtual antlrcpp::Any visitExists(PlanParser::ExistsContext *context) = 0;

    virtual antlrcpp::Any visitBitAnd(PlanParser::BitAndContext *context) = 0;

    virtual antlrcpp::Any visitEmptyTerm(PlanParser::EmptyTermContext *context) = 0;

    virtual antlrcpp::Any visitPower(PlanParser::PowerContext *context) = 0;


};

