package de.dhbwstuttgart.strucTypes4.grammar;// Generated from /home/sebastian/Schreibtisch/FLJava/src/FWJ.g4 by ANTLR 4.6
import org.antlr.v4.runtime.tree.ParseTreeVisitor;

/**
 * This interface defines a complete generic visitor for a parse tree produced
 * by {@link FWJParser}.
 *
 * @param <T> The return type of the visit operation. Use {@link Void} for
 * operations with no return type.
 */
public interface FWJVisitor<T> extends ParseTreeVisitor<T> {
	/**
	 * Visit a parse tree produced by {@link FWJParser#sourceFile}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitSourceFile(FWJParser.SourceFileContext ctx);
	/**
	 * Visit a parse tree produced by {@link FWJParser#classX}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitClassX(FWJParser.ClassXContext ctx);
	/**
	 * Visit a parse tree produced by {@link FWJParser#feld}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitFeld(FWJParser.FeldContext ctx);
	/**
	 * Visit a parse tree produced by {@link FWJParser#generics}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitGenerics(FWJParser.GenericsContext ctx);
	/**
	 * Visit a parse tree produced by {@link FWJParser#generic}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitGeneric(FWJParser.GenericContext ctx);
	/**
	 * Visit a parse tree produced by {@link FWJParser#methodDecl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitMethodDecl(FWJParser.MethodDeclContext ctx);
	/**
	 * Visit a parse tree produced by {@link FWJParser#methodDeclArgs}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitMethodDeclArgs(FWJParser.MethodDeclArgsContext ctx);
	/**
	 * Visit a parse tree produced by {@link FWJParser#returnExpr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitReturnExpr(FWJParser.ReturnExprContext ctx);
	/**
	 * Visit a parse tree produced by {@link FWJParser#exprMCall}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitExprMCall(FWJParser.ExprMCallContext ctx);
	/**
	 * Visit a parse tree produced by {@link FWJParser#exprVar}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitExprVar(FWJParser.ExprVarContext ctx);
	/**
	 * Visit a parse tree produced by {@link FWJParser#exprField}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitExprField(FWJParser.ExprFieldContext ctx);
	/**
	 * Visit a parse tree produced by {@link FWJParser#exprNew}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitExprNew(FWJParser.ExprNewContext ctx);
	/**
	 * Visit a parse tree produced by {@link FWJParser#expr}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitExpr(FWJParser.ExprContext ctx);
	/**
	 * Visit a parse tree produced by {@link FWJParser#exprMCallArgs}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitExprMCallArgs(FWJParser.ExprMCallArgsContext ctx);
	/**
	 * Visit a parse tree produced by {@link FWJParser#bezeichner}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitBezeichner(FWJParser.BezeichnerContext ctx);
}