text:
package de.aima13.whoami.modules.syntaxcheck.languages.antlrgen;
// Generated from Java8.g4 by ANTLR 4.4

import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.ParseTreeListener;

/**
 * This interface defines a complete listener for a parse tree produced by
 * {@link Java8Parser}.
 */
public interface Java8Listener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by {@link Java8Parser#fieldAccess}.
	 *
	 * @param ctx the parse tree
	 */
	void enterFieldAccess(@NotNull Java8Parser.FieldAccessContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#fieldAccess}.
	 *
	 * @param ctx the parse tree
	 */
	void exitFieldAccess(@NotNull Java8Parser.FieldAccessContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#constructorDeclarator}.
	 *
	 * @param ctx the parse tree
	 */
	void enterConstructorDeclarator(@NotNull Java8Parser.ConstructorDeclaratorContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#constructorDeclarator}.
	 *
	 * @param ctx the parse tree
	 */
	void exitConstructorDeclarator(@NotNull Java8Parser.ConstructorDeclaratorContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#methodModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void enterMethodModifier(@NotNull Java8Parser.MethodModifierContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#methodModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void exitMethodModifier(@NotNull Java8Parser.MethodModifierContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#typeDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterTypeDeclaration(@NotNull Java8Parser.TypeDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#typeDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitTypeDeclaration(@NotNull Java8Parser.TypeDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#lambdaParameters}.
	 *
	 * @param ctx the parse tree
	 */
	void enterLambdaParameters(@NotNull Java8Parser.LambdaParametersContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#lambdaParameters}.
	 *
	 * @param ctx the parse tree
	 */
	void exitLambdaParameters(@NotNull Java8Parser.LambdaParametersContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#classMemberDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterClassMemberDeclaration(@NotNull Java8Parser.ClassMemberDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#classMemberDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitClassMemberDeclaration(@NotNull Java8Parser.ClassMemberDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#interfaceMethodModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void enterInterfaceMethodModifier(@NotNull Java8Parser.InterfaceMethodModifierContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#interfaceMethodModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void exitInterfaceMethodModifier(@NotNull Java8Parser.InterfaceMethodModifierContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#throws_}.
	 *
	 * @param ctx the parse tree
	 */
	void enterThrows_(@NotNull Java8Parser.Throws_Context ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#throws_}.
	 *
	 * @param ctx the parse tree
	 */
	void exitThrows_(@NotNull Java8Parser.Throws_Context ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#normalClassDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterNormalClassDeclaration(@NotNull Java8Parser.NormalClassDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#normalClassDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitNormalClassDeclaration(@NotNull Java8Parser.NormalClassDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#postDecrementExpression_lf_postfixExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPostDecrementExpression_lf_postfixExpression(@NotNull Java8Parser.PostDecrementExpression_lf_postfixExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#postDecrementExpression_lf_postfixExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPostDecrementExpression_lf_postfixExpression(@NotNull Java8Parser.PostDecrementExpression_lf_postfixExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#classInstanceCreationExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterClassInstanceCreationExpression(@NotNull Java8Parser.ClassInstanceCreationExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#classInstanceCreationExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitClassInstanceCreationExpression(@NotNull Java8Parser.ClassInstanceCreationExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#methodName}.
	 *
	 * @param ctx the parse tree
	 */
	void enterMethodName(@NotNull Java8Parser.MethodNameContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#methodName}.
	 *
	 * @param ctx the parse tree
	 */
	void exitMethodName(@NotNull Java8Parser.MethodNameContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#enumConstantName}.
	 *
	 * @param ctx the parse tree
	 */
	void enterEnumConstantName(@NotNull Java8Parser.EnumConstantNameContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#enumConstantName}.
	 *
	 * @param ctx the parse tree
	 */
	void exitEnumConstantName(@NotNull Java8Parser.EnumConstantNameContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#assignmentExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterAssignmentExpression(@NotNull Java8Parser.AssignmentExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#assignmentExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitAssignmentExpression(@NotNull Java8Parser.AssignmentExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#simpleTypeName}.
	 *
	 * @param ctx the parse tree
	 */
	void enterSimpleTypeName(@NotNull Java8Parser.SimpleTypeNameContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#simpleTypeName}.
	 *
	 * @param ctx the parse tree
	 */
	void exitSimpleTypeName(@NotNull Java8Parser.SimpleTypeNameContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#interfaceTypeList}.
	 *
	 * @param ctx the parse tree
	 */
	void enterInterfaceTypeList(@NotNull Java8Parser.InterfaceTypeListContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#interfaceTypeList}.
	 *
	 * @param ctx the parse tree
	 */
	void exitInterfaceTypeList(@NotNull Java8Parser.InterfaceTypeListContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#classModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void enterClassModifier(@NotNull Java8Parser.ClassModifierContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#classModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void exitClassModifier(@NotNull Java8Parser.ClassModifierContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#interfaceMethodDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterInterfaceMethodDeclaration(@NotNull Java8Parser.InterfaceMethodDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#interfaceMethodDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitInterfaceMethodDeclaration(@NotNull Java8Parser.InterfaceMethodDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#superclass}.
	 *
	 * @param ctx the parse tree
	 */
	void enterSuperclass(@NotNull Java8Parser.SuperclassContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#superclass}.
	 *
	 * @param ctx the parse tree
	 */
	void exitSuperclass(@NotNull Java8Parser.SuperclassContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#markerAnnotation}.
	 *
	 * @param ctx the parse tree
	 */
	void enterMarkerAnnotation(@NotNull Java8Parser.MarkerAnnotationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#markerAnnotation}.
	 *
	 * @param ctx the parse tree
	 */
	void exitMarkerAnnotation(@NotNull Java8Parser.MarkerAnnotationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#catchClause}.
	 *
	 * @param ctx the parse tree
	 */
	void enterCatchClause(@NotNull Java8Parser.CatchClauseContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#catchClause}.
	 *
	 * @param ctx the parse tree
	 */
	void exitCatchClause(@NotNull Java8Parser.CatchClauseContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#constantExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterConstantExpression(@NotNull Java8Parser.ConstantExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#constantExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitConstantExpression(@NotNull Java8Parser.ConstantExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#singleElementAnnotation}.
	 *
	 * @param ctx the parse tree
	 */
	void enterSingleElementAnnotation(@NotNull Java8Parser.SingleElementAnnotationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#singleElementAnnotation}.
	 *
	 * @param ctx the parse tree
	 */
	void exitSingleElementAnnotation(@NotNull Java8Parser.SingleElementAnnotationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#enumBody}.
	 *
	 * @param ctx the parse tree
	 */
	void enterEnumBody(@NotNull Java8Parser.EnumBodyContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#enumBody}.
	 *
	 * @param ctx the parse tree
	 */
	void exitEnumBody(@NotNull Java8Parser.EnumBodyContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#explicitConstructorInvocation}.
	 *
	 * @param ctx the parse tree
	 */
	void enterExplicitConstructorInvocation(@NotNull Java8Parser.ExplicitConstructorInvocationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#explicitConstructorInvocation}.
	 *
	 * @param ctx the parse tree
	 */
	void exitExplicitConstructorInvocation(@NotNull Java8Parser.ExplicitConstructorInvocationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#interfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterInterfaceType(@NotNull Java8Parser.InterfaceTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#interfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitInterfaceType(@NotNull Java8Parser.InterfaceTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#dimExprs}.
	 *
	 * @param ctx the parse tree
	 */
	void enterDimExprs(@NotNull Java8Parser.DimExprsContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#dimExprs}.
	 *
	 * @param ctx the parse tree
	 */
	void exitDimExprs(@NotNull Java8Parser.DimExprsContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#fieldModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void enterFieldModifier(@NotNull Java8Parser.FieldModifierContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#fieldModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void exitFieldModifier(@NotNull Java8Parser.FieldModifierContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#typeBound}.
	 *
	 * @param ctx the parse tree
	 */
	void enterTypeBound(@NotNull Java8Parser.TypeBoundContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#typeBound}.
	 *
	 * @param ctx the parse tree
	 */
	void exitTypeBound(@NotNull Java8Parser.TypeBoundContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#unannClassType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterUnannClassType(@NotNull Java8Parser.UnannClassTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#unannClassType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitUnannClassType(@NotNull Java8Parser.UnannClassTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#variableInitializer}.
	 *
	 * @param ctx the parse tree
	 */
	void enterVariableInitializer(@NotNull Java8Parser.VariableInitializerContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#variableInitializer}.
	 *
	 * @param ctx the parse tree
	 */
	void exitVariableInitializer(@NotNull Java8Parser.VariableInitializerContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#preDecrementExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPreDecrementExpression(@NotNull Java8Parser.PreDecrementExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#preDecrementExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPreDecrementExpression(@NotNull Java8Parser.PreDecrementExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPrimaryNoNewArray(@NotNull Java8Parser.PrimaryNoNewArrayContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPrimaryNoNewArray(@NotNull Java8Parser.PrimaryNoNewArrayContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#andExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterAndExpression(@NotNull Java8Parser.AndExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#andExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitAndExpression(@NotNull Java8Parser.AndExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#wildcardBounds}.
	 *
	 * @param ctx the parse tree
	 */
	void enterWildcardBounds(@NotNull Java8Parser.WildcardBoundsContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#wildcardBounds}.
	 *
	 * @param ctx the parse tree
	 */
	void exitWildcardBounds(@NotNull Java8Parser.WildcardBoundsContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#expressionName}.
	 *
	 * @param ctx the parse tree
	 */
	void enterExpressionName(@NotNull Java8Parser.ExpressionNameContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#expressionName}.
	 *
	 * @param ctx the parse tree
	 */
	void exitExpressionName(@NotNull Java8Parser.ExpressionNameContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#statementWithoutTrailingSubstatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterStatementWithoutTrailingSubstatement(@NotNull Java8Parser.StatementWithoutTrailingSubstatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#statementWithoutTrailingSubstatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitStatementWithoutTrailingSubstatement(@NotNull Java8Parser.StatementWithoutTrailingSubstatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#statementNoShortIf}.
	 *
	 * @param ctx the parse tree
	 */
	void enterStatementNoShortIf(@NotNull Java8Parser.StatementNoShortIfContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#statementNoShortIf}.
	 *
	 * @param ctx the parse tree
	 */
	void exitStatementNoShortIf(@NotNull Java8Parser.StatementNoShortIfContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#fieldDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterFieldDeclaration(@NotNull Java8Parser.FieldDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#fieldDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitFieldDeclaration(@NotNull Java8Parser.FieldDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#normalInterfaceDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterNormalInterfaceDeclaration(@NotNull Java8Parser.NormalInterfaceDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#normalInterfaceDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitNormalInterfaceDeclaration(@NotNull Java8Parser.NormalInterfaceDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#unannTypeVariable}.
	 *
	 * @param ctx the parse tree
	 */
	void enterUnannTypeVariable(@NotNull Java8Parser.UnannTypeVariableContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#unannTypeVariable}.
	 *
	 * @param ctx the parse tree
	 */
	void exitUnannTypeVariable(@NotNull Java8Parser.UnannTypeVariableContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#formalParameterList}.
	 *
	 * @param ctx the parse tree
	 */
	void enterFormalParameterList(@NotNull Java8Parser.FormalParameterListContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#formalParameterList}.
	 *
	 * @param ctx the parse tree
	 */
	void exitFormalParameterList(@NotNull Java8Parser.FormalParameterListContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#catches}.
	 *
	 * @param ctx the parse tree
	 */
	void enterCatches(@NotNull Java8Parser.CatchesContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#catches}.
	 *
	 * @param ctx the parse tree
	 */
	void exitCatches(@NotNull Java8Parser.CatchesContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPrimaryNoNewArray_lfno_primary(@NotNull Java8Parser.PrimaryNoNewArray_lfno_primaryContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPrimaryNoNewArray_lfno_primary(@NotNull Java8Parser.PrimaryNoNewArray_lfno_primaryContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#classDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterClassDeclaration(@NotNull Java8Parser.ClassDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#classDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitClassDeclaration(@NotNull Java8Parser.ClassDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#postIncrementExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPostIncrementExpression(@NotNull Java8Parser.PostIncrementExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#postIncrementExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPostIncrementExpression(@NotNull Java8Parser.PostIncrementExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#assignment}.
	 *
	 * @param ctx the parse tree
	 */
	void enterAssignment(@NotNull Java8Parser.AssignmentContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#assignment}.
	 *
	 * @param ctx the parse tree
	 */
	void exitAssignment(@NotNull Java8Parser.AssignmentContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#switchStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterSwitchStatement(@NotNull Java8Parser.SwitchStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#switchStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitSwitchStatement(@NotNull Java8Parser.SwitchStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#packageModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPackageModifier(@NotNull Java8Parser.PackageModifierContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#packageModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPackageModifier(@NotNull Java8Parser.PackageModifierContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#formalParameters}.
	 *
	 * @param ctx the parse tree
	 */
	void enterFormalParameters(@NotNull Java8Parser.FormalParametersContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#formalParameters}.
	 *
	 * @param ctx the parse tree
	 */
	void exitFormalParameters(@NotNull Java8Parser.FormalParametersContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#castExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterCastExpression(@NotNull Java8Parser.CastExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#castExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitCastExpression(@NotNull Java8Parser.CastExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#typeArgument}.
	 *
	 * @param ctx the parse tree
	 */
	void enterTypeArgument(@NotNull Java8Parser.TypeArgumentContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#typeArgument}.
	 *
	 * @param ctx the parse tree
	 */
	void exitTypeArgument(@NotNull Java8Parser.TypeArgumentContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#tryWithResourcesStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterTryWithResourcesStatement(@NotNull Java8Parser.TryWithResourcesStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#tryWithResourcesStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitTryWithResourcesStatement(@NotNull Java8Parser.TryWithResourcesStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#lambdaBody}.
	 *
	 * @param ctx the parse tree
	 */
	void enterLambdaBody(@NotNull Java8Parser.LambdaBodyContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#lambdaBody}.
	 *
	 * @param ctx the parse tree
	 */
	void exitLambdaBody(@NotNull Java8Parser.LambdaBodyContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#throwStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterThrowStatement(@NotNull Java8Parser.ThrowStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#throwStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitThrowStatement(@NotNull Java8Parser.ThrowStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#enhancedForStatementNoShortIf}.
	 *
	 * @param ctx the parse tree
	 */
	void enterEnhancedForStatementNoShortIf(@NotNull Java8Parser.EnhancedForStatementNoShortIfContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#enhancedForStatementNoShortIf}.
	 *
	 * @param ctx the parse tree
	 */
	void exitEnhancedForStatementNoShortIf(@NotNull Java8Parser.EnhancedForStatementNoShortIfContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#typeArgumentList}.
	 *
	 * @param ctx the parse tree
	 */
	void enterTypeArgumentList(@NotNull Java8Parser.TypeArgumentListContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#typeArgumentList}.
	 *
	 * @param ctx the parse tree
	 */
	void exitTypeArgumentList(@NotNull Java8Parser.TypeArgumentListContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#expression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterExpression(@NotNull Java8Parser.ExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#expression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitExpression(@NotNull Java8Parser.ExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#variableDeclarator}.
	 *
	 * @param ctx the parse tree
	 */
	void enterVariableDeclarator(@NotNull Java8Parser.VariableDeclaratorContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#variableDeclarator}.
	 *
	 * @param ctx the parse tree
	 */
	void exitVariableDeclarator(@NotNull Java8Parser.VariableDeclaratorContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#annotationTypeDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterAnnotationTypeDeclaration(@NotNull Java8Parser.AnnotationTypeDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#annotationTypeDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitAnnotationTypeDeclaration(@NotNull Java8Parser.AnnotationTypeDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#enumConstantModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void enterEnumConstantModifier(@NotNull Java8Parser.EnumConstantModifierContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#enumConstantModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void exitEnumConstantModifier(@NotNull Java8Parser.EnumConstantModifierContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#unannInterfaceType_lf_unannClassOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterUnannInterfaceType_lf_unannClassOrInterfaceType(@NotNull Java8Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#unannInterfaceType_lf_unannClassOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitUnannInterfaceType_lf_unannClassOrInterfaceType(@NotNull Java8Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#formalParameter}.
	 *
	 * @param ctx the parse tree
	 */
	void enterFormalParameter(@NotNull Java8Parser.FormalParameterContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#formalParameter}.
	 *
	 * @param ctx the parse tree
	 */
	void exitFormalParameter(@NotNull Java8Parser.FormalParameterContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#enhancedForStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterEnhancedForStatement(@NotNull Java8Parser.EnhancedForStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#enhancedForStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitEnhancedForStatement(@NotNull Java8Parser.EnhancedForStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#returnStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterReturnStatement(@NotNull Java8Parser.ReturnStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#returnStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitReturnStatement(@NotNull Java8Parser.ReturnStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#preIncrementExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPreIncrementExpression(@NotNull Java8Parser.PreIncrementExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#preIncrementExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPreIncrementExpression(@NotNull Java8Parser.PreIncrementExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#constantModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void enterConstantModifier(@NotNull Java8Parser.ConstantModifierContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#constantModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void exitConstantModifier(@NotNull Java8Parser.ConstantModifierContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#assertStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterAssertStatement(@NotNull Java8Parser.AssertStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#assertStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitAssertStatement(@NotNull Java8Parser.AssertStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#methodDeclarator}.
	 *
	 * @param ctx the parse tree
	 */
	void enterMethodDeclarator(@NotNull Java8Parser.MethodDeclaratorContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#methodDeclarator}.
	 *
	 * @param ctx the parse tree
	 */
	void exitMethodDeclarator(@NotNull Java8Parser.MethodDeclaratorContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#forStatementNoShortIf}.
	 *
	 * @param ctx the parse tree
	 */
	void enterForStatementNoShortIf(@NotNull Java8Parser.ForStatementNoShortIfContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#forStatementNoShortIf}.
	 *
	 * @param ctx the parse tree
	 */
	void exitForStatementNoShortIf(@NotNull Java8Parser.ForStatementNoShortIfContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#classBody}.
	 *
	 * @param ctx the parse tree
	 */
	void enterClassBody(@NotNull Java8Parser.ClassBodyContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#classBody}.
	 *
	 * @param ctx the parse tree
	 */
	void exitClassBody(@NotNull Java8Parser.ClassBodyContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#superinterfaces}.
	 *
	 * @param ctx the parse tree
	 */
	void enterSuperinterfaces(@NotNull Java8Parser.SuperinterfacesContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#superinterfaces}.
	 *
	 * @param ctx the parse tree
	 */
	void exitSuperinterfaces(@NotNull Java8Parser.SuperinterfacesContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#interfaceDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterInterfaceDeclaration(@NotNull Java8Parser.InterfaceDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#interfaceDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitInterfaceDeclaration(@NotNull Java8Parser.InterfaceDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#exceptionType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterExceptionType(@NotNull Java8Parser.ExceptionTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#exceptionType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitExceptionType(@NotNull Java8Parser.ExceptionTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#catchType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterCatchType(@NotNull Java8Parser.CatchTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#catchType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitCatchType(@NotNull Java8Parser.CatchTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_arrayAccess}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPrimaryNoNewArray_lf_arrayAccess(@NotNull Java8Parser.PrimaryNoNewArray_lf_arrayAccessContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_arrayAccess}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPrimaryNoNewArray_lf_arrayAccess(@NotNull Java8Parser.PrimaryNoNewArray_lf_arrayAccessContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#typeArguments}.
	 *
	 * @param ctx the parse tree
	 */
	void enterTypeArguments(@NotNull Java8Parser.TypeArgumentsContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#typeArguments}.
	 *
	 * @param ctx the parse tree
	 */
	void exitTypeArguments(@NotNull Java8Parser.TypeArgumentsContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#singleStaticImportDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterSingleStaticImportDeclaration(@NotNull Java8Parser.SingleStaticImportDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#singleStaticImportDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitSingleStaticImportDeclaration(@NotNull Java8Parser.SingleStaticImportDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#postfixExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPostfixExpression(@NotNull Java8Parser.PostfixExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#postfixExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPostfixExpression(@NotNull Java8Parser.PostfixExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#emptyStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterEmptyStatement(@NotNull Java8Parser.EmptyStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#emptyStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitEmptyStatement(@NotNull Java8Parser.EmptyStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#switchLabels}.
	 *
	 * @param ctx the parse tree
	 */
	void enterSwitchLabels(@NotNull Java8Parser.SwitchLabelsContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#switchLabels}.
	 *
	 * @param ctx the parse tree
	 */
	void exitSwitchLabels(@NotNull Java8Parser.SwitchLabelsContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#classBodyDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterClassBodyDeclaration(@NotNull Java8Parser.ClassBodyDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#classBodyDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitClassBodyDeclaration(@NotNull Java8Parser.ClassBodyDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#classType_lf_classOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterClassType_lf_classOrInterfaceType(@NotNull Java8Parser.ClassType_lf_classOrInterfaceTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#classType_lf_classOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitClassType_lf_classOrInterfaceType(@NotNull Java8Parser.ClassType_lf_classOrInterfaceTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#lastFormalParameter}.
	 *
	 * @param ctx the parse tree
	 */
	void enterLastFormalParameter(@NotNull Java8Parser.LastFormalParameterContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#lastFormalParameter}.
	 *
	 * @param ctx the parse tree
	 */
	void exitLastFormalParameter(@NotNull Java8Parser.LastFormalParameterContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#localVariableDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterLocalVariableDeclaration(@NotNull Java8Parser.LocalVariableDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#localVariableDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitLocalVariableDeclaration(@NotNull Java8Parser.LocalVariableDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#result}.
	 *
	 * @param ctx the parse tree
	 */
	void enterResult(@NotNull Java8Parser.ResultContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#result}.
	 *
	 * @param ctx the parse tree
	 */
	void exitResult(@NotNull Java8Parser.ResultContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#variableDeclaratorId}.
	 *
	 * @param ctx the parse tree
	 */
	void enterVariableDeclaratorId(@NotNull Java8Parser.VariableDeclaratorIdContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#variableDeclaratorId}.
	 *
	 * @param ctx the parse tree
	 */
	void exitVariableDeclaratorId(@NotNull Java8Parser.VariableDeclaratorIdContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#compilationUnit}.
	 *
	 * @param ctx the parse tree
	 */
	void enterCompilationUnit(@NotNull Java8Parser.CompilationUnitContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#compilationUnit}.
	 *
	 * @param ctx the parse tree
	 */
	void exitCompilationUnit(@NotNull Java8Parser.CompilationUnitContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#typeParameterList}.
	 *
	 * @param ctx the parse tree
	 */
	void enterTypeParameterList(@NotNull Java8Parser.TypeParameterListContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#typeParameterList}.
	 *
	 * @param ctx the parse tree
	 */
	void exitTypeParameterList(@NotNull Java8Parser.TypeParameterListContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#unaryExpressionNotPlusMinus}.
	 *
	 * @param ctx the parse tree
	 */
	void enterUnaryExpressionNotPlusMinus(@NotNull Java8Parser.UnaryExpressionNotPlusMinusContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#unaryExpressionNotPlusMinus}.
	 *
	 * @param ctx the parse tree
	 */
	void exitUnaryExpressionNotPlusMinus(@NotNull Java8Parser.UnaryExpressionNotPlusMinusContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#singleTypeImportDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterSingleTypeImportDeclaration(@NotNull Java8Parser.SingleTypeImportDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#singleTypeImportDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitSingleTypeImportDeclaration(@NotNull Java8Parser.SingleTypeImportDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#typeArgumentsOrDiamond}.
	 *
	 * @param ctx the parse tree
	 */
	void enterTypeArgumentsOrDiamond(@NotNull Java8Parser.TypeArgumentsOrDiamondContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#typeArgumentsOrDiamond}.
	 *
	 * @param ctx the parse tree
	 */
	void exitTypeArgumentsOrDiamond(@NotNull Java8Parser.TypeArgumentsOrDiamondContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#annotationTypeElementDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterAnnotationTypeElementDeclaration(@NotNull Java8Parser.AnnotationTypeElementDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#annotationTypeElementDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitAnnotationTypeElementDeclaration(@NotNull Java8Parser.AnnotationTypeElementDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#annotationTypeBody}.
	 *
	 * @param ctx the parse tree
	 */
	void enterAnnotationTypeBody(@NotNull Java8Parser.AnnotationTypeBodyContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#annotationTypeBody}.
	 *
	 * @param ctx the parse tree
	 */
	void exitAnnotationTypeBody(@NotNull Java8Parser.AnnotationTypeBodyContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#labeledStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterLabeledStatement(@NotNull Java8Parser.LabeledStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#labeledStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitLabeledStatement(@NotNull Java8Parser.LabeledStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#tryStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterTryStatement(@NotNull Java8Parser.TryStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#tryStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitTryStatement(@NotNull Java8Parser.TryStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#interfaceType_lf_classOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterInterfaceType_lf_classOrInterfaceType(@NotNull Java8Parser.InterfaceType_lf_classOrInterfaceTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#interfaceType_lf_classOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitInterfaceType_lf_classOrInterfaceType(@NotNull Java8Parser.InterfaceType_lf_classOrInterfaceTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#normalAnnotation}.
	 *
	 * @param ctx the parse tree
	 */
	void enterNormalAnnotation(@NotNull Java8Parser.NormalAnnotationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#normalAnnotation}.
	 *
	 * @param ctx the parse tree
	 */
	void exitNormalAnnotation(@NotNull Java8Parser.NormalAnnotationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#relationalExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterRelationalExpression(@NotNull Java8Parser.RelationalExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#relationalExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitRelationalExpression(@NotNull Java8Parser.RelationalExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#whileStatementNoShortIf}.
	 *
	 * @param ctx the parse tree
	 */
	void enterWhileStatementNoShortIf(@NotNull Java8Parser.WhileStatementNoShortIfContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#whileStatementNoShortIf}.
	 *
	 * @param ctx the parse tree
	 */
	void exitWhileStatementNoShortIf(@NotNull Java8Parser.WhileStatementNoShortIfContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#receiverParameter}.
	 *
	 * @param ctx the parse tree
	 */
	void enterReceiverParameter(@NotNull Java8Parser.ReceiverParameterContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#receiverParameter}.
	 *
	 * @param ctx the parse tree
	 */
	void exitReceiverParameter(@NotNull Java8Parser.ReceiverParameterContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(@NotNull Java8Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(@NotNull Java8Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#elementValuePairList}.
	 *
	 * @param ctx the parse tree
	 */
	void enterElementValuePairList(@NotNull Java8Parser.ElementValuePairListContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#elementValuePairList}.
	 *
	 * @param ctx the parse tree
	 */
	void exitElementValuePairList(@NotNull Java8Parser.ElementValuePairListContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#methodDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterMethodDeclaration(@NotNull Java8Parser.MethodDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#methodDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitMethodDeclaration(@NotNull Java8Parser.MethodDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#interfaceType_lfno_classOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterInterfaceType_lfno_classOrInterfaceType(@NotNull Java8Parser.InterfaceType_lfno_classOrInterfaceTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#interfaceType_lfno_classOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitInterfaceType_lfno_classOrInterfaceType(@NotNull Java8Parser.InterfaceType_lfno_classOrInterfaceTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#resourceSpecification}.
	 *
	 * @param ctx the parse tree
	 */
	void enterResourceSpecification(@NotNull Java8Parser.ResourceSpecificationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#resourceSpecification}.
	 *
	 * @param ctx the parse tree
	 */
	void exitResourceSpecification(@NotNull Java8Parser.ResourceSpecificationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#leftHandSide}.
	 *
	 * @param ctx the parse tree
	 */
	void enterLeftHandSide(@NotNull Java8Parser.LeftHandSideContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#leftHandSide}.
	 *
	 * @param ctx the parse tree
	 */
	void exitLeftHandSide(@NotNull Java8Parser.LeftHandSideContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_arrayAccess}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPrimaryNoNewArray_lfno_arrayAccess(@NotNull Java8Parser.PrimaryNoNewArray_lfno_arrayAccessContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_arrayAccess}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPrimaryNoNewArray_lfno_arrayAccess(@NotNull Java8Parser.PrimaryNoNewArray_lfno_arrayAccessContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#labeledStatementNoShortIf}.
	 *
	 * @param ctx the parse tree
	 */
	void enterLabeledStatementNoShortIf(@NotNull Java8Parser.LabeledStatementNoShortIfContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#labeledStatementNoShortIf}.
	 *
	 * @param ctx the parse tree
	 */
	void exitLabeledStatementNoShortIf(@NotNull Java8Parser.LabeledStatementNoShortIfContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#dims}.
	 *
	 * @param ctx the parse tree
	 */
	void enterDims(@NotNull Java8Parser.DimsContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#dims}.
	 *
	 * @param ctx the parse tree
	 */
	void exitDims(@NotNull Java8Parser.DimsContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#variableDeclaratorList}.
	 *
	 * @param ctx the parse tree
	 */
	void enterVariableDeclaratorList(@NotNull Java8Parser.VariableDeclaratorListContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#variableDeclaratorList}.
	 *
	 * @param ctx the parse tree
	 */
	void exitVariableDeclaratorList(@NotNull Java8Parser.VariableDeclaratorListContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#classType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterClassType(@NotNull Java8Parser.ClassTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#classType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitClassType(@NotNull Java8Parser.ClassTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#argumentList}.
	 *
	 * @param ctx the parse tree
	 */
	void enterArgumentList(@NotNull Java8Parser.ArgumentListContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#argumentList}.
	 *
	 * @param ctx the parse tree
	 */
	void exitArgumentList(@NotNull Java8Parser.ArgumentListContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#continueStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterContinueStatement(@NotNull Java8Parser.ContinueStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#continueStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitContinueStatement(@NotNull Java8Parser.ContinueStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#enumConstantList}.
	 *
	 * @param ctx the parse tree
	 */
	void enterEnumConstantList(@NotNull Java8Parser.EnumConstantListContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#enumConstantList}.
	 *
	 * @param ctx the parse tree
	 */
	void exitEnumConstantList(@NotNull Java8Parser.EnumConstantListContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#methodHeader}.
	 *
	 * @param ctx the parse tree
	 */
	void enterMethodHeader(@NotNull Java8Parser.MethodHeaderContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#methodHeader}.
	 *
	 * @param ctx the parse tree
	 */
	void exitMethodHeader(@NotNull Java8Parser.MethodHeaderContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#ifThenElseStatementNoShortIf}.
	 *
	 * @param ctx the parse tree
	 */
	void enterIfThenElseStatementNoShortIf(@NotNull Java8Parser.IfThenElseStatementNoShortIfContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#ifThenElseStatementNoShortIf}.
	 *
	 * @param ctx the parse tree
	 */
	void exitIfThenElseStatementNoShortIf(@NotNull Java8Parser.IfThenElseStatementNoShortIfContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#arrayInitializer}.
	 *
	 * @param ctx the parse tree
	 */
	void enterArrayInitializer(@NotNull Java8Parser.ArrayInitializerContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#arrayInitializer}.
	 *
	 * @param ctx the parse tree
	 */
	void exitArrayInitializer(@NotNull Java8Parser.ArrayInitializerContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#extendsInterfaces}.
	 *
	 * @param ctx the parse tree
	 */
	void enterExtendsInterfaces(@NotNull Java8Parser.ExtendsInterfacesContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#extendsInterfaces}.
	 *
	 * @param ctx the parse tree
	 */
	void exitExtendsInterfaces(@NotNull Java8Parser.ExtendsInterfacesContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#whileStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterWhileStatement(@NotNull Java8Parser.WhileStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#whileStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitWhileStatement(@NotNull Java8Parser.WhileStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#constructorModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void enterConstructorModifier(@NotNull Java8Parser.ConstructorModifierContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#constructorModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void exitConstructorModifier(@NotNull Java8Parser.ConstructorModifierContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#unannInterfaceType_lfno_unannClassOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterUnannInterfaceType_lfno_unannClassOrInterfaceType(@NotNull Java8Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#unannInterfaceType_lfno_unannClassOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitUnannInterfaceType_lfno_unannClassOrInterfaceType(@NotNull Java8Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#primitiveType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPrimitiveType(@NotNull Java8Parser.PrimitiveTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#primitiveType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPrimitiveType(@NotNull Java8Parser.PrimitiveTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#unannClassOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterUnannClassOrInterfaceType(@NotNull Java8Parser.UnannClassOrInterfaceTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#unannClassOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitUnannClassOrInterfaceType(@NotNull Java8Parser.UnannClassOrInterfaceTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#finally_}.
	 *
	 * @param ctx the parse tree
	 */
	void enterFinally_(@NotNull Java8Parser.Finally_Context ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#finally_}.
	 *
	 * @param ctx the parse tree
	 */
	void exitFinally_(@NotNull Java8Parser.Finally_Context ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#dimExpr}.
	 *
	 * @param ctx the parse tree
	 */
	void enterDimExpr(@NotNull Java8Parser.DimExprContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#dimExpr}.
	 *
	 * @param ctx the parse tree
	 */
	void exitDimExpr(@NotNull Java8Parser.DimExprContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#arrayType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterArrayType(@NotNull Java8Parser.ArrayTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#arrayType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitArrayType(@NotNull Java8Parser.ArrayTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#packageName}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPackageName(@NotNull Java8Parser.PackageNameContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#packageName}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPackageName(@NotNull Java8Parser.PackageNameContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#expressionStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterExpressionStatement(@NotNull Java8Parser.ExpressionStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#expressionStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitExpressionStatement(@NotNull Java8Parser.ExpressionStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#forUpdate}.
	 *
	 * @param ctx the parse tree
	 */
	void enterForUpdate(@NotNull Java8Parser.ForUpdateContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#forUpdate}.
	 *
	 * @param ctx the parse tree
	 */
	void exitForUpdate(@NotNull Java8Parser.ForUpdateContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#integralType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterIntegralType(@NotNull Java8Parser.IntegralTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#integralType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitIntegralType(@NotNull Java8Parser.IntegralTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(@NotNull Java8Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(@NotNull Java8Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#annotation}.
	 *
	 * @param ctx the parse tree
	 */
	void enterAnnotation(@NotNull Java8Parser.AnnotationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#annotation}.
	 *
	 * @param ctx the parse tree
	 */
	void exitAnnotation(@NotNull Java8Parser.AnnotationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#enumConstant}.
	 *
	 * @param ctx the parse tree
	 */
	void enterEnumConstant(@NotNull Java8Parser.EnumConstantContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#enumConstant}.
	 *
	 * @param ctx the parse tree
	 */
	void exitEnumConstant(@NotNull Java8Parser.EnumConstantContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#classInstanceCreationExpression_lfno_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void enterClassInstanceCreationExpression_lfno_primary(@NotNull Java8Parser.ClassInstanceCreationExpression_lfno_primaryContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#classInstanceCreationExpression_lfno_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void exitClassInstanceCreationExpression_lfno_primary(@NotNull Java8Parser.ClassInstanceCreationExpression_lfno_primaryContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#constantDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterConstantDeclaration(@NotNull Java8Parser.ConstantDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#constantDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitConstantDeclaration(@NotNull Java8Parser.ConstantDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#annotationTypeMemberDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterAnnotationTypeMemberDeclaration(@NotNull Java8Parser.AnnotationTypeMemberDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#annotationTypeMemberDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitAnnotationTypeMemberDeclaration(@NotNull Java8Parser.AnnotationTypeMemberDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#unannReferenceType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterUnannReferenceType(@NotNull Java8Parser.UnannReferenceTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#unannReferenceType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitUnannReferenceType(@NotNull Java8Parser.UnannReferenceTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#importDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterImportDeclaration(@NotNull Java8Parser.ImportDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#importDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitImportDeclaration(@NotNull Java8Parser.ImportDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#instanceInitializer}.
	 *
	 * @param ctx the parse tree
	 */
	void enterInstanceInitializer(@NotNull Java8Parser.InstanceInitializerContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#instanceInitializer}.
	 *
	 * @param ctx the parse tree
	 */
	void exitInstanceInitializer(@NotNull Java8Parser.InstanceInitializerContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#basicForStatementNoShortIf}.
	 *
	 * @param ctx the parse tree
	 */
	void enterBasicForStatementNoShortIf(@NotNull Java8Parser.BasicForStatementNoShortIfContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#basicForStatementNoShortIf}.
	 *
	 * @param ctx the parse tree
	 */
	void exitBasicForStatementNoShortIf(@NotNull Java8Parser.BasicForStatementNoShortIfContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#annotationTypeElementModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void enterAnnotationTypeElementModifier(@NotNull Java8Parser.AnnotationTypeElementModifierContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#annotationTypeElementModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void exitAnnotationTypeElementModifier(@NotNull Java8Parser.AnnotationTypeElementModifierContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#switchBlock}.
	 *
	 * @param ctx the parse tree
	 */
	void enterSwitchBlock(@NotNull Java8Parser.SwitchBlockContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#switchBlock}.
	 *
	 * @param ctx the parse tree
	 */
	void exitSwitchBlock(@NotNull Java8Parser.SwitchBlockContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#exclusiveOrExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterExclusiveOrExpression(@NotNull Java8Parser.ExclusiveOrExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#exclusiveOrExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitExclusiveOrExpression(@NotNull Java8Parser.ExclusiveOrExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#enumDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterEnumDeclaration(@NotNull Java8Parser.EnumDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#enumDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitEnumDeclaration(@NotNull Java8Parser.EnumDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#breakStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterBreakStatement(@NotNull Java8Parser.BreakStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#breakStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitBreakStatement(@NotNull Java8Parser.BreakStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#typeParameter}.
	 *
	 * @param ctx the parse tree
	 */
	void enterTypeParameter(@NotNull Java8Parser.TypeParameterContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#typeParameter}.
	 *
	 * @param ctx the parse tree
	 */
	void exitTypeParameter(@NotNull Java8Parser.TypeParameterContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#arrayAccess_lf_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void enterArrayAccess_lf_primary(@NotNull Java8Parser.ArrayAccess_lf_primaryContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#arrayAccess_lf_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void exitArrayAccess_lf_primary(@NotNull Java8Parser.ArrayAccess_lf_primaryContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#enumBodyDeclarations}.
	 *
	 * @param ctx the parse tree
	 */
	void enterEnumBodyDeclarations(@NotNull Java8Parser.EnumBodyDeclarationsContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#enumBodyDeclarations}.
	 *
	 * @param ctx the parse tree
	 */
	void exitEnumBodyDeclarations(@NotNull Java8Parser.EnumBodyDeclarationsContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#forStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterForStatement(@NotNull Java8Parser.ForStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#forStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitForStatement(@NotNull Java8Parser.ForStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#statementExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterStatementExpression(@NotNull Java8Parser.StatementExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#statementExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitStatementExpression(@NotNull Java8Parser.StatementExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#block}.
	 *
	 * @param ctx the parse tree
	 */
	void enterBlock(@NotNull Java8Parser.BlockContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#block}.
	 *
	 * @param ctx the parse tree
	 */
	void exitBlock(@NotNull Java8Parser.BlockContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#methodInvocation_lfno_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void enterMethodInvocation_lfno_primary(@NotNull Java8Parser.MethodInvocation_lfno_primaryContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#methodInvocation_lfno_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void exitMethodInvocation_lfno_primary(@NotNull Java8Parser.MethodInvocation_lfno_primaryContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#conditionalExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterConditionalExpression(@NotNull Java8Parser.ConditionalExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#conditionalExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitConditionalExpression(@NotNull Java8Parser.ConditionalExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#elementValueList}.
	 *
	 * @param ctx the parse tree
	 */
	void enterElementValueList(@NotNull Java8Parser.ElementValueListContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#elementValueList}.
	 *
	 * @param ctx the parse tree
	 */
	void exitElementValueList(@NotNull Java8Parser.ElementValueListContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(@NotNull Java8Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(@NotNull Java8Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(@NotNull Java8Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(@NotNull Java8Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#localVariableDeclarationStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterLocalVariableDeclarationStatement(@NotNull Java8Parser.LocalVariableDeclarationStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#localVariableDeclarationStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitLocalVariableDeclarationStatement(@NotNull Java8Parser.LocalVariableDeclarationStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#arrayCreationExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterArrayCreationExpression(@NotNull Java8Parser.ArrayCreationExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#arrayCreationExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitArrayCreationExpression(@NotNull Java8Parser.ArrayCreationExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#synchronizedStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterSynchronizedStatement(@NotNull Java8Parser.SynchronizedStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#synchronizedStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitSynchronizedStatement(@NotNull Java8Parser.SynchronizedStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#switchLabel}.
	 *
	 * @param ctx the parse tree
	 */
	void enterSwitchLabel(@NotNull Java8Parser.SwitchLabelContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#switchLabel}.
	 *
	 * @param ctx the parse tree
	 */
	void exitSwitchLabel(@NotNull Java8Parser.SwitchLabelContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#basicForStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterBasicForStatement(@NotNull Java8Parser.BasicForStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#basicForStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitBasicForStatement(@NotNull Java8Parser.BasicForStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#unannType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterUnannType(@NotNull Java8Parser.UnannTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#unannType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitUnannType(@NotNull Java8Parser.UnannTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#typeParameterModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void enterTypeParameterModifier(@NotNull Java8Parser.TypeParameterModifierContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#typeParameterModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void exitTypeParameterModifier(@NotNull Java8Parser.TypeParameterModifierContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#typeParameters}.
	 *
	 * @param ctx the parse tree
	 */
	void enterTypeParameters(@NotNull Java8Parser.TypeParametersContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#typeParameters}.
	 *
	 * @param ctx the parse tree
	 */
	void exitTypeParameters(@NotNull Java8Parser.TypeParametersContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#arrayAccess_lfno_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void enterArrayAccess_lfno_primary(@NotNull Java8Parser.ArrayAccess_lfno_primaryContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#arrayAccess_lfno_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void exitArrayAccess_lfno_primary(@NotNull Java8Parser.ArrayAccess_lfno_primaryContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#methodInvocation}.
	 *
	 * @param ctx the parse tree
	 */
	void enterMethodInvocation(@NotNull Java8Parser.MethodInvocationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#methodInvocation}.
	 *
	 * @param ctx the parse tree
	 */
	void exitMethodInvocation(@NotNull Java8Parser.MethodInvocationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#inclusiveOrExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterInclusiveOrExpression(@NotNull Java8Parser.InclusiveOrExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#inclusiveOrExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitInclusiveOrExpression(@NotNull Java8Parser.InclusiveOrExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#unannClassType_lfno_unannClassOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterUnannClassType_lfno_unannClassOrInterfaceType(@NotNull Java8Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#unannClassType_lfno_unannClassOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitUnannClassType_lfno_unannClassOrInterfaceType(@NotNull Java8Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#typeName}.
	 *
	 * @param ctx the parse tree
	 */
	void enterTypeName(@NotNull Java8Parser.TypeNameContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#typeName}.
	 *
	 * @param ctx the parse tree
	 */
	void exitTypeName(@NotNull Java8Parser.TypeNameContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#equalityExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterEqualityExpression(@NotNull Java8Parser.EqualityExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#equalityExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitEqualityExpression(@NotNull Java8Parser.EqualityExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#constructorBody}.
	 *
	 * @param ctx the parse tree
	 */
	void enterConstructorBody(@NotNull Java8Parser.ConstructorBodyContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#constructorBody}.
	 *
	 * @param ctx the parse tree
	 */
	void exitConstructorBody(@NotNull Java8Parser.ConstructorBodyContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#classInstanceCreationExpression_lf_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void enterClassInstanceCreationExpression_lf_primary(@NotNull Java8Parser.ClassInstanceCreationExpression_lf_primaryContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#classInstanceCreationExpression_lf_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void exitClassInstanceCreationExpression_lf_primary(@NotNull Java8Parser.ClassInstanceCreationExpression_lf_primaryContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#inferredFormalParameterList}.
	 *
	 * @param ctx the parse tree
	 */
	void enterInferredFormalParameterList(@NotNull Java8Parser.InferredFormalParameterListContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#inferredFormalParameterList}.
	 *
	 * @param ctx the parse tree
	 */
	void exitInferredFormalParameterList(@NotNull Java8Parser.InferredFormalParameterListContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#forInit}.
	 *
	 * @param ctx the parse tree
	 */
	void enterForInit(@NotNull Java8Parser.ForInitContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#forInit}.
	 *
	 * @param ctx the parse tree
	 */
	void exitForInit(@NotNull Java8Parser.ForInitContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#lambdaExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterLambdaExpression(@NotNull Java8Parser.LambdaExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#lambdaExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitLambdaExpression(@NotNull Java8Parser.LambdaExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#numericType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterNumericType(@NotNull Java8Parser.NumericTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#numericType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitNumericType(@NotNull Java8Parser.NumericTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#methodReference}.
	 *
	 * @param ctx the parse tree
	 */
	void enterMethodReference(@NotNull Java8Parser.MethodReferenceContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#methodReference}.
	 *
	 * @param ctx the parse tree
	 */
	void exitMethodReference(@NotNull Java8Parser.MethodReferenceContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#unaryExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterUnaryExpression(@NotNull Java8Parser.UnaryExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#unaryExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitUnaryExpression(@NotNull Java8Parser.UnaryExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#methodReference_lf_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void enterMethodReference_lf_primary(@NotNull Java8Parser.MethodReference_lf_primaryContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#methodReference_lf_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void exitMethodReference_lf_primary(@NotNull Java8Parser.MethodReference_lf_primaryContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPrimaryNoNewArray_lf_primary(@NotNull Java8Parser.PrimaryNoNewArray_lf_primaryContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#primaryNoNewArray_lf_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPrimaryNoNewArray_lf_primary(@NotNull Java8Parser.PrimaryNoNewArray_lf_primaryContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#methodReference_lfno_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void enterMethodReference_lfno_primary(@NotNull Java8Parser.MethodReference_lfno_primaryContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#methodReference_lfno_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void exitMethodReference_lfno_primary(@NotNull Java8Parser.MethodReference_lfno_primaryContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#type}.
	 *
	 * @param ctx the parse tree
	 */
	void enterType(@NotNull Java8Parser.TypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#type}.
	 *
	 * @param ctx the parse tree
	 */
	void exitType(@NotNull Java8Parser.TypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#fieldAccess_lf_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void enterFieldAccess_lf_primary(@NotNull Java8Parser.FieldAccess_lf_primaryContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#fieldAccess_lf_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void exitFieldAccess_lf_primary(@NotNull Java8Parser.FieldAccess_lf_primaryContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#elementValueArrayInitializer}.
	 *
	 * @param ctx the parse tree
	 */
	void enterElementValueArrayInitializer(@NotNull Java8Parser.ElementValueArrayInitializerContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#elementValueArrayInitializer}.
	 *
	 * @param ctx the parse tree
	 */
	void exitElementValueArrayInitializer(@NotNull Java8Parser.ElementValueArrayInitializerContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#fieldAccess_lfno_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void enterFieldAccess_lfno_primary(@NotNull Java8Parser.FieldAccess_lfno_primaryContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#fieldAccess_lfno_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void exitFieldAccess_lfno_primary(@NotNull Java8Parser.FieldAccess_lfno_primaryContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#ambiguousName}.
	 *
	 * @param ctx the parse tree
	 */
	void enterAmbiguousName(@NotNull Java8Parser.AmbiguousNameContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#ambiguousName}.
	 *
	 * @param ctx the parse tree
	 */
	void exitAmbiguousName(@NotNull Java8Parser.AmbiguousNameContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#primary}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPrimary(@NotNull Java8Parser.PrimaryContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#primary}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPrimary(@NotNull Java8Parser.PrimaryContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#shiftExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterShiftExpression(@NotNull Java8Parser.ShiftExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#shiftExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitShiftExpression(@NotNull Java8Parser.ShiftExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#defaultValue}.
	 *
	 * @param ctx the parse tree
	 */
	void enterDefaultValue(@NotNull Java8Parser.DefaultValueContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#defaultValue}.
	 *
	 * @param ctx the parse tree
	 */
	void exitDefaultValue(@NotNull Java8Parser.DefaultValueContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#variableModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void enterVariableModifier(@NotNull Java8Parser.VariableModifierContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#variableModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void exitVariableModifier(@NotNull Java8Parser.VariableModifierContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#interfaceModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void enterInterfaceModifier(@NotNull Java8Parser.InterfaceModifierContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#interfaceModifier}.
	 *
	 * @param ctx the parse tree
	 */
	void exitInterfaceModifier(@NotNull Java8Parser.InterfaceModifierContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#packageDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPackageDeclaration(@NotNull Java8Parser.PackageDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#packageDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPackageDeclaration(@NotNull Java8Parser.PackageDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#typeImportOnDemandDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterTypeImportOnDemandDeclaration(@NotNull Java8Parser.TypeImportOnDemandDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#typeImportOnDemandDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitTypeImportOnDemandDeclaration(@NotNull Java8Parser.TypeImportOnDemandDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#conditionalAndExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterConditionalAndExpression(@NotNull Java8Parser.ConditionalAndExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#conditionalAndExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitConditionalAndExpression(@NotNull Java8Parser.ConditionalAndExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#additiveExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterAdditiveExpression(@NotNull Java8Parser.AdditiveExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#additiveExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitAdditiveExpression(@NotNull Java8Parser.AdditiveExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#catchFormalParameter}.
	 *
	 * @param ctx the parse tree
	 */
	void enterCatchFormalParameter(@NotNull Java8Parser.CatchFormalParameterContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#catchFormalParameter}.
	 *
	 * @param ctx the parse tree
	 */
	void exitCatchFormalParameter(@NotNull Java8Parser.CatchFormalParameterContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#arrayAccess}.
	 *
	 * @param ctx the parse tree
	 */
	void enterArrayAccess(@NotNull Java8Parser.ArrayAccessContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#arrayAccess}.
	 *
	 * @param ctx the parse tree
	 */
	void exitArrayAccess(@NotNull Java8Parser.ArrayAccessContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#statement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterStatement(@NotNull Java8Parser.StatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#statement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitStatement(@NotNull Java8Parser.StatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#postDecrementExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPostDecrementExpression(@NotNull Java8Parser.PostDecrementExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#postDecrementExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPostDecrementExpression(@NotNull Java8Parser.PostDecrementExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#unannInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterUnannInterfaceType(@NotNull Java8Parser.UnannInterfaceTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#unannInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitUnannInterfaceType(@NotNull Java8Parser.UnannInterfaceTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#interfaceBody}.
	 *
	 * @param ctx the parse tree
	 */
	void enterInterfaceBody(@NotNull Java8Parser.InterfaceBodyContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#interfaceBody}.
	 *
	 * @param ctx the parse tree
	 */
	void exitInterfaceBody(@NotNull Java8Parser.InterfaceBodyContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#unannArrayType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterUnannArrayType(@NotNull Java8Parser.UnannArrayTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#unannArrayType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitUnannArrayType(@NotNull Java8Parser.UnannArrayTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#packageOrTypeName}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPackageOrTypeName(@NotNull Java8Parser.PackageOrTypeNameContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#packageOrTypeName}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPackageOrTypeName(@NotNull Java8Parser.PackageOrTypeNameContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#methodInvocation_lf_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void enterMethodInvocation_lf_primary(@NotNull Java8Parser.MethodInvocation_lf_primaryContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#methodInvocation_lf_primary}.
	 *
	 * @param ctx the parse tree
	 */
	void exitMethodInvocation_lf_primary(@NotNull Java8Parser.MethodInvocation_lf_primaryContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#multiplicativeExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterMultiplicativeExpression(@NotNull Java8Parser.MultiplicativeExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#multiplicativeExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitMultiplicativeExpression(@NotNull Java8Parser.MultiplicativeExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#assignmentOperator}.
	 *
	 * @param ctx the parse tree
	 */
	void enterAssignmentOperator(@NotNull Java8Parser.AssignmentOperatorContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#assignmentOperator}.
	 *
	 * @param ctx the parse tree
	 */
	void exitAssignmentOperator(@NotNull Java8Parser.AssignmentOperatorContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#elementValue}.
	 *
	 * @param ctx the parse tree
	 */
	void enterElementValue(@NotNull Java8Parser.ElementValueContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#elementValue}.
	 *
	 * @param ctx the parse tree
	 */
	void exitElementValue(@NotNull Java8Parser.ElementValueContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#classOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterClassOrInterfaceType(@NotNull Java8Parser.ClassOrInterfaceTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#classOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitClassOrInterfaceType(@NotNull Java8Parser.ClassOrInterfaceTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#blockStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterBlockStatement(@NotNull Java8Parser.BlockStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#blockStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitBlockStatement(@NotNull Java8Parser.BlockStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#typeVariable}.
	 *
	 * @param ctx the parse tree
	 */
	void enterTypeVariable(@NotNull Java8Parser.TypeVariableContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#typeVariable}.
	 *
	 * @param ctx the parse tree
	 */
	void exitTypeVariable(@NotNull Java8Parser.TypeVariableContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#blockStatements}.
	 *
	 * @param ctx the parse tree
	 */
	void enterBlockStatements(@NotNull Java8Parser.BlockStatementsContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#blockStatements}.
	 *
	 * @param ctx the parse tree
	 */
	void exitBlockStatements(@NotNull Java8Parser.BlockStatementsContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#additionalBound}.
	 *
	 * @param ctx the parse tree
	 */
	void enterAdditionalBound(@NotNull Java8Parser.AdditionalBoundContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#additionalBound}.
	 *
	 * @param ctx the parse tree
	 */
	void exitAdditionalBound(@NotNull Java8Parser.AdditionalBoundContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#referenceType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterReferenceType(@NotNull Java8Parser.ReferenceTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#referenceType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitReferenceType(@NotNull Java8Parser.ReferenceTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#ifThenElseStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterIfThenElseStatement(@NotNull Java8Parser.IfThenElseStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#ifThenElseStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitIfThenElseStatement(@NotNull Java8Parser.IfThenElseStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#resourceList}.
	 *
	 * @param ctx the parse tree
	 */
	void enterResourceList(@NotNull Java8Parser.ResourceListContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#resourceList}.
	 *
	 * @param ctx the parse tree
	 */
	void exitResourceList(@NotNull Java8Parser.ResourceListContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#conditionalOrExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterConditionalOrExpression(@NotNull Java8Parser.ConditionalOrExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#conditionalOrExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitConditionalOrExpression(@NotNull Java8Parser.ConditionalOrExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#staticImportOnDemandDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterStaticImportOnDemandDeclaration(@NotNull Java8Parser.StaticImportOnDemandDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#staticImportOnDemandDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitStaticImportOnDemandDeclaration(@NotNull Java8Parser.StaticImportOnDemandDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#variableInitializerList}.
	 *
	 * @param ctx the parse tree
	 */
	void enterVariableInitializerList(@NotNull Java8Parser.VariableInitializerListContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#variableInitializerList}.
	 *
	 * @param ctx the parse tree
	 */
	void exitVariableInitializerList(@NotNull Java8Parser.VariableInitializerListContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#doStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterDoStatement(@NotNull Java8Parser.DoStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#doStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitDoStatement(@NotNull Java8Parser.DoStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#ifThenStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void enterIfThenStatement(@NotNull Java8Parser.IfThenStatementContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#ifThenStatement}.
	 *
	 * @param ctx the parse tree
	 */
	void exitIfThenStatement(@NotNull Java8Parser.IfThenStatementContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#constructorDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterConstructorDeclaration(@NotNull Java8Parser.ConstructorDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#constructorDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitConstructorDeclaration(@NotNull Java8Parser.ConstructorDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#floatingPointType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterFloatingPointType(@NotNull Java8Parser.FloatingPointTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#floatingPointType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitFloatingPointType(@NotNull Java8Parser.FloatingPointTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#wildcard}.
	 *
	 * @param ctx the parse tree
	 */
	void enterWildcard(@NotNull Java8Parser.WildcardContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#wildcard}.
	 *
	 * @param ctx the parse tree
	 */
	void exitWildcard(@NotNull Java8Parser.WildcardContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#unannClassType_lf_unannClassOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterUnannClassType_lf_unannClassOrInterfaceType(@NotNull Java8Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#unannClassType_lf_unannClassOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitUnannClassType_lf_unannClassOrInterfaceType(@NotNull Java8Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#resource}.
	 *
	 * @param ctx the parse tree
	 */
	void enterResource(@NotNull Java8Parser.ResourceContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#resource}.
	 *
	 * @param ctx the parse tree
	 */
	void exitResource(@NotNull Java8Parser.ResourceContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#elementValuePair}.
	 *
	 * @param ctx the parse tree
	 */
	void enterElementValuePair(@NotNull Java8Parser.ElementValuePairContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#elementValuePair}.
	 *
	 * @param ctx the parse tree
	 */
	void exitElementValuePair(@NotNull Java8Parser.ElementValuePairContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#postIncrementExpression_lf_postfixExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void enterPostIncrementExpression_lf_postfixExpression(@NotNull Java8Parser.PostIncrementExpression_lf_postfixExpressionContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#postIncrementExpression_lf_postfixExpression}.
	 *
	 * @param ctx the parse tree
	 */
	void exitPostIncrementExpression_lf_postfixExpression(@NotNull Java8Parser.PostIncrementExpression_lf_postfixExpressionContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#unannPrimitiveType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterUnannPrimitiveType(@NotNull Java8Parser.UnannPrimitiveTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#unannPrimitiveType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitUnannPrimitiveType(@NotNull Java8Parser.UnannPrimitiveTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#methodBody}.
	 *
	 * @param ctx the parse tree
	 */
	void enterMethodBody(@NotNull Java8Parser.MethodBodyContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#methodBody}.
	 *
	 * @param ctx the parse tree
	 */
	void exitMethodBody(@NotNull Java8Parser.MethodBodyContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#classType_lfno_classOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void enterClassType_lfno_classOrInterfaceType(@NotNull Java8Parser.ClassType_lfno_classOrInterfaceTypeContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#classType_lfno_classOrInterfaceType}.
	 *
	 * @param ctx the parse tree
	 */
	void exitClassType_lfno_classOrInterfaceType(@NotNull Java8Parser.ClassType_lfno_classOrInterfaceTypeContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#staticInitializer}.
	 *
	 * @param ctx the parse tree
	 */
	void enterStaticInitializer(@NotNull Java8Parser.StaticInitializerContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#staticInitializer}.
	 *
	 * @param ctx the parse tree
	 */
	void exitStaticInitializer(@NotNull Java8Parser.StaticInitializerContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#exceptionTypeList}.
	 *
	 * @param ctx the parse tree
	 */
	void enterExceptionTypeList(@NotNull Java8Parser.ExceptionTypeListContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#exceptionTypeList}.
	 *
	 * @param ctx the parse tree
	 */
	void exitExceptionTypeList(@NotNull Java8Parser.ExceptionTypeListContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#statementExpressionList}.
	 *
	 * @param ctx the parse tree
	 */
	void enterStatementExpressionList(@NotNull Java8Parser.StatementExpressionListContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#statementExpressionList}.
	 *
	 * @param ctx the parse tree
	 */
	void exitStatementExpressionList(@NotNull Java8Parser.StatementExpressionListContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#literal}.
	 *
	 * @param ctx the parse tree
	 */
	void enterLiteral(@NotNull Java8Parser.LiteralContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#literal}.
	 *
	 * @param ctx the parse tree
	 */
	void exitLiteral(@NotNull Java8Parser.LiteralContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#interfaceMemberDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void enterInterfaceMemberDeclaration(@NotNull Java8Parser.InterfaceMemberDeclarationContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#interfaceMemberDeclaration}.
	 *
	 * @param ctx the parse tree
	 */
	void exitInterfaceMemberDeclaration(@NotNull Java8Parser.InterfaceMemberDeclarationContext ctx);

	/**
	 * Enter a parse tree produced by {@link Java8Parser#switchBlockStatementGroup}.
	 *
	 * @param ctx the parse tree
	 */
	void enterSwitchBlockStatementGroup(@NotNull Java8Parser.SwitchBlockStatementGroupContext ctx);

	/**
	 * Exit a parse tree produced by {@link Java8Parser#switchBlockStatementGroup}.
	 *
	 * @param ctx the parse tree
	 */
	void exitSwitchBlockStatementGroup(@NotNull Java8Parser.SwitchBlockStatementGroupContext ctx);
}