// Generated from StrLang.g4 by ANTLR 4.13.1
import org.antlr.v4.runtime.tree.ParseTreeVisitor;

/**
 * This interface defines a complete generic visitor for a parse tree produced
 * by {@link StrLangParser}.
 *
 * @param <T> The return type of the visit operation. Use {@link Void} for
 * operations with no return type.
 */
public interface StrLangVisitor<T> extends ParseTreeVisitor<T> {
	/**
	 * Visit a parse tree produced by {@link StrLangParser#program}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitProgram(StrLangParser.ProgramContext ctx);
	/**
	 * Visit a parse tree produced by {@link StrLangParser#statement}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitStatement(StrLangParser.StatementContext ctx);
	/**
	 * Visit a parse tree produced by {@link StrLangParser#print}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitPrint(StrLangParser.PrintContext ctx);
	/**
	 * Visit a parse tree produced by {@link StrLangParser#input}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitInput(StrLangParser.InputContext ctx);
	/**
	 * Visit a parse tree produced by {@link StrLangParser#definevariable}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitDefinevariable(StrLangParser.DefinevariableContext ctx);
	/**
	 * Visit a parse tree produced by the {@code removeExpression}
	 * labeled alternative in {@link StrLangParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitRemoveExpression(StrLangParser.RemoveExpressionContext ctx);
	/**
	 * Visit a parse tree produced by the {@code idExpression}
	 * labeled alternative in {@link StrLangParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitIdExpression(StrLangParser.IdExpressionContext ctx);
	/**
	 * Visit a parse tree produced by the {@code trimExpression}
	 * labeled alternative in {@link StrLangParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitTrimExpression(StrLangParser.TrimExpressionContext ctx);
	/**
	 * Visit a parse tree produced by the {@code parenthesisExpression}
	 * labeled alternative in {@link StrLangParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitParenthesisExpression(StrLangParser.ParenthesisExpressionContext ctx);
	/**
	 * Visit a parse tree produced by the {@code contentExpression}
	 * labeled alternative in {@link StrLangParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitContentExpression(StrLangParser.ContentExpressionContext ctx);
	/**
	 * Visit a parse tree produced by the {@code replaceExpression}
	 * labeled alternative in {@link StrLangParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitReplaceExpression(StrLangParser.ReplaceExpressionContext ctx);
	/**
	 * Visit a parse tree produced by the {@code concatExpression}
	 * labeled alternative in {@link StrLangParser#expression}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitConcatExpression(StrLangParser.ConcatExpressionContext ctx);
}