package com.chenyang.druid.sql.dialect.kingbase.visitor;

import com.chenyang.druid.sql.dialect.kingbase.ast.KingbaseValuesTableSource;
import com.chenyang.druid.sql.dialect.kingbase.ast.ValueClause;
import com.chenyang.druid.sql.dialect.kingbase.ast.clause.KingbaseSQLOver;
import com.chenyang.druid.sql.dialect.kingbase.ast.clause.KingbaseWithSubqueryEntry;
import com.chenyang.druid.sql.dialect.kingbase.ast.expression.KingbaseArgumentExpr;
import com.chenyang.druid.sql.dialect.kingbase.ast.expression.KingbaseCaseStatement;
import com.chenyang.druid.sql.dialect.kingbase.ast.expression.KingbaseCharExpr;
import com.chenyang.druid.sql.dialect.kingbase.ast.expression.KingbaseConstantExpr;
import com.chenyang.druid.sql.dialect.kingbase.ast.expression.KingbaseDateTimeExpr;
import com.chenyang.druid.sql.dialect.kingbase.ast.expression.KingbaseExprTableSource;
import com.chenyang.druid.sql.dialect.kingbase.ast.expression.KingbaseForUpdateExpr;
import com.chenyang.druid.sql.dialect.kingbase.ast.expression.KingbaseTypeCastExpr;
import com.chenyang.druid.sql.dialect.kingbase.ast.expression.KingbaseUpdateTableSource;
import com.chenyang.druid.sql.dialect.kingbase.ast.statement.KingbaseDeleteStatement;
import com.chenyang.druid.sql.dialect.kingbase.ast.statement.KingbaseInsertStatement;
import com.chenyang.druid.sql.dialect.kingbase.ast.statement.KingbaseMultiInsertStatement;
import com.chenyang.druid.sql.dialect.kingbase.ast.statement.KingbaseSelectQueryBlock;
import com.chenyang.druid.sql.dialect.kingbase.ast.statement.KingbaseUpdateStatement;
import com.chenyang.druid.sql.visitor.SQLASTVisitor;

public interface KingbaseASTVisitor extends SQLASTVisitor {
   boolean visit(ValueClause var1);

   void endVisit(ValueClause var1);

   boolean visit(ValueClause.Item var1);

   void endVisit(ValueClause.Item var1);

   boolean visit(KingbaseValuesTableSource var1);

   void endVisit(KingbaseValuesTableSource var1);

   boolean visit(KingbaseUpdateStatement var1);

   void endVisit(KingbaseUpdateStatement var1);

   boolean visit(KingbaseUpdateTableSource var1);

   void endVisit(KingbaseUpdateTableSource var1);

   boolean visit(KingbaseSelectQueryBlock var1);

   void endVisit(KingbaseSelectQueryBlock var1);

   boolean visit(KingbaseArgumentExpr var1);

   void endVisit(KingbaseArgumentExpr var1);

   boolean visit(KingbaseCharExpr var1);

   void endVisit(KingbaseCharExpr var1);

   boolean visit(KingbaseCaseStatement.KingbaseWhenStatement var1);

   void endVisit(KingbaseCaseStatement.KingbaseWhenStatement var1);

   boolean visit(KingbaseCaseStatement var1);

   void endVisit(KingbaseCaseStatement var1);

   boolean visit(KingbaseInsertStatement var1);

   void endVisit(KingbaseInsertStatement var1);

   boolean visit(KingbaseDeleteStatement var1);

   void endVisit(KingbaseDeleteStatement var1);

   boolean visit(KingbaseTypeCastExpr var1);

   void endVisit(KingbaseTypeCastExpr var1);

   boolean visit(KingbaseSQLOver var1);

   void endVisit(KingbaseSQLOver var1);

   boolean visit(KingbaseDateTimeExpr var1);

   void endVisit(KingbaseDateTimeExpr var1);

   boolean visit(KingbaseForUpdateExpr var1);

   void endVisit(KingbaseForUpdateExpr var1);

   boolean visit(KingbaseExprTableSource var1);

   void endVisit(KingbaseExprTableSource var1);

   boolean visit(KingbaseWithSubqueryEntry var1);

   void endVisit(KingbaseWithSubqueryEntry var1);

   boolean visit(KingbaseConstantExpr var1);

   void endVisit(KingbaseConstantExpr var1);

   boolean visit(KingbaseMultiInsertStatement var1);

   void endVisit(KingbaseMultiInsertStatement var1);

   boolean visit(KingbaseMultiInsertStatement.ConditionalInsertClause var1);

   void endVisit(KingbaseMultiInsertStatement.ConditionalInsertClause var1);

   boolean visit(KingbaseMultiInsertStatement.ConditionalInsertClauseItem var1);

   void endVisit(KingbaseMultiInsertStatement.ConditionalInsertClauseItem var1);

   boolean visit(KingbaseMultiInsertStatement.InsertIntoClause var1);

   void endVisit(KingbaseMultiInsertStatement.InsertIntoClause var1);
}
