// Generated from C:/Users/ruben/IdeaProjects/JavaCompilerCore/src/main/antlr4/de/dhbwstuttgart/parser/antlr/Java17Parser.g4 by ANTLR 4.13.1
import org.antlr.v4.runtime.tree.ParseTreeListener;

/**
 * This interface defines a complete listener for a parse tree produced by
 * {@link Java17Parser}.
 */
public interface Java17ParserListener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by the {@code srcfile}
	 * labeled alternative in {@link Java17Parser#sourceFile}.
	 * @param ctx the parse tree
	 */
	void enterSrcfile(Java17Parser.SrcfileContext ctx);
	/**
	 * Exit a parse tree produced by the {@code srcfile}
	 * labeled alternative in {@link Java17Parser#sourceFile}.
	 * @param ctx the parse tree
	 */
	void exitSrcfile(Java17Parser.SrcfileContext ctx);
	/**
	 * Enter a parse tree produced by the {@code moduledecl}
	 * labeled alternative in {@link Java17Parser#sourceFile}.
	 * @param ctx the parse tree
	 */
	void enterModuledecl(Java17Parser.ModuledeclContext ctx);
	/**
	 * Exit a parse tree produced by the {@code moduledecl}
	 * labeled alternative in {@link Java17Parser#sourceFile}.
	 * @param ctx the parse tree
	 */
	void exitModuledecl(Java17Parser.ModuledeclContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#packageDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterPackageDeclaration(Java17Parser.PackageDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#packageDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitPackageDeclaration(Java17Parser.PackageDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#importDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterImportDeclaration(Java17Parser.ImportDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#importDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitImportDeclaration(Java17Parser.ImportDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by the {@code classorinterfacedecl}
	 * labeled alternative in {@link Java17Parser#classOrInterface}.
	 * @param ctx the parse tree
	 */
	void enterClassorinterfacedecl(Java17Parser.ClassorinterfacedeclContext ctx);
	/**
	 * Exit a parse tree produced by the {@code classorinterfacedecl}
	 * labeled alternative in {@link Java17Parser#classOrInterface}.
	 * @param ctx the parse tree
	 */
	void exitClassorinterfacedecl(Java17Parser.ClassorinterfacedeclContext ctx);
	/**
	 * Enter a parse tree produced by the {@code noclassorinterface}
	 * labeled alternative in {@link Java17Parser#classOrInterface}.
	 * @param ctx the parse tree
	 */
	void enterNoclassorinterface(Java17Parser.NoclassorinterfaceContext ctx);
	/**
	 * Exit a parse tree produced by the {@code noclassorinterface}
	 * labeled alternative in {@link Java17Parser#classOrInterface}.
	 * @param ctx the parse tree
	 */
	void exitNoclassorinterface(Java17Parser.NoclassorinterfaceContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#modifier}.
	 * @param ctx the parse tree
	 */
	void enterModifier(Java17Parser.ModifierContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#modifier}.
	 * @param ctx the parse tree
	 */
	void exitModifier(Java17Parser.ModifierContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#classOrInterfaceModifier}.
	 * @param ctx the parse tree
	 */
	void enterClassOrInterfaceModifier(Java17Parser.ClassOrInterfaceModifierContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#classOrInterfaceModifier}.
	 * @param ctx the parse tree
	 */
	void exitClassOrInterfaceModifier(Java17Parser.ClassOrInterfaceModifierContext ctx);
	/**
	 * Enter a parse tree produced by the {@code finalvarmod}
	 * labeled alternative in {@link Java17Parser#variableModifier}.
	 * @param ctx the parse tree
	 */
	void enterFinalvarmod(Java17Parser.FinalvarmodContext ctx);
	/**
	 * Exit a parse tree produced by the {@code finalvarmod}
	 * labeled alternative in {@link Java17Parser#variableModifier}.
	 * @param ctx the parse tree
	 */
	void exitFinalvarmod(Java17Parser.FinalvarmodContext ctx);
	/**
	 * Enter a parse tree produced by the {@code annotationvarmod}
	 * labeled alternative in {@link Java17Parser#variableModifier}.
	 * @param ctx the parse tree
	 */
	void enterAnnotationvarmod(Java17Parser.AnnotationvarmodContext ctx);
	/**
	 * Exit a parse tree produced by the {@code annotationvarmod}
	 * labeled alternative in {@link Java17Parser#variableModifier}.
	 * @param ctx the parse tree
	 */
	void exitAnnotationvarmod(Java17Parser.AnnotationvarmodContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#classDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterClassDeclaration(Java17Parser.ClassDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#classDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitClassDeclaration(Java17Parser.ClassDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#genericDeclarationList}.
	 * @param ctx the parse tree
	 */
	void enterGenericDeclarationList(Java17Parser.GenericDeclarationListContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#genericDeclarationList}.
	 * @param ctx the parse tree
	 */
	void exitGenericDeclarationList(Java17Parser.GenericDeclarationListContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#genericTypeVar}.
	 * @param ctx the parse tree
	 */
	void enterGenericTypeVar(Java17Parser.GenericTypeVarContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#genericTypeVar}.
	 * @param ctx the parse tree
	 */
	void exitGenericTypeVar(Java17Parser.GenericTypeVarContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#typeBound}.
	 * @param ctx the parse tree
	 */
	void enterTypeBound(Java17Parser.TypeBoundContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#typeBound}.
	 * @param ctx the parse tree
	 */
	void exitTypeBound(Java17Parser.TypeBoundContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#enumDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterEnumDeclaration(Java17Parser.EnumDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#enumDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitEnumDeclaration(Java17Parser.EnumDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#enumConstants}.
	 * @param ctx the parse tree
	 */
	void enterEnumConstants(Java17Parser.EnumConstantsContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#enumConstants}.
	 * @param ctx the parse tree
	 */
	void exitEnumConstants(Java17Parser.EnumConstantsContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#enumConstant}.
	 * @param ctx the parse tree
	 */
	void enterEnumConstant(Java17Parser.EnumConstantContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#enumConstant}.
	 * @param ctx the parse tree
	 */
	void exitEnumConstant(Java17Parser.EnumConstantContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#enumBodyDeclarations}.
	 * @param ctx the parse tree
	 */
	void enterEnumBodyDeclarations(Java17Parser.EnumBodyDeclarationsContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#enumBodyDeclarations}.
	 * @param ctx the parse tree
	 */
	void exitEnumBodyDeclarations(Java17Parser.EnumBodyDeclarationsContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#interfaceDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterInterfaceDeclaration(Java17Parser.InterfaceDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#interfaceDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitInterfaceDeclaration(Java17Parser.InterfaceDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#classBody}.
	 * @param ctx the parse tree
	 */
	void enterClassBody(Java17Parser.ClassBodyContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#classBody}.
	 * @param ctx the parse tree
	 */
	void exitClassBody(Java17Parser.ClassBodyContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#interfaceBody}.
	 * @param ctx the parse tree
	 */
	void enterInterfaceBody(Java17Parser.InterfaceBodyContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#interfaceBody}.
	 * @param ctx the parse tree
	 */
	void exitInterfaceBody(Java17Parser.InterfaceBodyContext ctx);
	/**
	 * Enter a parse tree produced by the {@code emptyclassbody}
	 * labeled alternative in {@link Java17Parser#classBodyDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterEmptyclassbody(Java17Parser.EmptyclassbodyContext ctx);
	/**
	 * Exit a parse tree produced by the {@code emptyclassbody}
	 * labeled alternative in {@link Java17Parser#classBodyDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitEmptyclassbody(Java17Parser.EmptyclassbodyContext ctx);
	/**
	 * Enter a parse tree produced by the {@code classblock}
	 * labeled alternative in {@link Java17Parser#classBodyDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterClassblock(Java17Parser.ClassblockContext ctx);
	/**
	 * Exit a parse tree produced by the {@code classblock}
	 * labeled alternative in {@link Java17Parser#classBodyDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitClassblock(Java17Parser.ClassblockContext ctx);
	/**
	 * Enter a parse tree produced by the {@code memberdecl}
	 * labeled alternative in {@link Java17Parser#classBodyDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterMemberdecl(Java17Parser.MemberdeclContext ctx);
	/**
	 * Exit a parse tree produced by the {@code memberdecl}
	 * labeled alternative in {@link Java17Parser#classBodyDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitMemberdecl(Java17Parser.MemberdeclContext ctx);
	/**
	 * Enter a parse tree produced by the {@code memberclassorinterface}
	 * labeled alternative in {@link Java17Parser#memberDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterMemberclassorinterface(Java17Parser.MemberclassorinterfaceContext ctx);
	/**
	 * Exit a parse tree produced by the {@code memberclassorinterface}
	 * labeled alternative in {@link Java17Parser#memberDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitMemberclassorinterface(Java17Parser.MemberclassorinterfaceContext ctx);
	/**
	 * Enter a parse tree produced by the {@code memberfield}
	 * labeled alternative in {@link Java17Parser#memberDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterMemberfield(Java17Parser.MemberfieldContext ctx);
	/**
	 * Exit a parse tree produced by the {@code memberfield}
	 * labeled alternative in {@link Java17Parser#memberDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitMemberfield(Java17Parser.MemberfieldContext ctx);
	/**
	 * Enter a parse tree produced by the {@code membermethod}
	 * labeled alternative in {@link Java17Parser#memberDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterMembermethod(Java17Parser.MembermethodContext ctx);
	/**
	 * Exit a parse tree produced by the {@code membermethod}
	 * labeled alternative in {@link Java17Parser#memberDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitMembermethod(Java17Parser.MembermethodContext ctx);
	/**
	 * Enter a parse tree produced by the {@code memberconstructor}
	 * labeled alternative in {@link Java17Parser#memberDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterMemberconstructor(Java17Parser.MemberconstructorContext ctx);
	/**
	 * Exit a parse tree produced by the {@code memberconstructor}
	 * labeled alternative in {@link Java17Parser#memberDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitMemberconstructor(Java17Parser.MemberconstructorContext ctx);
	/**
	 * Enter a parse tree produced by the {@code methoddecl}
	 * labeled alternative in {@link Java17Parser#method}.
	 * @param ctx the parse tree
	 */
	void enterMethoddecl(Java17Parser.MethoddeclContext ctx);
	/**
	 * Exit a parse tree produced by the {@code methoddecl}
	 * labeled alternative in {@link Java17Parser#method}.
	 * @param ctx the parse tree
	 */
	void exitMethoddecl(Java17Parser.MethoddeclContext ctx);
	/**
	 * Enter a parse tree produced by the {@code genericmethod}
	 * labeled alternative in {@link Java17Parser#method}.
	 * @param ctx the parse tree
	 */
	void enterGenericmethod(Java17Parser.GenericmethodContext ctx);
	/**
	 * Exit a parse tree produced by the {@code genericmethod}
	 * labeled alternative in {@link Java17Parser#method}.
	 * @param ctx the parse tree
	 */
	void exitGenericmethod(Java17Parser.GenericmethodContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#methodDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterMethodDeclaration(Java17Parser.MethodDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#methodDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitMethodDeclaration(Java17Parser.MethodDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#methodHeader}.
	 * @param ctx the parse tree
	 */
	void enterMethodHeader(Java17Parser.MethodHeaderContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#methodHeader}.
	 * @param ctx the parse tree
	 */
	void exitMethodHeader(Java17Parser.MethodHeaderContext ctx);
	/**
	 * Enter a parse tree produced by the {@code methodblock}
	 * labeled alternative in {@link Java17Parser#methodBody}.
	 * @param ctx the parse tree
	 */
	void enterMethodblock(Java17Parser.MethodblockContext ctx);
	/**
	 * Exit a parse tree produced by the {@code methodblock}
	 * labeled alternative in {@link Java17Parser#methodBody}.
	 * @param ctx the parse tree
	 */
	void exitMethodblock(Java17Parser.MethodblockContext ctx);
	/**
	 * Enter a parse tree produced by the {@code emptymethod}
	 * labeled alternative in {@link Java17Parser#methodBody}.
	 * @param ctx the parse tree
	 */
	void enterEmptymethod(Java17Parser.EmptymethodContext ctx);
	/**
	 * Exit a parse tree produced by the {@code emptymethod}
	 * labeled alternative in {@link Java17Parser#methodBody}.
	 * @param ctx the parse tree
	 */
	void exitEmptymethod(Java17Parser.EmptymethodContext ctx);
	/**
	 * Enter a parse tree produced by the {@code refType2}
	 * labeled alternative in {@link Java17Parser#refType}.
	 * @param ctx the parse tree
	 */
	void enterRefType2(Java17Parser.RefType2Context ctx);
	/**
	 * Exit a parse tree produced by the {@code refType2}
	 * labeled alternative in {@link Java17Parser#refType}.
	 * @param ctx the parse tree
	 */
	void exitRefType2(Java17Parser.RefType2Context ctx);
	/**
	 * Enter a parse tree produced by the {@code refvoid}
	 * labeled alternative in {@link Java17Parser#refType}.
	 * @param ctx the parse tree
	 */
	void enterRefvoid(Java17Parser.RefvoidContext ctx);
	/**
	 * Exit a parse tree produced by the {@code refvoid}
	 * labeled alternative in {@link Java17Parser#refType}.
	 * @param ctx the parse tree
	 */
	void exitRefvoid(Java17Parser.RefvoidContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#genericMethodDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterGenericMethodDeclaration(Java17Parser.GenericMethodDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#genericMethodDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitGenericMethodDeclaration(Java17Parser.GenericMethodDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by the {@code genericconstructor}
	 * labeled alternative in {@link Java17Parser#constructor}.
	 * @param ctx the parse tree
	 */
	void enterGenericconstructor(Java17Parser.GenericconstructorContext ctx);
	/**
	 * Exit a parse tree produced by the {@code genericconstructor}
	 * labeled alternative in {@link Java17Parser#constructor}.
	 * @param ctx the parse tree
	 */
	void exitGenericconstructor(Java17Parser.GenericconstructorContext ctx);
	/**
	 * Enter a parse tree produced by the {@code constructordecl}
	 * labeled alternative in {@link Java17Parser#constructor}.
	 * @param ctx the parse tree
	 */
	void enterConstructordecl(Java17Parser.ConstructordeclContext ctx);
	/**
	 * Exit a parse tree produced by the {@code constructordecl}
	 * labeled alternative in {@link Java17Parser#constructor}.
	 * @param ctx the parse tree
	 */
	void exitConstructordecl(Java17Parser.ConstructordeclContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#genericConstructorDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterGenericConstructorDeclaration(Java17Parser.GenericConstructorDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#genericConstructorDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitGenericConstructorDeclaration(Java17Parser.GenericConstructorDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#constructorDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterConstructorDeclaration(Java17Parser.ConstructorDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#constructorDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitConstructorDeclaration(Java17Parser.ConstructorDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#fieldDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterFieldDeclaration(Java17Parser.FieldDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#fieldDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitFieldDeclaration(Java17Parser.FieldDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by the {@code interfacemember}
	 * labeled alternative in {@link Java17Parser#interfaceBodyDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterInterfacemember(Java17Parser.InterfacememberContext ctx);
	/**
	 * Exit a parse tree produced by the {@code interfacemember}
	 * labeled alternative in {@link Java17Parser#interfaceBodyDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitInterfacemember(Java17Parser.InterfacememberContext ctx);
	/**
	 * Enter a parse tree produced by the {@code emptyinterface}
	 * labeled alternative in {@link Java17Parser#interfaceBodyDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterEmptyinterface(Java17Parser.EmptyinterfaceContext ctx);
	/**
	 * Exit a parse tree produced by the {@code emptyinterface}
	 * labeled alternative in {@link Java17Parser#interfaceBodyDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitEmptyinterface(Java17Parser.EmptyinterfaceContext ctx);
	/**
	 * Enter a parse tree produced by the {@code interfaceconst}
	 * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterInterfaceconst(Java17Parser.InterfaceconstContext ctx);
	/**
	 * Exit a parse tree produced by the {@code interfaceconst}
	 * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitInterfaceconst(Java17Parser.InterfaceconstContext ctx);
	/**
	 * Enter a parse tree produced by the {@code interfacemethod}
	 * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterInterfacemethod(Java17Parser.InterfacemethodContext ctx);
	/**
	 * Exit a parse tree produced by the {@code interfacemethod}
	 * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitInterfacemethod(Java17Parser.InterfacemethodContext ctx);
	/**
	 * Enter a parse tree produced by the {@code genericinterfacemethod}
	 * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterGenericinterfacemethod(Java17Parser.GenericinterfacemethodContext ctx);
	/**
	 * Exit a parse tree produced by the {@code genericinterfacemethod}
	 * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitGenericinterfacemethod(Java17Parser.GenericinterfacemethodContext ctx);
	/**
	 * Enter a parse tree produced by the {@code subclassorinterface}
	 * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterSubclassorinterface(Java17Parser.SubclassorinterfaceContext ctx);
	/**
	 * Exit a parse tree produced by the {@code subclassorinterface}
	 * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitSubclassorinterface(Java17Parser.SubclassorinterfaceContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#constDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterConstDeclaration(Java17Parser.ConstDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#constDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitConstDeclaration(Java17Parser.ConstDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#constantDeclarator}.
	 * @param ctx the parse tree
	 */
	void enterConstantDeclarator(Java17Parser.ConstantDeclaratorContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#constantDeclarator}.
	 * @param ctx the parse tree
	 */
	void exitConstantDeclarator(Java17Parser.ConstantDeclaratorContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#interfaceMethodDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterInterfaceMethodDeclaration(Java17Parser.InterfaceMethodDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#interfaceMethodDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitInterfaceMethodDeclaration(Java17Parser.InterfaceMethodDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#interfaceMethodModifier}.
	 * @param ctx the parse tree
	 */
	void enterInterfaceMethodModifier(Java17Parser.InterfaceMethodModifierContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#interfaceMethodModifier}.
	 * @param ctx the parse tree
	 */
	void exitInterfaceMethodModifier(Java17Parser.InterfaceMethodModifierContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#genericInterfaceMethodDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterGenericInterfaceMethodDeclaration(Java17Parser.GenericInterfaceMethodDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#genericInterfaceMethodDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitGenericInterfaceMethodDeclaration(Java17Parser.GenericInterfaceMethodDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#interfaceCommonBodyDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterInterfaceCommonBodyDeclaration(Java17Parser.InterfaceCommonBodyDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#interfaceCommonBodyDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitInterfaceCommonBodyDeclaration(Java17Parser.InterfaceCommonBodyDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#variableDeclarators}.
	 * @param ctx the parse tree
	 */
	void enterVariableDeclarators(Java17Parser.VariableDeclaratorsContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#variableDeclarators}.
	 * @param ctx the parse tree
	 */
	void exitVariableDeclarators(Java17Parser.VariableDeclaratorsContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#variableDeclarator}.
	 * @param ctx the parse tree
	 */
	void enterVariableDeclarator(Java17Parser.VariableDeclaratorContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#variableDeclarator}.
	 * @param ctx the parse tree
	 */
	void exitVariableDeclarator(Java17Parser.VariableDeclaratorContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#variableDeclaratorId}.
	 * @param ctx the parse tree
	 */
	void enterVariableDeclaratorId(Java17Parser.VariableDeclaratorIdContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#variableDeclaratorId}.
	 * @param ctx the parse tree
	 */
	void exitVariableDeclaratorId(Java17Parser.VariableDeclaratorIdContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#variableInitializer}.
	 * @param ctx the parse tree
	 */
	void enterVariableInitializer(Java17Parser.VariableInitializerContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#variableInitializer}.
	 * @param ctx the parse tree
	 */
	void exitVariableInitializer(Java17Parser.VariableInitializerContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#arrayInitializer}.
	 * @param ctx the parse tree
	 */
	void enterArrayInitializer(Java17Parser.ArrayInitializerContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#arrayInitializer}.
	 * @param ctx the parse tree
	 */
	void exitArrayInitializer(Java17Parser.ArrayInitializerContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#classOrInterfaceType}.
	 * @param ctx the parse tree
	 */
	void enterClassOrInterfaceType(Java17Parser.ClassOrInterfaceTypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#classOrInterfaceType}.
	 * @param ctx the parse tree
	 */
	void exitClassOrInterfaceType(Java17Parser.ClassOrInterfaceTypeContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#typeArgument}.
	 * @param ctx the parse tree
	 */
	void enterTypeArgument(Java17Parser.TypeArgumentContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#typeArgument}.
	 * @param ctx the parse tree
	 */
	void exitTypeArgument(Java17Parser.TypeArgumentContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#wildcardType}.
	 * @param ctx the parse tree
	 */
	void enterWildcardType(Java17Parser.WildcardTypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#wildcardType}.
	 * @param ctx the parse tree
	 */
	void exitWildcardType(Java17Parser.WildcardTypeContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#extendsWildcardType}.
	 * @param ctx the parse tree
	 */
	void enterExtendsWildcardType(Java17Parser.ExtendsWildcardTypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#extendsWildcardType}.
	 * @param ctx the parse tree
	 */
	void exitExtendsWildcardType(Java17Parser.ExtendsWildcardTypeContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#superWildcardType}.
	 * @param ctx the parse tree
	 */
	void enterSuperWildcardType(Java17Parser.SuperWildcardTypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#superWildcardType}.
	 * @param ctx the parse tree
	 */
	void exitSuperWildcardType(Java17Parser.SuperWildcardTypeContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#qualifiedNameList}.
	 * @param ctx the parse tree
	 */
	void enterQualifiedNameList(Java17Parser.QualifiedNameListContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#qualifiedNameList}.
	 * @param ctx the parse tree
	 */
	void exitQualifiedNameList(Java17Parser.QualifiedNameListContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#exceptionList}.
	 * @param ctx the parse tree
	 */
	void enterExceptionList(Java17Parser.ExceptionListContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#exceptionList}.
	 * @param ctx the parse tree
	 */
	void exitExceptionList(Java17Parser.ExceptionListContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#formalParameters}.
	 * @param ctx the parse tree
	 */
	void enterFormalParameters(Java17Parser.FormalParametersContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#formalParameters}.
	 * @param ctx the parse tree
	 */
	void exitFormalParameters(Java17Parser.FormalParametersContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#receiverParameter}.
	 * @param ctx the parse tree
	 */
	void enterReceiverParameter(Java17Parser.ReceiverParameterContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#receiverParameter}.
	 * @param ctx the parse tree
	 */
	void exitReceiverParameter(Java17Parser.ReceiverParameterContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#formalParameterList}.
	 * @param ctx the parse tree
	 */
	void enterFormalParameterList(Java17Parser.FormalParameterListContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#formalParameterList}.
	 * @param ctx the parse tree
	 */
	void exitFormalParameterList(Java17Parser.FormalParameterListContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#formalParameter}.
	 * @param ctx the parse tree
	 */
	void enterFormalParameter(Java17Parser.FormalParameterContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#formalParameter}.
	 * @param ctx the parse tree
	 */
	void exitFormalParameter(Java17Parser.FormalParameterContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#lastFormalParameter}.
	 * @param ctx the parse tree
	 */
	void enterLastFormalParameter(Java17Parser.LastFormalParameterContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#lastFormalParameter}.
	 * @param ctx the parse tree
	 */
	void exitLastFormalParameter(Java17Parser.LastFormalParameterContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#lambdaLVTIList}.
	 * @param ctx the parse tree
	 */
	void enterLambdaLVTIList(Java17Parser.LambdaLVTIListContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#lambdaLVTIList}.
	 * @param ctx the parse tree
	 */
	void exitLambdaLVTIList(Java17Parser.LambdaLVTIListContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#lambdaLVTIParameter}.
	 * @param ctx the parse tree
	 */
	void enterLambdaLVTIParameter(Java17Parser.LambdaLVTIParameterContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#lambdaLVTIParameter}.
	 * @param ctx the parse tree
	 */
	void exitLambdaLVTIParameter(Java17Parser.LambdaLVTIParameterContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#qualifiedName}.
	 * @param ctx the parse tree
	 */
	void enterQualifiedName(Java17Parser.QualifiedNameContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#qualifiedName}.
	 * @param ctx the parse tree
	 */
	void exitQualifiedName(Java17Parser.QualifiedNameContext ctx);
	/**
	 * Enter a parse tree produced by the {@code intLiteral}
	 * labeled alternative in {@link Java17Parser#literal}.
	 * @param ctx the parse tree
	 */
	void enterIntLiteral(Java17Parser.IntLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code intLiteral}
	 * labeled alternative in {@link Java17Parser#literal}.
	 * @param ctx the parse tree
	 */
	void exitIntLiteral(Java17Parser.IntLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code fltLiteral}
	 * labeled alternative in {@link Java17Parser#literal}.
	 * @param ctx the parse tree
	 */
	void enterFltLiteral(Java17Parser.FltLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code fltLiteral}
	 * labeled alternative in {@link Java17Parser#literal}.
	 * @param ctx the parse tree
	 */
	void exitFltLiteral(Java17Parser.FltLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code charLiteral}
	 * labeled alternative in {@link Java17Parser#literal}.
	 * @param ctx the parse tree
	 */
	void enterCharLiteral(Java17Parser.CharLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code charLiteral}
	 * labeled alternative in {@link Java17Parser#literal}.
	 * @param ctx the parse tree
	 */
	void exitCharLiteral(Java17Parser.CharLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code stringLiteral}
	 * labeled alternative in {@link Java17Parser#literal}.
	 * @param ctx the parse tree
	 */
	void enterStringLiteral(Java17Parser.StringLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code stringLiteral}
	 * labeled alternative in {@link Java17Parser#literal}.
	 * @param ctx the parse tree
	 */
	void exitStringLiteral(Java17Parser.StringLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code boolLiteral}
	 * labeled alternative in {@link Java17Parser#literal}.
	 * @param ctx the parse tree
	 */
	void enterBoolLiteral(Java17Parser.BoolLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code boolLiteral}
	 * labeled alternative in {@link Java17Parser#literal}.
	 * @param ctx the parse tree
	 */
	void exitBoolLiteral(Java17Parser.BoolLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code nullLiteral}
	 * labeled alternative in {@link Java17Parser#literal}.
	 * @param ctx the parse tree
	 */
	void enterNullLiteral(Java17Parser.NullLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code nullLiteral}
	 * labeled alternative in {@link Java17Parser#literal}.
	 * @param ctx the parse tree
	 */
	void exitNullLiteral(Java17Parser.NullLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code textBlock}
	 * labeled alternative in {@link Java17Parser#literal}.
	 * @param ctx the parse tree
	 */
	void enterTextBlock(Java17Parser.TextBlockContext ctx);
	/**
	 * Exit a parse tree produced by the {@code textBlock}
	 * labeled alternative in {@link Java17Parser#literal}.
	 * @param ctx the parse tree
	 */
	void exitTextBlock(Java17Parser.TextBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#integerLiteral}.
	 * @param ctx the parse tree
	 */
	void enterIntegerLiteral(Java17Parser.IntegerLiteralContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#integerLiteral}.
	 * @param ctx the parse tree
	 */
	void exitIntegerLiteral(Java17Parser.IntegerLiteralContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#floatLiteral}.
	 * @param ctx the parse tree
	 */
	void enterFloatLiteral(Java17Parser.FloatLiteralContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#floatLiteral}.
	 * @param ctx the parse tree
	 */
	void exitFloatLiteral(Java17Parser.FloatLiteralContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#altAnnotationQualifiedName}.
	 * @param ctx the parse tree
	 */
	void enterAltAnnotationQualifiedName(Java17Parser.AltAnnotationQualifiedNameContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#altAnnotationQualifiedName}.
	 * @param ctx the parse tree
	 */
	void exitAltAnnotationQualifiedName(Java17Parser.AltAnnotationQualifiedNameContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#annotation}.
	 * @param ctx the parse tree
	 */
	void enterAnnotation(Java17Parser.AnnotationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#annotation}.
	 * @param ctx the parse tree
	 */
	void exitAnnotation(Java17Parser.AnnotationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#elementValuePairs}.
	 * @param ctx the parse tree
	 */
	void enterElementValuePairs(Java17Parser.ElementValuePairsContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#elementValuePairs}.
	 * @param ctx the parse tree
	 */
	void exitElementValuePairs(Java17Parser.ElementValuePairsContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#elementValuePair}.
	 * @param ctx the parse tree
	 */
	void enterElementValuePair(Java17Parser.ElementValuePairContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#elementValuePair}.
	 * @param ctx the parse tree
	 */
	void exitElementValuePair(Java17Parser.ElementValuePairContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#elementValue}.
	 * @param ctx the parse tree
	 */
	void enterElementValue(Java17Parser.ElementValueContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#elementValue}.
	 * @param ctx the parse tree
	 */
	void exitElementValue(Java17Parser.ElementValueContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#elementValueArrayInitializer}.
	 * @param ctx the parse tree
	 */
	void enterElementValueArrayInitializer(Java17Parser.ElementValueArrayInitializerContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#elementValueArrayInitializer}.
	 * @param ctx the parse tree
	 */
	void exitElementValueArrayInitializer(Java17Parser.ElementValueArrayInitializerContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#annotationTypeDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterAnnotationTypeDeclaration(Java17Parser.AnnotationTypeDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#annotationTypeDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitAnnotationTypeDeclaration(Java17Parser.AnnotationTypeDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#annotationTypeBody}.
	 * @param ctx the parse tree
	 */
	void enterAnnotationTypeBody(Java17Parser.AnnotationTypeBodyContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#annotationTypeBody}.
	 * @param ctx the parse tree
	 */
	void exitAnnotationTypeBody(Java17Parser.AnnotationTypeBodyContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#annotationTypeElementDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterAnnotationTypeElementDeclaration(Java17Parser.AnnotationTypeElementDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#annotationTypeElementDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitAnnotationTypeElementDeclaration(Java17Parser.AnnotationTypeElementDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#annotationTypeElementRest}.
	 * @param ctx the parse tree
	 */
	void enterAnnotationTypeElementRest(Java17Parser.AnnotationTypeElementRestContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#annotationTypeElementRest}.
	 * @param ctx the parse tree
	 */
	void exitAnnotationTypeElementRest(Java17Parser.AnnotationTypeElementRestContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#annotationMethodOrConstantRest}.
	 * @param ctx the parse tree
	 */
	void enterAnnotationMethodOrConstantRest(Java17Parser.AnnotationMethodOrConstantRestContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#annotationMethodOrConstantRest}.
	 * @param ctx the parse tree
	 */
	void exitAnnotationMethodOrConstantRest(Java17Parser.AnnotationMethodOrConstantRestContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#annotationMethodRest}.
	 * @param ctx the parse tree
	 */
	void enterAnnotationMethodRest(Java17Parser.AnnotationMethodRestContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#annotationMethodRest}.
	 * @param ctx the parse tree
	 */
	void exitAnnotationMethodRest(Java17Parser.AnnotationMethodRestContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#annotationConstantRest}.
	 * @param ctx the parse tree
	 */
	void enterAnnotationConstantRest(Java17Parser.AnnotationConstantRestContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#annotationConstantRest}.
	 * @param ctx the parse tree
	 */
	void exitAnnotationConstantRest(Java17Parser.AnnotationConstantRestContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#defaultValue}.
	 * @param ctx the parse tree
	 */
	void enterDefaultValue(Java17Parser.DefaultValueContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#defaultValue}.
	 * @param ctx the parse tree
	 */
	void exitDefaultValue(Java17Parser.DefaultValueContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#moduleDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterModuleDeclaration(Java17Parser.ModuleDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#moduleDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitModuleDeclaration(Java17Parser.ModuleDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#moduleBody}.
	 * @param ctx the parse tree
	 */
	void enterModuleBody(Java17Parser.ModuleBodyContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#moduleBody}.
	 * @param ctx the parse tree
	 */
	void exitModuleBody(Java17Parser.ModuleBodyContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#moduleDirective}.
	 * @param ctx the parse tree
	 */
	void enterModuleDirective(Java17Parser.ModuleDirectiveContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#moduleDirective}.
	 * @param ctx the parse tree
	 */
	void exitModuleDirective(Java17Parser.ModuleDirectiveContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#requiresModifier}.
	 * @param ctx the parse tree
	 */
	void enterRequiresModifier(Java17Parser.RequiresModifierContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#requiresModifier}.
	 * @param ctx the parse tree
	 */
	void exitRequiresModifier(Java17Parser.RequiresModifierContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#recordDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterRecordDeclaration(Java17Parser.RecordDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#recordDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitRecordDeclaration(Java17Parser.RecordDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#recordHeader}.
	 * @param ctx the parse tree
	 */
	void enterRecordHeader(Java17Parser.RecordHeaderContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#recordHeader}.
	 * @param ctx the parse tree
	 */
	void exitRecordHeader(Java17Parser.RecordHeaderContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#recordComponentList}.
	 * @param ctx the parse tree
	 */
	void enterRecordComponentList(Java17Parser.RecordComponentListContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#recordComponentList}.
	 * @param ctx the parse tree
	 */
	void exitRecordComponentList(Java17Parser.RecordComponentListContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#recordComponent}.
	 * @param ctx the parse tree
	 */
	void enterRecordComponent(Java17Parser.RecordComponentContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#recordComponent}.
	 * @param ctx the parse tree
	 */
	void exitRecordComponent(Java17Parser.RecordComponentContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#recordBody}.
	 * @param ctx the parse tree
	 */
	void enterRecordBody(Java17Parser.RecordBodyContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#recordBody}.
	 * @param ctx the parse tree
	 */
	void exitRecordBody(Java17Parser.RecordBodyContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#block}.
	 * @param ctx the parse tree
	 */
	void enterBlock(Java17Parser.BlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#block}.
	 * @param ctx the parse tree
	 */
	void exitBlock(Java17Parser.BlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#blockStatement}.
	 * @param ctx the parse tree
	 */
	void enterBlockStatement(Java17Parser.BlockStatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#blockStatement}.
	 * @param ctx the parse tree
	 */
	void exitBlockStatement(Java17Parser.BlockStatementContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#localVariableDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterLocalVariableDeclaration(Java17Parser.LocalVariableDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#localVariableDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitLocalVariableDeclaration(Java17Parser.LocalVariableDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#identifier}.
	 * @param ctx the parse tree
	 */
	void enterIdentifier(Java17Parser.IdentifierContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#identifier}.
	 * @param ctx the parse tree
	 */
	void exitIdentifier(Java17Parser.IdentifierContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#typeIdentifier}.
	 * @param ctx the parse tree
	 */
	void enterTypeIdentifier(Java17Parser.TypeIdentifierContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#typeIdentifier}.
	 * @param ctx the parse tree
	 */
	void exitTypeIdentifier(Java17Parser.TypeIdentifierContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#localTypeDeclaration}.
	 * @param ctx the parse tree
	 */
	void enterLocalTypeDeclaration(Java17Parser.LocalTypeDeclarationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#localTypeDeclaration}.
	 * @param ctx the parse tree
	 */
	void exitLocalTypeDeclaration(Java17Parser.LocalTypeDeclarationContext ctx);
	/**
	 * Enter a parse tree produced by the {@code blockstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterBlockstmt(Java17Parser.BlockstmtContext ctx);
	/**
	 * Exit a parse tree produced by the {@code blockstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitBlockstmt(Java17Parser.BlockstmtContext ctx);
	/**
	 * Enter a parse tree produced by the {@code assertstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterAssertstmt(Java17Parser.AssertstmtContext ctx);
	/**
	 * Exit a parse tree produced by the {@code assertstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitAssertstmt(Java17Parser.AssertstmtContext ctx);
	/**
	 * Enter a parse tree produced by the {@code conditionalstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterConditionalstmt(Java17Parser.ConditionalstmtContext ctx);
	/**
	 * Exit a parse tree produced by the {@code conditionalstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitConditionalstmt(Java17Parser.ConditionalstmtContext ctx);
	/**
	 * Enter a parse tree produced by the {@code forloop}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterForloop(Java17Parser.ForloopContext ctx);
	/**
	 * Exit a parse tree produced by the {@code forloop}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitForloop(Java17Parser.ForloopContext ctx);
	/**
	 * Enter a parse tree produced by the {@code whileloop}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterWhileloop(Java17Parser.WhileloopContext ctx);
	/**
	 * Exit a parse tree produced by the {@code whileloop}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitWhileloop(Java17Parser.WhileloopContext ctx);
	/**
	 * Enter a parse tree produced by the {@code dowhileloop}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterDowhileloop(Java17Parser.DowhileloopContext ctx);
	/**
	 * Exit a parse tree produced by the {@code dowhileloop}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitDowhileloop(Java17Parser.DowhileloopContext ctx);
	/**
	 * Enter a parse tree produced by the {@code trycatchblock}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterTrycatchblock(Java17Parser.TrycatchblockContext ctx);
	/**
	 * Exit a parse tree produced by the {@code trycatchblock}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitTrycatchblock(Java17Parser.TrycatchblockContext ctx);
	/**
	 * Enter a parse tree produced by the {@code trycatchresource}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterTrycatchresource(Java17Parser.TrycatchresourceContext ctx);
	/**
	 * Exit a parse tree produced by the {@code trycatchresource}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitTrycatchresource(Java17Parser.TrycatchresourceContext ctx);
	/**
	 * Enter a parse tree produced by the {@code switchstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterSwitchstmt(Java17Parser.SwitchstmtContext ctx);
	/**
	 * Exit a parse tree produced by the {@code switchstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitSwitchstmt(Java17Parser.SwitchstmtContext ctx);
	/**
	 * Enter a parse tree produced by the {@code synchronizedstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterSynchronizedstmt(Java17Parser.SynchronizedstmtContext ctx);
	/**
	 * Exit a parse tree produced by the {@code synchronizedstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitSynchronizedstmt(Java17Parser.SynchronizedstmtContext ctx);
	/**
	 * Enter a parse tree produced by the {@code returnstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterReturnstmt(Java17Parser.ReturnstmtContext ctx);
	/**
	 * Exit a parse tree produced by the {@code returnstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitReturnstmt(Java17Parser.ReturnstmtContext ctx);
	/**
	 * Enter a parse tree produced by the {@code throwstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterThrowstmt(Java17Parser.ThrowstmtContext ctx);
	/**
	 * Exit a parse tree produced by the {@code throwstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitThrowstmt(Java17Parser.ThrowstmtContext ctx);
	/**
	 * Enter a parse tree produced by the {@code breakstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterBreakstmt(Java17Parser.BreakstmtContext ctx);
	/**
	 * Exit a parse tree produced by the {@code breakstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitBreakstmt(Java17Parser.BreakstmtContext ctx);
	/**
	 * Enter a parse tree produced by the {@code continuestmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterContinuestmt(Java17Parser.ContinuestmtContext ctx);
	/**
	 * Exit a parse tree produced by the {@code continuestmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitContinuestmt(Java17Parser.ContinuestmtContext ctx);
	/**
	 * Enter a parse tree produced by the {@code yieldstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterYieldstmt(Java17Parser.YieldstmtContext ctx);
	/**
	 * Exit a parse tree produced by the {@code yieldstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitYieldstmt(Java17Parser.YieldstmtContext ctx);
	/**
	 * Enter a parse tree produced by the {@code semistmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterSemistmt(Java17Parser.SemistmtContext ctx);
	/**
	 * Exit a parse tree produced by the {@code semistmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitSemistmt(Java17Parser.SemistmtContext ctx);
	/**
	 * Enter a parse tree produced by the {@code stmtexpression}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterStmtexpression(Java17Parser.StmtexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code stmtexpression}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitStmtexpression(Java17Parser.StmtexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code labeledstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void enterLabeledstmt(Java17Parser.LabeledstmtContext ctx);
	/**
	 * Exit a parse tree produced by the {@code labeledstmt}
	 * labeled alternative in {@link Java17Parser#statement}.
	 * @param ctx the parse tree
	 */
	void exitLabeledstmt(Java17Parser.LabeledstmtContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#catchClause}.
	 * @param ctx the parse tree
	 */
	void enterCatchClause(Java17Parser.CatchClauseContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#catchClause}.
	 * @param ctx the parse tree
	 */
	void exitCatchClause(Java17Parser.CatchClauseContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#catchType}.
	 * @param ctx the parse tree
	 */
	void enterCatchType(Java17Parser.CatchTypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#catchType}.
	 * @param ctx the parse tree
	 */
	void exitCatchType(Java17Parser.CatchTypeContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#finallyBlock}.
	 * @param ctx the parse tree
	 */
	void enterFinallyBlock(Java17Parser.FinallyBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#finallyBlock}.
	 * @param ctx the parse tree
	 */
	void exitFinallyBlock(Java17Parser.FinallyBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#resourceSpecification}.
	 * @param ctx the parse tree
	 */
	void enterResourceSpecification(Java17Parser.ResourceSpecificationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#resourceSpecification}.
	 * @param ctx the parse tree
	 */
	void exitResourceSpecification(Java17Parser.ResourceSpecificationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#resources}.
	 * @param ctx the parse tree
	 */
	void enterResources(Java17Parser.ResourcesContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#resources}.
	 * @param ctx the parse tree
	 */
	void exitResources(Java17Parser.ResourcesContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#resource}.
	 * @param ctx the parse tree
	 */
	void enterResource(Java17Parser.ResourceContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#resource}.
	 * @param ctx the parse tree
	 */
	void exitResource(Java17Parser.ResourceContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#switchBlockStatementGroup}.
	 * @param ctx the parse tree
	 */
	void enterSwitchBlockStatementGroup(Java17Parser.SwitchBlockStatementGroupContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#switchBlockStatementGroup}.
	 * @param ctx the parse tree
	 */
	void exitSwitchBlockStatementGroup(Java17Parser.SwitchBlockStatementGroupContext ctx);
	/**
	 * Enter a parse tree produced by the {@code switchLabelConst}
	 * labeled alternative in {@link Java17Parser#switchLabel}.
	 * @param ctx the parse tree
	 */
	void enterSwitchLabelConst(Java17Parser.SwitchLabelConstContext ctx);
	/**
	 * Exit a parse tree produced by the {@code switchLabelConst}
	 * labeled alternative in {@link Java17Parser#switchLabel}.
	 * @param ctx the parse tree
	 */
	void exitSwitchLabelConst(Java17Parser.SwitchLabelConstContext ctx);
	/**
	 * Enter a parse tree produced by the {@code switchLabelEnum}
	 * labeled alternative in {@link Java17Parser#switchLabel}.
	 * @param ctx the parse tree
	 */
	void enterSwitchLabelEnum(Java17Parser.SwitchLabelEnumContext ctx);
	/**
	 * Exit a parse tree produced by the {@code switchLabelEnum}
	 * labeled alternative in {@link Java17Parser#switchLabel}.
	 * @param ctx the parse tree
	 */
	void exitSwitchLabelEnum(Java17Parser.SwitchLabelEnumContext ctx);
	/**
	 * Enter a parse tree produced by the {@code switchLabelPattern}
	 * labeled alternative in {@link Java17Parser#switchLabel}.
	 * @param ctx the parse tree
	 */
	void enterSwitchLabelPattern(Java17Parser.SwitchLabelPatternContext ctx);
	/**
	 * Exit a parse tree produced by the {@code switchLabelPattern}
	 * labeled alternative in {@link Java17Parser#switchLabel}.
	 * @param ctx the parse tree
	 */
	void exitSwitchLabelPattern(Java17Parser.SwitchLabelPatternContext ctx);
	/**
	 * Enter a parse tree produced by the {@code switchLabelDefault}
	 * labeled alternative in {@link Java17Parser#switchLabel}.
	 * @param ctx the parse tree
	 */
	void enterSwitchLabelDefault(Java17Parser.SwitchLabelDefaultContext ctx);
	/**
	 * Exit a parse tree produced by the {@code switchLabelDefault}
	 * labeled alternative in {@link Java17Parser#switchLabel}.
	 * @param ctx the parse tree
	 */
	void exitSwitchLabelDefault(Java17Parser.SwitchLabelDefaultContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#forControl}.
	 * @param ctx the parse tree
	 */
	void enterForControl(Java17Parser.ForControlContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#forControl}.
	 * @param ctx the parse tree
	 */
	void exitForControl(Java17Parser.ForControlContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#forInit}.
	 * @param ctx the parse tree
	 */
	void enterForInit(Java17Parser.ForInitContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#forInit}.
	 * @param ctx the parse tree
	 */
	void exitForInit(Java17Parser.ForInitContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#enhancedForControl}.
	 * @param ctx the parse tree
	 */
	void enterEnhancedForControl(Java17Parser.EnhancedForControlContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#enhancedForControl}.
	 * @param ctx the parse tree
	 */
	void exitEnhancedForControl(Java17Parser.EnhancedForControlContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#parExpression}.
	 * @param ctx the parse tree
	 */
	void enterParExpression(Java17Parser.ParExpressionContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#parExpression}.
	 * @param ctx the parse tree
	 */
	void exitParExpression(Java17Parser.ParExpressionContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#expressionList}.
	 * @param ctx the parse tree
	 */
	void enterExpressionList(Java17Parser.ExpressionListContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#expressionList}.
	 * @param ctx the parse tree
	 */
	void exitExpressionList(Java17Parser.ExpressionListContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#methodCall}.
	 * @param ctx the parse tree
	 */
	void enterMethodCall(Java17Parser.MethodCallContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#methodCall}.
	 * @param ctx the parse tree
	 */
	void exitMethodCall(Java17Parser.MethodCallContext ctx);
	/**
	 * Enter a parse tree produced by the {@code castexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterCastexpression(Java17Parser.CastexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code castexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitCastexpression(Java17Parser.CastexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code arrayaccessexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterArrayaccessexpression(Java17Parser.ArrayaccessexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code arrayaccessexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitArrayaccessexpression(Java17Parser.ArrayaccessexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code newinstanceexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterNewinstanceexpression(Java17Parser.NewinstanceexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code newinstanceexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitNewinstanceexpression(Java17Parser.NewinstanceexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code bitwiseandexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterBitwiseandexpression(Java17Parser.BitwiseandexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code bitwiseandexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitBitwiseandexpression(Java17Parser.BitwiseandexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code primaryExpression2}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterPrimaryExpression2(Java17Parser.PrimaryExpression2Context ctx);
	/**
	 * Exit a parse tree produced by the {@code primaryExpression2}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitPrimaryExpression2(Java17Parser.PrimaryExpression2Context ctx);
	/**
	 * Enter a parse tree produced by the {@code methodcallexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterMethodcallexpression(Java17Parser.MethodcallexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code methodcallexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitMethodcallexpression(Java17Parser.MethodcallexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code conditionalassignexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterConditionalassignexpression(Java17Parser.ConditionalassignexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code conditionalassignexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitConditionalassignexpression(Java17Parser.ConditionalassignexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code methodorcreatorreferenceexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterMethodorcreatorreferenceexpression(Java17Parser.MethodorcreatorreferenceexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code methodorcreatorreferenceexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitMethodorcreatorreferenceexpression(Java17Parser.MethodorcreatorreferenceexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code shiftexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterShiftexpression(Java17Parser.ShiftexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code shiftexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitShiftexpression(Java17Parser.ShiftexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code switchExpression2}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterSwitchExpression2(Java17Parser.SwitchExpression2Context ctx);
	/**
	 * Exit a parse tree produced by the {@code switchExpression2}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitSwitchExpression2(Java17Parser.SwitchExpression2Context ctx);
	/**
	 * Enter a parse tree produced by the {@code mathaddsubexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterMathaddsubexpression(Java17Parser.MathaddsubexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code mathaddsubexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitMathaddsubexpression(Java17Parser.MathaddsubexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code dottedexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterDottedexpression(Java17Parser.DottedexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code dottedexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitDottedexpression(Java17Parser.DottedexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code orexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterOrexpression(Java17Parser.OrexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code orexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitOrexpression(Java17Parser.OrexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code andexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterAndexpression(Java17Parser.AndexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code andexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitAndexpression(Java17Parser.AndexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code assignexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterAssignexpression(Java17Parser.AssignexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code assignexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitAssignexpression(Java17Parser.AssignexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code mathmuldivmodexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterMathmuldivmodexpression(Java17Parser.MathmuldivmodexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code mathmuldivmodexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitMathmuldivmodexpression(Java17Parser.MathmuldivmodexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code equalityexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterEqualityexpression(Java17Parser.EqualityexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code equalityexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitEqualityexpression(Java17Parser.EqualityexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code postfixexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterPostfixexpression(Java17Parser.PostfixexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code postfixexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitPostfixexpression(Java17Parser.PostfixexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code prefixexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterPrefixexpression(Java17Parser.PrefixexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code prefixexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitPrefixexpression(Java17Parser.PrefixexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code bitwiseorexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterBitwiseorexpression(Java17Parser.BitwiseorexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code bitwiseorexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitBitwiseorexpression(Java17Parser.BitwiseorexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code creatorreferenceexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterCreatorreferenceexpression(Java17Parser.CreatorreferenceexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code creatorreferenceexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitCreatorreferenceexpression(Java17Parser.CreatorreferenceexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code lambdaExpression2}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterLambdaExpression2(Java17Parser.LambdaExpression2Context ctx);
	/**
	 * Exit a parse tree produced by the {@code lambdaExpression2}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitLambdaExpression2(Java17Parser.LambdaExpression2Context ctx);
	/**
	 * Enter a parse tree produced by the {@code bitwisexorexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterBitwisexorexpression(Java17Parser.BitwisexorexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code bitwisexorexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitBitwisexorexpression(Java17Parser.BitwisexorexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code relationalexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterRelationalexpression(Java17Parser.RelationalexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code relationalexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitRelationalexpression(Java17Parser.RelationalexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code instanceofexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterInstanceofexpression(Java17Parser.InstanceofexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code instanceofexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitInstanceofexpression(Java17Parser.InstanceofexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code methodreferenceexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void enterMethodreferenceexpression(Java17Parser.MethodreferenceexpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code methodreferenceexpression}
	 * labeled alternative in {@link Java17Parser#expression}.
	 * @param ctx the parse tree
	 */
	void exitMethodreferenceexpression(Java17Parser.MethodreferenceexpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code pPattern}
	 * labeled alternative in {@link Java17Parser#pattern}.
	 * @param ctx the parse tree
	 */
	void enterPPattern(Java17Parser.PPatternContext ctx);
	/**
	 * Exit a parse tree produced by the {@code pPattern}
	 * labeled alternative in {@link Java17Parser#pattern}.
	 * @param ctx the parse tree
	 */
	void exitPPattern(Java17Parser.PPatternContext ctx);
	/**
	 * Enter a parse tree produced by the {@code gPattern}
	 * labeled alternative in {@link Java17Parser#pattern}.
	 * @param ctx the parse tree
	 */
	void enterGPattern(Java17Parser.GPatternContext ctx);
	/**
	 * Exit a parse tree produced by the {@code gPattern}
	 * labeled alternative in {@link Java17Parser#pattern}.
	 * @param ctx the parse tree
	 */
	void exitGPattern(Java17Parser.GPatternContext ctx);
	/**
	 * Enter a parse tree produced by the {@code tPattern}
	 * labeled alternative in {@link Java17Parser#primaryPattern}.
	 * @param ctx the parse tree
	 */
	void enterTPattern(Java17Parser.TPatternContext ctx);
	/**
	 * Exit a parse tree produced by the {@code tPattern}
	 * labeled alternative in {@link Java17Parser#primaryPattern}.
	 * @param ctx the parse tree
	 */
	void exitTPattern(Java17Parser.TPatternContext ctx);
	/**
	 * Enter a parse tree produced by the {@code rPattern}
	 * labeled alternative in {@link Java17Parser#primaryPattern}.
	 * @param ctx the parse tree
	 */
	void enterRPattern(Java17Parser.RPatternContext ctx);
	/**
	 * Exit a parse tree produced by the {@code rPattern}
	 * labeled alternative in {@link Java17Parser#primaryPattern}.
	 * @param ctx the parse tree
	 */
	void exitRPattern(Java17Parser.RPatternContext ctx);
	/**
	 * Enter a parse tree produced by the {@code enclosedPattern}
	 * labeled alternative in {@link Java17Parser#primaryPattern}.
	 * @param ctx the parse tree
	 */
	void enterEnclosedPattern(Java17Parser.EnclosedPatternContext ctx);
	/**
	 * Exit a parse tree produced by the {@code enclosedPattern}
	 * labeled alternative in {@link Java17Parser#primaryPattern}.
	 * @param ctx the parse tree
	 */
	void exitEnclosedPattern(Java17Parser.EnclosedPatternContext ctx);
	/**
	 * Enter a parse tree produced by the {@code lPattern}
	 * labeled alternative in {@link Java17Parser#primaryPattern}.
	 * @param ctx the parse tree
	 */
	void enterLPattern(Java17Parser.LPatternContext ctx);
	/**
	 * Exit a parse tree produced by the {@code lPattern}
	 * labeled alternative in {@link Java17Parser#primaryPattern}.
	 * @param ctx the parse tree
	 */
	void exitLPattern(Java17Parser.LPatternContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#recordPattern}.
	 * @param ctx the parse tree
	 */
	void enterRecordPattern(Java17Parser.RecordPatternContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#recordPattern}.
	 * @param ctx the parse tree
	 */
	void exitRecordPattern(Java17Parser.RecordPatternContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#typePattern}.
	 * @param ctx the parse tree
	 */
	void enterTypePattern(Java17Parser.TypePatternContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#typePattern}.
	 * @param ctx the parse tree
	 */
	void exitTypePattern(Java17Parser.TypePatternContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#recordStructurePattern}.
	 * @param ctx the parse tree
	 */
	void enterRecordStructurePattern(Java17Parser.RecordStructurePatternContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#recordStructurePattern}.
	 * @param ctx the parse tree
	 */
	void exitRecordStructurePattern(Java17Parser.RecordStructurePatternContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#recordComponentPatternElement}.
	 * @param ctx the parse tree
	 */
	void enterRecordComponentPatternElement(Java17Parser.RecordComponentPatternElementContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#recordComponentPatternElement}.
	 * @param ctx the parse tree
	 */
	void exitRecordComponentPatternElement(Java17Parser.RecordComponentPatternElementContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#recordComponentPatternList}.
	 * @param ctx the parse tree
	 */
	void enterRecordComponentPatternList(Java17Parser.RecordComponentPatternListContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#recordComponentPatternList}.
	 * @param ctx the parse tree
	 */
	void exitRecordComponentPatternList(Java17Parser.RecordComponentPatternListContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#lambdaExpression}.
	 * @param ctx the parse tree
	 */
	void enterLambdaExpression(Java17Parser.LambdaExpressionContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#lambdaExpression}.
	 * @param ctx the parse tree
	 */
	void exitLambdaExpression(Java17Parser.LambdaExpressionContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#lambdaParameters}.
	 * @param ctx the parse tree
	 */
	void enterLambdaParameters(Java17Parser.LambdaParametersContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#lambdaParameters}.
	 * @param ctx the parse tree
	 */
	void exitLambdaParameters(Java17Parser.LambdaParametersContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#lambdaBody}.
	 * @param ctx the parse tree
	 */
	void enterLambdaBody(Java17Parser.LambdaBodyContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#lambdaBody}.
	 * @param ctx the parse tree
	 */
	void exitLambdaBody(Java17Parser.LambdaBodyContext ctx);
	/**
	 * Enter a parse tree produced by the {@code primaryExpression}
	 * labeled alternative in {@link Java17Parser#primary}.
	 * @param ctx the parse tree
	 */
	void enterPrimaryExpression(Java17Parser.PrimaryExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code primaryExpression}
	 * labeled alternative in {@link Java17Parser#primary}.
	 * @param ctx the parse tree
	 */
	void exitPrimaryExpression(Java17Parser.PrimaryExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code primaryThis}
	 * labeled alternative in {@link Java17Parser#primary}.
	 * @param ctx the parse tree
	 */
	void enterPrimaryThis(Java17Parser.PrimaryThisContext ctx);
	/**
	 * Exit a parse tree produced by the {@code primaryThis}
	 * labeled alternative in {@link Java17Parser#primary}.
	 * @param ctx the parse tree
	 */
	void exitPrimaryThis(Java17Parser.PrimaryThisContext ctx);
	/**
	 * Enter a parse tree produced by the {@code primarySuper}
	 * labeled alternative in {@link Java17Parser#primary}.
	 * @param ctx the parse tree
	 */
	void enterPrimarySuper(Java17Parser.PrimarySuperContext ctx);
	/**
	 * Exit a parse tree produced by the {@code primarySuper}
	 * labeled alternative in {@link Java17Parser#primary}.
	 * @param ctx the parse tree
	 */
	void exitPrimarySuper(Java17Parser.PrimarySuperContext ctx);
	/**
	 * Enter a parse tree produced by the {@code primaryLiteral}
	 * labeled alternative in {@link Java17Parser#primary}.
	 * @param ctx the parse tree
	 */
	void enterPrimaryLiteral(Java17Parser.PrimaryLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code primaryLiteral}
	 * labeled alternative in {@link Java17Parser#primary}.
	 * @param ctx the parse tree
	 */
	void exitPrimaryLiteral(Java17Parser.PrimaryLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code primaryIdentifier}
	 * labeled alternative in {@link Java17Parser#primary}.
	 * @param ctx the parse tree
	 */
	void enterPrimaryIdentifier(Java17Parser.PrimaryIdentifierContext ctx);
	/**
	 * Exit a parse tree produced by the {@code primaryIdentifier}
	 * labeled alternative in {@link Java17Parser#primary}.
	 * @param ctx the parse tree
	 */
	void exitPrimaryIdentifier(Java17Parser.PrimaryIdentifierContext ctx);
	/**
	 * Enter a parse tree produced by the {@code primaryClassref}
	 * labeled alternative in {@link Java17Parser#primary}.
	 * @param ctx the parse tree
	 */
	void enterPrimaryClassref(Java17Parser.PrimaryClassrefContext ctx);
	/**
	 * Exit a parse tree produced by the {@code primaryClassref}
	 * labeled alternative in {@link Java17Parser#primary}.
	 * @param ctx the parse tree
	 */
	void exitPrimaryClassref(Java17Parser.PrimaryClassrefContext ctx);
	/**
	 * Enter a parse tree produced by the {@code primaryInvocation}
	 * labeled alternative in {@link Java17Parser#primary}.
	 * @param ctx the parse tree
	 */
	void enterPrimaryInvocation(Java17Parser.PrimaryInvocationContext ctx);
	/**
	 * Exit a parse tree produced by the {@code primaryInvocation}
	 * labeled alternative in {@link Java17Parser#primary}.
	 * @param ctx the parse tree
	 */
	void exitPrimaryInvocation(Java17Parser.PrimaryInvocationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#switchExpression}.
	 * @param ctx the parse tree
	 */
	void enterSwitchExpression(Java17Parser.SwitchExpressionContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#switchExpression}.
	 * @param ctx the parse tree
	 */
	void exitSwitchExpression(Java17Parser.SwitchExpressionContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#switchLabeledRule}.
	 * @param ctx the parse tree
	 */
	void enterSwitchLabeledRule(Java17Parser.SwitchLabeledRuleContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#switchLabeledRule}.
	 * @param ctx the parse tree
	 */
	void exitSwitchLabeledRule(Java17Parser.SwitchLabeledRuleContext ctx);
	/**
	 * Enter a parse tree produced by the {@code labeledRuleNull}
	 * labeled alternative in {@link Java17Parser#switchLabelCase}.
	 * @param ctx the parse tree
	 */
	void enterLabeledRuleNull(Java17Parser.LabeledRuleNullContext ctx);
	/**
	 * Exit a parse tree produced by the {@code labeledRuleNull}
	 * labeled alternative in {@link Java17Parser#switchLabelCase}.
	 * @param ctx the parse tree
	 */
	void exitLabeledRuleNull(Java17Parser.LabeledRuleNullContext ctx);
	/**
	 * Enter a parse tree produced by the {@code labeledRulePattern}
	 * labeled alternative in {@link Java17Parser#switchLabelCase}.
	 * @param ctx the parse tree
	 */
	void enterLabeledRulePattern(Java17Parser.LabeledRulePatternContext ctx);
	/**
	 * Exit a parse tree produced by the {@code labeledRulePattern}
	 * labeled alternative in {@link Java17Parser#switchLabelCase}.
	 * @param ctx the parse tree
	 */
	void exitLabeledRulePattern(Java17Parser.LabeledRulePatternContext ctx);
	/**
	 * Enter a parse tree produced by the {@code labeledRuleDefault}
	 * labeled alternative in {@link Java17Parser#switchLabelCase}.
	 * @param ctx the parse tree
	 */
	void enterLabeledRuleDefault(Java17Parser.LabeledRuleDefaultContext ctx);
	/**
	 * Exit a parse tree produced by the {@code labeledRuleDefault}
	 * labeled alternative in {@link Java17Parser#switchLabelCase}.
	 * @param ctx the parse tree
	 */
	void exitLabeledRuleDefault(Java17Parser.LabeledRuleDefaultContext ctx);
	/**
	 * Enter a parse tree produced by the {@code labeledRuleExprList}
	 * labeled alternative in {@link Java17Parser#switchLabelCase}.
	 * @param ctx the parse tree
	 */
	void enterLabeledRuleExprList(Java17Parser.LabeledRuleExprListContext ctx);
	/**
	 * Exit a parse tree produced by the {@code labeledRuleExprList}
	 * labeled alternative in {@link Java17Parser#switchLabelCase}.
	 * @param ctx the parse tree
	 */
	void exitLabeledRuleExprList(Java17Parser.LabeledRuleExprListContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#guardedPattern}.
	 * @param ctx the parse tree
	 */
	void enterGuardedPattern(Java17Parser.GuardedPatternContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#guardedPattern}.
	 * @param ctx the parse tree
	 */
	void exitGuardedPattern(Java17Parser.GuardedPatternContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#switchRuleOutcome}.
	 * @param ctx the parse tree
	 */
	void enterSwitchRuleOutcome(Java17Parser.SwitchRuleOutcomeContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#switchRuleOutcome}.
	 * @param ctx the parse tree
	 */
	void exitSwitchRuleOutcome(Java17Parser.SwitchRuleOutcomeContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#classType}.
	 * @param ctx the parse tree
	 */
	void enterClassType(Java17Parser.ClassTypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#classType}.
	 * @param ctx the parse tree
	 */
	void exitClassType(Java17Parser.ClassTypeContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#creator}.
	 * @param ctx the parse tree
	 */
	void enterCreator(Java17Parser.CreatorContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#creator}.
	 * @param ctx the parse tree
	 */
	void exitCreator(Java17Parser.CreatorContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#createdName}.
	 * @param ctx the parse tree
	 */
	void enterCreatedName(Java17Parser.CreatedNameContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#createdName}.
	 * @param ctx the parse tree
	 */
	void exitCreatedName(Java17Parser.CreatedNameContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#innerCreator}.
	 * @param ctx the parse tree
	 */
	void enterInnerCreator(Java17Parser.InnerCreatorContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#innerCreator}.
	 * @param ctx the parse tree
	 */
	void exitInnerCreator(Java17Parser.InnerCreatorContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#arrayCreatorRest}.
	 * @param ctx the parse tree
	 */
	void enterArrayCreatorRest(Java17Parser.ArrayCreatorRestContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#arrayCreatorRest}.
	 * @param ctx the parse tree
	 */
	void exitArrayCreatorRest(Java17Parser.ArrayCreatorRestContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#classCreatorRest}.
	 * @param ctx the parse tree
	 */
	void enterClassCreatorRest(Java17Parser.ClassCreatorRestContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#classCreatorRest}.
	 * @param ctx the parse tree
	 */
	void exitClassCreatorRest(Java17Parser.ClassCreatorRestContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#explicitGenericInvocation}.
	 * @param ctx the parse tree
	 */
	void enterExplicitGenericInvocation(Java17Parser.ExplicitGenericInvocationContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#explicitGenericInvocation}.
	 * @param ctx the parse tree
	 */
	void exitExplicitGenericInvocation(Java17Parser.ExplicitGenericInvocationContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#typeArgumentsOrDiamond}.
	 * @param ctx the parse tree
	 */
	void enterTypeArgumentsOrDiamond(Java17Parser.TypeArgumentsOrDiamondContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#typeArgumentsOrDiamond}.
	 * @param ctx the parse tree
	 */
	void exitTypeArgumentsOrDiamond(Java17Parser.TypeArgumentsOrDiamondContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#nonWildcardTypeArgumentsOrDiamond}.
	 * @param ctx the parse tree
	 */
	void enterNonWildcardTypeArgumentsOrDiamond(Java17Parser.NonWildcardTypeArgumentsOrDiamondContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#nonWildcardTypeArgumentsOrDiamond}.
	 * @param ctx the parse tree
	 */
	void exitNonWildcardTypeArgumentsOrDiamond(Java17Parser.NonWildcardTypeArgumentsOrDiamondContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#nonWildcardTypeArguments}.
	 * @param ctx the parse tree
	 */
	void enterNonWildcardTypeArguments(Java17Parser.NonWildcardTypeArgumentsContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#nonWildcardTypeArguments}.
	 * @param ctx the parse tree
	 */
	void exitNonWildcardTypeArguments(Java17Parser.NonWildcardTypeArgumentsContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#typeList}.
	 * @param ctx the parse tree
	 */
	void enterTypeList(Java17Parser.TypeListContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#typeList}.
	 * @param ctx the parse tree
	 */
	void exitTypeList(Java17Parser.TypeListContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#typeType}.
	 * @param ctx the parse tree
	 */
	void enterTypeType(Java17Parser.TypeTypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#typeType}.
	 * @param ctx the parse tree
	 */
	void exitTypeType(Java17Parser.TypeTypeContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#primitiveType}.
	 * @param ctx the parse tree
	 */
	void enterPrimitiveType(Java17Parser.PrimitiveTypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#primitiveType}.
	 * @param ctx the parse tree
	 */
	void exitPrimitiveType(Java17Parser.PrimitiveTypeContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#typeArguments}.
	 * @param ctx the parse tree
	 */
	void enterTypeArguments(Java17Parser.TypeArgumentsContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#typeArguments}.
	 * @param ctx the parse tree
	 */
	void exitTypeArguments(Java17Parser.TypeArgumentsContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#superSuffix}.
	 * @param ctx the parse tree
	 */
	void enterSuperSuffix(Java17Parser.SuperSuffixContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#superSuffix}.
	 * @param ctx the parse tree
	 */
	void exitSuperSuffix(Java17Parser.SuperSuffixContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#explicitGenericInvocationSuffix}.
	 * @param ctx the parse tree
	 */
	void enterExplicitGenericInvocationSuffix(Java17Parser.ExplicitGenericInvocationSuffixContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#explicitGenericInvocationSuffix}.
	 * @param ctx the parse tree
	 */
	void exitExplicitGenericInvocationSuffix(Java17Parser.ExplicitGenericInvocationSuffixContext ctx);
	/**
	 * Enter a parse tree produced by {@link Java17Parser#arguments}.
	 * @param ctx the parse tree
	 */
	void enterArguments(Java17Parser.ArgumentsContext ctx);
	/**
	 * Exit a parse tree produced by {@link Java17Parser#arguments}.
	 * @param ctx the parse tree
	 */
	void exitArguments(Java17Parser.ArgumentsContext ctx);
}