// Generated from Basic.g4 by ANTLR 4.7
package pp.s1184725.boppi;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;

/**
 * This interface defines a complete generic visitor for a parse tree produced
 * by {@link BasicParser}.
 *
 * @param <T> The return type of the visit operation. Use {@link Void} for
 * operations with no return type.
 */
public interface BasicVisitor<T> extends ParseTreeVisitor<T> {
	/**
	 * Visit a parse tree produced by {@link BasicParser#program}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitProgram(BasicParser.ProgramContext ctx);
	/**
	 * Visit a parse tree produced by {@link BasicParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitExpr(BasicParser.ExprContext ctx);
	/**
	 * Visit a parse tree produced by the {@code parens}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitParens(BasicParser.ParensContext ctx);
	/**
	 * Visit a parse tree produced by the {@code read}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitRead(BasicParser.ReadContext ctx);
	/**
	 * Visit a parse tree produced by the {@code declare}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitDeclare(BasicParser.DeclareContext ctx);
	/**
	 * Visit a parse tree produced by the {@code bool}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitBool(BasicParser.BoolContext ctx);
	/**
	 * Visit a parse tree produced by the {@code var}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitVar(BasicParser.VarContext ctx);
	/**
	 * Visit a parse tree produced by the {@code infix2}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitInfix2(BasicParser.Infix2Context ctx);
	/**
	 * Visit a parse tree produced by the {@code infix3}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitInfix3(BasicParser.Infix3Context ctx);
	/**
	 * Visit a parse tree produced by the {@code infix1}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitInfix1(BasicParser.Infix1Context ctx);
	/**
	 * Visit a parse tree produced by the {@code while}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitWhile(BasicParser.WhileContext ctx);
	/**
	 * Visit a parse tree produced by the {@code infix4}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitInfix4(BasicParser.Infix4Context ctx);
	/**
	 * Visit a parse tree produced by the {@code infix5}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitInfix5(BasicParser.Infix5Context ctx);
	/**
	 * Visit a parse tree produced by the {@code number}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitNumber(BasicParser.NumberContext ctx);
	/**
	 * Visit a parse tree produced by the {@code char}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitChar(BasicParser.CharContext ctx);
	/**
	 * Visit a parse tree produced by the {@code block}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitBlock(BasicParser.BlockContext ctx);
	/**
	 * Visit a parse tree produced by the {@code write}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitWrite(BasicParser.WriteContext ctx);
	/**
	 * Visit a parse tree produced by the {@code if}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitIf(BasicParser.IfContext ctx);
	/**
	 * Visit a parse tree produced by the {@code prefix1}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitPrefix1(BasicParser.Prefix1Context ctx);
	/**
	 * Visit a parse tree produced by the {@code assign}
	 * labeled alternative in {@link BasicParser#singleExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitAssign(BasicParser.AssignContext ctx);
	/**
	 * Visit a parse tree produced by {@link BasicParser#type}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitType(BasicParser.TypeContext ctx);
	/**
	 * Visit a parse tree produced by {@link BasicParser#variable}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitVariable(BasicParser.VariableContext ctx);
}