All Downloads are FREE. Search and download functionalities are using the official Maven repository.

src2cpg_3.4.0.84.source-code.RubyParserListener Maven / Gradle / Ivy

There is a newer version: 4.0.78
Show newest version
// Generated from /home/runner/work/joern/joern/joern-cli/frontends/rubysrc2cpg/src/main/antlr4/io/joern/rubysrc2cpg/parser/RubyParser.g4 by ANTLR 4.7.2

    package io.joern.rubysrc2cpg.parser;

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

/**
 * This interface defines a complete listener for a parse tree produced by
 * {@link RubyParser}.
 */
public interface RubyParserListener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by {@link RubyParser#program}.
	 * @param ctx the parse tree
	 */
	void enterProgram(RubyParser.ProgramContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#program}.
	 * @param ctx the parse tree
	 */
	void exitProgram(RubyParser.ProgramContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#compoundStatement}.
	 * @param ctx the parse tree
	 */
	void enterCompoundStatement(RubyParser.CompoundStatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#compoundStatement}.
	 * @param ctx the parse tree
	 */
	void exitCompoundStatement(RubyParser.CompoundStatementContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#statements}.
	 * @param ctx the parse tree
	 */
	void enterStatements(RubyParser.StatementsContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#statements}.
	 * @param ctx the parse tree
	 */
	void exitStatements(RubyParser.StatementsContext ctx);
	/**
	 * Enter a parse tree produced by the {@code singleAssignmentStatementStatement}
	 * labeled alternative in {@link RubyParser#statement}.
	 * @param ctx the parse tree
	 */
	void enterSingleAssignmentStatementStatement(RubyParser.SingleAssignmentStatementStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code singleAssignmentStatementStatement}
	 * labeled alternative in {@link RubyParser#statement}.
	 * @param ctx the parse tree
	 */
	void exitSingleAssignmentStatementStatement(RubyParser.SingleAssignmentStatementStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code modifierStatement}
	 * labeled alternative in {@link RubyParser#statement}.
	 * @param ctx the parse tree
	 */
	void enterModifierStatement(RubyParser.ModifierStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code modifierStatement}
	 * labeled alternative in {@link RubyParser#statement}.
	 * @param ctx the parse tree
	 */
	void exitModifierStatement(RubyParser.ModifierStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code aliasStatement}
	 * labeled alternative in {@link RubyParser#statement}.
	 * @param ctx the parse tree
	 */
	void enterAliasStatement(RubyParser.AliasStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code aliasStatement}
	 * labeled alternative in {@link RubyParser#statement}.
	 * @param ctx the parse tree
	 */
	void exitAliasStatement(RubyParser.AliasStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code undefStatement}
	 * labeled alternative in {@link RubyParser#statement}.
	 * @param ctx the parse tree
	 */
	void enterUndefStatement(RubyParser.UndefStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code undefStatement}
	 * labeled alternative in {@link RubyParser#statement}.
	 * @param ctx the parse tree
	 */
	void exitUndefStatement(RubyParser.UndefStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code expressionOrCommandStatement}
	 * labeled alternative in {@link RubyParser#statement}.
	 * @param ctx the parse tree
	 */
	void enterExpressionOrCommandStatement(RubyParser.ExpressionOrCommandStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code expressionOrCommandStatement}
	 * labeled alternative in {@link RubyParser#statement}.
	 * @param ctx the parse tree
	 */
	void exitExpressionOrCommandStatement(RubyParser.ExpressionOrCommandStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code multipleAssignmentStatementStatement}
	 * labeled alternative in {@link RubyParser#statement}.
	 * @param ctx the parse tree
	 */
	void enterMultipleAssignmentStatementStatement(RubyParser.MultipleAssignmentStatementStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code multipleAssignmentStatementStatement}
	 * labeled alternative in {@link RubyParser#statement}.
	 * @param ctx the parse tree
	 */
	void exitMultipleAssignmentStatementStatement(RubyParser.MultipleAssignmentStatementStatementContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#definedMethodNameOrSymbol}.
	 * @param ctx the parse tree
	 */
	void enterDefinedMethodNameOrSymbol(RubyParser.DefinedMethodNameOrSymbolContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#definedMethodNameOrSymbol}.
	 * @param ctx the parse tree
	 */
	void exitDefinedMethodNameOrSymbol(RubyParser.DefinedMethodNameOrSymbolContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#singleAssignmentStatement}.
	 * @param ctx the parse tree
	 */
	void enterSingleAssignmentStatement(RubyParser.SingleAssignmentStatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#singleAssignmentStatement}.
	 * @param ctx the parse tree
	 */
	void exitSingleAssignmentStatement(RubyParser.SingleAssignmentStatementContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#multipleAssignmentStatement}.
	 * @param ctx the parse tree
	 */
	void enterMultipleAssignmentStatement(RubyParser.MultipleAssignmentStatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#multipleAssignmentStatement}.
	 * @param ctx the parse tree
	 */
	void exitMultipleAssignmentStatement(RubyParser.MultipleAssignmentStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code variableLeftHandSide}
	 * labeled alternative in {@link RubyParser#leftHandSide}.
	 * @param ctx the parse tree
	 */
	void enterVariableLeftHandSide(RubyParser.VariableLeftHandSideContext ctx);
	/**
	 * Exit a parse tree produced by the {@code variableLeftHandSide}
	 * labeled alternative in {@link RubyParser#leftHandSide}.
	 * @param ctx the parse tree
	 */
	void exitVariableLeftHandSide(RubyParser.VariableLeftHandSideContext ctx);
	/**
	 * Enter a parse tree produced by the {@code indexingLeftHandSide}
	 * labeled alternative in {@link RubyParser#leftHandSide}.
	 * @param ctx the parse tree
	 */
	void enterIndexingLeftHandSide(RubyParser.IndexingLeftHandSideContext ctx);
	/**
	 * Exit a parse tree produced by the {@code indexingLeftHandSide}
	 * labeled alternative in {@link RubyParser#leftHandSide}.
	 * @param ctx the parse tree
	 */
	void exitIndexingLeftHandSide(RubyParser.IndexingLeftHandSideContext ctx);
	/**
	 * Enter a parse tree produced by the {@code memberAccessLeftHandSide}
	 * labeled alternative in {@link RubyParser#leftHandSide}.
	 * @param ctx the parse tree
	 */
	void enterMemberAccessLeftHandSide(RubyParser.MemberAccessLeftHandSideContext ctx);
	/**
	 * Exit a parse tree produced by the {@code memberAccessLeftHandSide}
	 * labeled alternative in {@link RubyParser#leftHandSide}.
	 * @param ctx the parse tree
	 */
	void exitMemberAccessLeftHandSide(RubyParser.MemberAccessLeftHandSideContext ctx);
	/**
	 * Enter a parse tree produced by the {@code qualifiedLeftHandSide}
	 * labeled alternative in {@link RubyParser#leftHandSide}.
	 * @param ctx the parse tree
	 */
	void enterQualifiedLeftHandSide(RubyParser.QualifiedLeftHandSideContext ctx);
	/**
	 * Exit a parse tree produced by the {@code qualifiedLeftHandSide}
	 * labeled alternative in {@link RubyParser#leftHandSide}.
	 * @param ctx the parse tree
	 */
	void exitQualifiedLeftHandSide(RubyParser.QualifiedLeftHandSideContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#multipleLeftHandSide}.
	 * @param ctx the parse tree
	 */
	void enterMultipleLeftHandSide(RubyParser.MultipleLeftHandSideContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#multipleLeftHandSide}.
	 * @param ctx the parse tree
	 */
	void exitMultipleLeftHandSide(RubyParser.MultipleLeftHandSideContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#multipleLeftHandSideExceptPacking}.
	 * @param ctx the parse tree
	 */
	void enterMultipleLeftHandSideExceptPacking(RubyParser.MultipleLeftHandSideExceptPackingContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#multipleLeftHandSideExceptPacking}.
	 * @param ctx the parse tree
	 */
	void exitMultipleLeftHandSideExceptPacking(RubyParser.MultipleLeftHandSideExceptPackingContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#packingLeftHandSide}.
	 * @param ctx the parse tree
	 */
	void enterPackingLeftHandSide(RubyParser.PackingLeftHandSideContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#packingLeftHandSide}.
	 * @param ctx the parse tree
	 */
	void exitPackingLeftHandSide(RubyParser.PackingLeftHandSideContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#groupedLeftHandSide}.
	 * @param ctx the parse tree
	 */
	void enterGroupedLeftHandSide(RubyParser.GroupedLeftHandSideContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#groupedLeftHandSide}.
	 * @param ctx the parse tree
	 */
	void exitGroupedLeftHandSide(RubyParser.GroupedLeftHandSideContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#multipleLeftHandSideItem}.
	 * @param ctx the parse tree
	 */
	void enterMultipleLeftHandSideItem(RubyParser.MultipleLeftHandSideItemContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#multipleLeftHandSideItem}.
	 * @param ctx the parse tree
	 */
	void exitMultipleLeftHandSideItem(RubyParser.MultipleLeftHandSideItemContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#multipleRightHandSide}.
	 * @param ctx the parse tree
	 */
	void enterMultipleRightHandSide(RubyParser.MultipleRightHandSideContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#multipleRightHandSide}.
	 * @param ctx the parse tree
	 */
	void exitMultipleRightHandSide(RubyParser.MultipleRightHandSideContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#splattingRightHandSide}.
	 * @param ctx the parse tree
	 */
	void enterSplattingRightHandSide(RubyParser.SplattingRightHandSideContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#splattingRightHandSide}.
	 * @param ctx the parse tree
	 */
	void exitSplattingRightHandSide(RubyParser.SplattingRightHandSideContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#methodIdentifier}.
	 * @param ctx the parse tree
	 */
	void enterMethodIdentifier(RubyParser.MethodIdentifierContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#methodIdentifier}.
	 * @param ctx the parse tree
	 */
	void exitMethodIdentifier(RubyParser.MethodIdentifierContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#methodName}.
	 * @param ctx the parse tree
	 */
	void enterMethodName(RubyParser.MethodNameContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#methodName}.
	 * @param ctx the parse tree
	 */
	void exitMethodName(RubyParser.MethodNameContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#methodOnlyIdentifier}.
	 * @param ctx the parse tree
	 */
	void enterMethodOnlyIdentifier(RubyParser.MethodOnlyIdentifierContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#methodOnlyIdentifier}.
	 * @param ctx the parse tree
	 */
	void exitMethodOnlyIdentifier(RubyParser.MethodOnlyIdentifierContext ctx);
	/**
	 * Enter a parse tree produced by the {@code commandMethodInvocationWithoutParentheses}
	 * labeled alternative in {@link RubyParser#methodInvocationWithoutParentheses}.
	 * @param ctx the parse tree
	 */
	void enterCommandMethodInvocationWithoutParentheses(RubyParser.CommandMethodInvocationWithoutParenthesesContext ctx);
	/**
	 * Exit a parse tree produced by the {@code commandMethodInvocationWithoutParentheses}
	 * labeled alternative in {@link RubyParser#methodInvocationWithoutParentheses}.
	 * @param ctx the parse tree
	 */
	void exitCommandMethodInvocationWithoutParentheses(RubyParser.CommandMethodInvocationWithoutParenthesesContext ctx);
	/**
	 * Enter a parse tree produced by the {@code chainedMethodInvocationWithoutParentheses}
	 * labeled alternative in {@link RubyParser#methodInvocationWithoutParentheses}.
	 * @param ctx the parse tree
	 */
	void enterChainedMethodInvocationWithoutParentheses(RubyParser.ChainedMethodInvocationWithoutParenthesesContext ctx);
	/**
	 * Exit a parse tree produced by the {@code chainedMethodInvocationWithoutParentheses}
	 * labeled alternative in {@link RubyParser#methodInvocationWithoutParentheses}.
	 * @param ctx the parse tree
	 */
	void exitChainedMethodInvocationWithoutParentheses(RubyParser.ChainedMethodInvocationWithoutParenthesesContext ctx);
	/**
	 * Enter a parse tree produced by the {@code returnMethodInvocationWithoutParentheses}
	 * labeled alternative in {@link RubyParser#methodInvocationWithoutParentheses}.
	 * @param ctx the parse tree
	 */
	void enterReturnMethodInvocationWithoutParentheses(RubyParser.ReturnMethodInvocationWithoutParenthesesContext ctx);
	/**
	 * Exit a parse tree produced by the {@code returnMethodInvocationWithoutParentheses}
	 * labeled alternative in {@link RubyParser#methodInvocationWithoutParentheses}.
	 * @param ctx the parse tree
	 */
	void exitReturnMethodInvocationWithoutParentheses(RubyParser.ReturnMethodInvocationWithoutParenthesesContext ctx);
	/**
	 * Enter a parse tree produced by the {@code breakMethodInvocationWithoutParentheses}
	 * labeled alternative in {@link RubyParser#methodInvocationWithoutParentheses}.
	 * @param ctx the parse tree
	 */
	void enterBreakMethodInvocationWithoutParentheses(RubyParser.BreakMethodInvocationWithoutParenthesesContext ctx);
	/**
	 * Exit a parse tree produced by the {@code breakMethodInvocationWithoutParentheses}
	 * labeled alternative in {@link RubyParser#methodInvocationWithoutParentheses}.
	 * @param ctx the parse tree
	 */
	void exitBreakMethodInvocationWithoutParentheses(RubyParser.BreakMethodInvocationWithoutParenthesesContext ctx);
	/**
	 * Enter a parse tree produced by the {@code nextMethodInvocationWithoutParentheses}
	 * labeled alternative in {@link RubyParser#methodInvocationWithoutParentheses}.
	 * @param ctx the parse tree
	 */
	void enterNextMethodInvocationWithoutParentheses(RubyParser.NextMethodInvocationWithoutParenthesesContext ctx);
	/**
	 * Exit a parse tree produced by the {@code nextMethodInvocationWithoutParentheses}
	 * labeled alternative in {@link RubyParser#methodInvocationWithoutParentheses}.
	 * @param ctx the parse tree
	 */
	void exitNextMethodInvocationWithoutParentheses(RubyParser.NextMethodInvocationWithoutParenthesesContext ctx);
	/**
	 * Enter a parse tree produced by the {@code yieldMethodInvocationWithoutParentheses}
	 * labeled alternative in {@link RubyParser#methodInvocationWithoutParentheses}.
	 * @param ctx the parse tree
	 */
	void enterYieldMethodInvocationWithoutParentheses(RubyParser.YieldMethodInvocationWithoutParenthesesContext ctx);
	/**
	 * Exit a parse tree produced by the {@code yieldMethodInvocationWithoutParentheses}
	 * labeled alternative in {@link RubyParser#methodInvocationWithoutParentheses}.
	 * @param ctx the parse tree
	 */
	void exitYieldMethodInvocationWithoutParentheses(RubyParser.YieldMethodInvocationWithoutParenthesesContext ctx);
	/**
	 * Enter a parse tree produced by the {@code commandTernaryOperatorExpression}
	 * labeled alternative in {@link RubyParser#command}.
	 * @param ctx the parse tree
	 */
	void enterCommandTernaryOperatorExpression(RubyParser.CommandTernaryOperatorExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code commandTernaryOperatorExpression}
	 * labeled alternative in {@link RubyParser#command}.
	 * @param ctx the parse tree
	 */
	void exitCommandTernaryOperatorExpression(RubyParser.CommandTernaryOperatorExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code memberAccessCommand}
	 * labeled alternative in {@link RubyParser#command}.
	 * @param ctx the parse tree
	 */
	void enterMemberAccessCommand(RubyParser.MemberAccessCommandContext ctx);
	/**
	 * Exit a parse tree produced by the {@code memberAccessCommand}
	 * labeled alternative in {@link RubyParser#command}.
	 * @param ctx the parse tree
	 */
	void exitMemberAccessCommand(RubyParser.MemberAccessCommandContext ctx);
	/**
	 * Enter a parse tree produced by the {@code simpleCommand}
	 * labeled alternative in {@link RubyParser#command}.
	 * @param ctx the parse tree
	 */
	void enterSimpleCommand(RubyParser.SimpleCommandContext ctx);
	/**
	 * Exit a parse tree produced by the {@code simpleCommand}
	 * labeled alternative in {@link RubyParser#command}.
	 * @param ctx the parse tree
	 */
	void exitSimpleCommand(RubyParser.SimpleCommandContext ctx);
	/**
	 * Enter a parse tree produced by the {@code commandArgumentCommandArgumentList}
	 * labeled alternative in {@link RubyParser#commandArgument}.
	 * @param ctx the parse tree
	 */
	void enterCommandArgumentCommandArgumentList(RubyParser.CommandArgumentCommandArgumentListContext ctx);
	/**
	 * Exit a parse tree produced by the {@code commandArgumentCommandArgumentList}
	 * labeled alternative in {@link RubyParser#commandArgument}.
	 * @param ctx the parse tree
	 */
	void exitCommandArgumentCommandArgumentList(RubyParser.CommandArgumentCommandArgumentListContext ctx);
	/**
	 * Enter a parse tree produced by the {@code commandCommandArgumentList}
	 * labeled alternative in {@link RubyParser#commandArgument}.
	 * @param ctx the parse tree
	 */
	void enterCommandCommandArgumentList(RubyParser.CommandCommandArgumentListContext ctx);
	/**
	 * Exit a parse tree produced by the {@code commandCommandArgumentList}
	 * labeled alternative in {@link RubyParser#commandArgument}.
	 * @param ctx the parse tree
	 */
	void exitCommandCommandArgumentList(RubyParser.CommandCommandArgumentListContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#chainedCommandWithDoBlock}.
	 * @param ctx the parse tree
	 */
	void enterChainedCommandWithDoBlock(RubyParser.ChainedCommandWithDoBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#chainedCommandWithDoBlock}.
	 * @param ctx the parse tree
	 */
	void exitChainedCommandWithDoBlock(RubyParser.ChainedCommandWithDoBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#chainedMethodInvocation}.
	 * @param ctx the parse tree
	 */
	void enterChainedMethodInvocation(RubyParser.ChainedMethodInvocationContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#chainedMethodInvocation}.
	 * @param ctx the parse tree
	 */
	void exitChainedMethodInvocation(RubyParser.ChainedMethodInvocationContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#commandWithDoBlock}.
	 * @param ctx the parse tree
	 */
	void enterCommandWithDoBlock(RubyParser.CommandWithDoBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#commandWithDoBlock}.
	 * @param ctx the parse tree
	 */
	void exitCommandWithDoBlock(RubyParser.CommandWithDoBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#bracketedArrayElementList}.
	 * @param ctx the parse tree
	 */
	void enterBracketedArrayElementList(RubyParser.BracketedArrayElementListContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#bracketedArrayElementList}.
	 * @param ctx the parse tree
	 */
	void exitBracketedArrayElementList(RubyParser.BracketedArrayElementListContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#bracketedArrayElement}.
	 * @param ctx the parse tree
	 */
	void enterBracketedArrayElement(RubyParser.BracketedArrayElementContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#bracketedArrayElement}.
	 * @param ctx the parse tree
	 */
	void exitBracketedArrayElement(RubyParser.BracketedArrayElementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code operatorExpressionListIndexingArgumentList}
	 * labeled alternative in {@link RubyParser#indexingArgumentList}.
	 * @param ctx the parse tree
	 */
	void enterOperatorExpressionListIndexingArgumentList(RubyParser.OperatorExpressionListIndexingArgumentListContext ctx);
	/**
	 * Exit a parse tree produced by the {@code operatorExpressionListIndexingArgumentList}
	 * labeled alternative in {@link RubyParser#indexingArgumentList}.
	 * @param ctx the parse tree
	 */
	void exitOperatorExpressionListIndexingArgumentList(RubyParser.OperatorExpressionListIndexingArgumentListContext ctx);
	/**
	 * Enter a parse tree produced by the {@code operatorExpressionListWithSplattingArgumentIndexingArgumentList}
	 * labeled alternative in {@link RubyParser#indexingArgumentList}.
	 * @param ctx the parse tree
	 */
	void enterOperatorExpressionListWithSplattingArgumentIndexingArgumentList(RubyParser.OperatorExpressionListWithSplattingArgumentIndexingArgumentListContext ctx);
	/**
	 * Exit a parse tree produced by the {@code operatorExpressionListWithSplattingArgumentIndexingArgumentList}
	 * labeled alternative in {@link RubyParser#indexingArgumentList}.
	 * @param ctx the parse tree
	 */
	void exitOperatorExpressionListWithSplattingArgumentIndexingArgumentList(RubyParser.OperatorExpressionListWithSplattingArgumentIndexingArgumentListContext ctx);
	/**
	 * Enter a parse tree produced by the {@code indexingArgumentIndexingArgumentList}
	 * labeled alternative in {@link RubyParser#indexingArgumentList}.
	 * @param ctx the parse tree
	 */
	void enterIndexingArgumentIndexingArgumentList(RubyParser.IndexingArgumentIndexingArgumentListContext ctx);
	/**
	 * Exit a parse tree produced by the {@code indexingArgumentIndexingArgumentList}
	 * labeled alternative in {@link RubyParser#indexingArgumentList}.
	 * @param ctx the parse tree
	 */
	void exitIndexingArgumentIndexingArgumentList(RubyParser.IndexingArgumentIndexingArgumentListContext ctx);
	/**
	 * Enter a parse tree produced by the {@code associationListIndexingArgumentList}
	 * labeled alternative in {@link RubyParser#indexingArgumentList}.
	 * @param ctx the parse tree
	 */
	void enterAssociationListIndexingArgumentList(RubyParser.AssociationListIndexingArgumentListContext ctx);
	/**
	 * Exit a parse tree produced by the {@code associationListIndexingArgumentList}
	 * labeled alternative in {@link RubyParser#indexingArgumentList}.
	 * @param ctx the parse tree
	 */
	void exitAssociationListIndexingArgumentList(RubyParser.AssociationListIndexingArgumentListContext ctx);
	/**
	 * Enter a parse tree produced by the {@code splattingArgumentIndexingArgumentList}
	 * labeled alternative in {@link RubyParser#indexingArgumentList}.
	 * @param ctx the parse tree
	 */
	void enterSplattingArgumentIndexingArgumentList(RubyParser.SplattingArgumentIndexingArgumentListContext ctx);
	/**
	 * Exit a parse tree produced by the {@code splattingArgumentIndexingArgumentList}
	 * labeled alternative in {@link RubyParser#indexingArgumentList}.
	 * @param ctx the parse tree
	 */
	void exitSplattingArgumentIndexingArgumentList(RubyParser.SplattingArgumentIndexingArgumentListContext ctx);
	/**
	 * Enter a parse tree produced by the {@code symbolIndexingArgument}
	 * labeled alternative in {@link RubyParser#indexingArgument}.
	 * @param ctx the parse tree
	 */
	void enterSymbolIndexingArgument(RubyParser.SymbolIndexingArgumentContext ctx);
	/**
	 * Exit a parse tree produced by the {@code symbolIndexingArgument}
	 * labeled alternative in {@link RubyParser#indexingArgument}.
	 * @param ctx the parse tree
	 */
	void exitSymbolIndexingArgument(RubyParser.SymbolIndexingArgumentContext ctx);
	/**
	 * Enter a parse tree produced by the {@code associationIndexingArgument}
	 * labeled alternative in {@link RubyParser#indexingArgument}.
	 * @param ctx the parse tree
	 */
	void enterAssociationIndexingArgument(RubyParser.AssociationIndexingArgumentContext ctx);
	/**
	 * Exit a parse tree produced by the {@code associationIndexingArgument}
	 * labeled alternative in {@link RubyParser#indexingArgument}.
	 * @param ctx the parse tree
	 */
	void exitAssociationIndexingArgument(RubyParser.AssociationIndexingArgumentContext ctx);
	/**
	 * Enter a parse tree produced by the {@code numericLiteralIndexingArgument}
	 * labeled alternative in {@link RubyParser#indexingArgument}.
	 * @param ctx the parse tree
	 */
	void enterNumericLiteralIndexingArgument(RubyParser.NumericLiteralIndexingArgumentContext ctx);
	/**
	 * Exit a parse tree produced by the {@code numericLiteralIndexingArgument}
	 * labeled alternative in {@link RubyParser#indexingArgument}.
	 * @param ctx the parse tree
	 */
	void exitNumericLiteralIndexingArgument(RubyParser.NumericLiteralIndexingArgumentContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#splattingArgument}.
	 * @param ctx the parse tree
	 */
	void enterSplattingArgument(RubyParser.SplattingArgumentContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#splattingArgument}.
	 * @param ctx the parse tree
	 */
	void exitSplattingArgument(RubyParser.SplattingArgumentContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#operatorExpressionList}.
	 * @param ctx the parse tree
	 */
	void enterOperatorExpressionList(RubyParser.OperatorExpressionListContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#operatorExpressionList}.
	 * @param ctx the parse tree
	 */
	void exitOperatorExpressionList(RubyParser.OperatorExpressionListContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#operatorExpressionList2}.
	 * @param ctx the parse tree
	 */
	void enterOperatorExpressionList2(RubyParser.OperatorExpressionList2Context ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#operatorExpressionList2}.
	 * @param ctx the parse tree
	 */
	void exitOperatorExpressionList2(RubyParser.OperatorExpressionList2Context ctx);
	/**
	 * Enter a parse tree produced by the {@code emptyArgumentWithParentheses}
	 * labeled alternative in {@link RubyParser#argumentWithParentheses}.
	 * @param ctx the parse tree
	 */
	void enterEmptyArgumentWithParentheses(RubyParser.EmptyArgumentWithParenthesesContext ctx);
	/**
	 * Exit a parse tree produced by the {@code emptyArgumentWithParentheses}
	 * labeled alternative in {@link RubyParser#argumentWithParentheses}.
	 * @param ctx the parse tree
	 */
	void exitEmptyArgumentWithParentheses(RubyParser.EmptyArgumentWithParenthesesContext ctx);
	/**
	 * Enter a parse tree produced by the {@code argumentListArgumentWithParentheses}
	 * labeled alternative in {@link RubyParser#argumentWithParentheses}.
	 * @param ctx the parse tree
	 */
	void enterArgumentListArgumentWithParentheses(RubyParser.ArgumentListArgumentWithParenthesesContext ctx);
	/**
	 * Exit a parse tree produced by the {@code argumentListArgumentWithParentheses}
	 * labeled alternative in {@link RubyParser#argumentWithParentheses}.
	 * @param ctx the parse tree
	 */
	void exitArgumentListArgumentWithParentheses(RubyParser.ArgumentListArgumentWithParenthesesContext ctx);
	/**
	 * Enter a parse tree produced by the {@code operatorExpressionsAndChainedCommandWithBlockArgumentWithParentheses}
	 * labeled alternative in {@link RubyParser#argumentWithParentheses}.
	 * @param ctx the parse tree
	 */
	void enterOperatorExpressionsAndChainedCommandWithBlockArgumentWithParentheses(RubyParser.OperatorExpressionsAndChainedCommandWithBlockArgumentWithParenthesesContext ctx);
	/**
	 * Exit a parse tree produced by the {@code operatorExpressionsAndChainedCommandWithBlockArgumentWithParentheses}
	 * labeled alternative in {@link RubyParser#argumentWithParentheses}.
	 * @param ctx the parse tree
	 */
	void exitOperatorExpressionsAndChainedCommandWithBlockArgumentWithParentheses(RubyParser.OperatorExpressionsAndChainedCommandWithBlockArgumentWithParenthesesContext ctx);
	/**
	 * Enter a parse tree produced by the {@code chainedCommandWithDoBlockArgumentWithParentheses}
	 * labeled alternative in {@link RubyParser#argumentWithParentheses}.
	 * @param ctx the parse tree
	 */
	void enterChainedCommandWithDoBlockArgumentWithParentheses(RubyParser.ChainedCommandWithDoBlockArgumentWithParenthesesContext ctx);
	/**
	 * Exit a parse tree produced by the {@code chainedCommandWithDoBlockArgumentWithParentheses}
	 * labeled alternative in {@link RubyParser#argumentWithParentheses}.
	 * @param ctx the parse tree
	 */
	void exitChainedCommandWithDoBlockArgumentWithParentheses(RubyParser.ChainedCommandWithDoBlockArgumentWithParenthesesContext ctx);
	/**
	 * Enter a parse tree produced by the {@code blockArgumentArgumentList}
	 * labeled alternative in {@link RubyParser#argumentList}.
	 * @param ctx the parse tree
	 */
	void enterBlockArgumentArgumentList(RubyParser.BlockArgumentArgumentListContext ctx);
	/**
	 * Exit a parse tree produced by the {@code blockArgumentArgumentList}
	 * labeled alternative in {@link RubyParser#argumentList}.
	 * @param ctx the parse tree
	 */
	void exitBlockArgumentArgumentList(RubyParser.BlockArgumentArgumentListContext ctx);
	/**
	 * Enter a parse tree produced by the {@code splattingArgumentArgumentList}
	 * labeled alternative in {@link RubyParser#argumentList}.
	 * @param ctx the parse tree
	 */
	void enterSplattingArgumentArgumentList(RubyParser.SplattingArgumentArgumentListContext ctx);
	/**
	 * Exit a parse tree produced by the {@code splattingArgumentArgumentList}
	 * labeled alternative in {@link RubyParser#argumentList}.
	 * @param ctx the parse tree
	 */
	void exitSplattingArgumentArgumentList(RubyParser.SplattingArgumentArgumentListContext ctx);
	/**
	 * Enter a parse tree produced by the {@code operatorsArgumentList}
	 * labeled alternative in {@link RubyParser#argumentList}.
	 * @param ctx the parse tree
	 */
	void enterOperatorsArgumentList(RubyParser.OperatorsArgumentListContext ctx);
	/**
	 * Exit a parse tree produced by the {@code operatorsArgumentList}
	 * labeled alternative in {@link RubyParser#argumentList}.
	 * @param ctx the parse tree
	 */
	void exitOperatorsArgumentList(RubyParser.OperatorsArgumentListContext ctx);
	/**
	 * Enter a parse tree produced by the {@code associationsArgumentList}
	 * labeled alternative in {@link RubyParser#argumentList}.
	 * @param ctx the parse tree
	 */
	void enterAssociationsArgumentList(RubyParser.AssociationsArgumentListContext ctx);
	/**
	 * Exit a parse tree produced by the {@code associationsArgumentList}
	 * labeled alternative in {@link RubyParser#argumentList}.
	 * @param ctx the parse tree
	 */
	void exitAssociationsArgumentList(RubyParser.AssociationsArgumentListContext ctx);
	/**
	 * Enter a parse tree produced by the {@code arrayArgumentList}
	 * labeled alternative in {@link RubyParser#argumentList}.
	 * @param ctx the parse tree
	 */
	void enterArrayArgumentList(RubyParser.ArrayArgumentListContext ctx);
	/**
	 * Exit a parse tree produced by the {@code arrayArgumentList}
	 * labeled alternative in {@link RubyParser#argumentList}.
	 * @param ctx the parse tree
	 */
	void exitArrayArgumentList(RubyParser.ArrayArgumentListContext ctx);
	/**
	 * Enter a parse tree produced by the {@code singleCommandArgumentList}
	 * labeled alternative in {@link RubyParser#argumentList}.
	 * @param ctx the parse tree
	 */
	void enterSingleCommandArgumentList(RubyParser.SingleCommandArgumentListContext ctx);
	/**
	 * Exit a parse tree produced by the {@code singleCommandArgumentList}
	 * labeled alternative in {@link RubyParser#argumentList}.
	 * @param ctx the parse tree
	 */
	void exitSingleCommandArgumentList(RubyParser.SingleCommandArgumentListContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#splatArgList}.
	 * @param ctx the parse tree
	 */
	void enterSplatArgList(RubyParser.SplatArgListContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#splatArgList}.
	 * @param ctx the parse tree
	 */
	void exitSplatArgList(RubyParser.SplatArgListContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#commandArgumentList}.
	 * @param ctx the parse tree
	 */
	void enterCommandArgumentList(RubyParser.CommandArgumentListContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#commandArgumentList}.
	 * @param ctx the parse tree
	 */
	void exitCommandArgumentList(RubyParser.CommandArgumentListContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#primaryValueList}.
	 * @param ctx the parse tree
	 */
	void enterPrimaryValueList(RubyParser.PrimaryValueListContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#primaryValueList}.
	 * @param ctx the parse tree
	 */
	void exitPrimaryValueList(RubyParser.PrimaryValueListContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#primaryValueListWithAssociation}.
	 * @param ctx the parse tree
	 */
	void enterPrimaryValueListWithAssociation(RubyParser.PrimaryValueListWithAssociationContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#primaryValueListWithAssociation}.
	 * @param ctx the parse tree
	 */
	void exitPrimaryValueListWithAssociation(RubyParser.PrimaryValueListWithAssociationContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#blockArgument}.
	 * @param ctx the parse tree
	 */
	void enterBlockArgument(RubyParser.BlockArgumentContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#blockArgument}.
	 * @param ctx the parse tree
	 */
	void exitBlockArgument(RubyParser.BlockArgumentContext ctx);
	/**
	 * Enter a parse tree produced by the {@code operatorExpressionOrCommand}
	 * labeled alternative in {@link RubyParser#expressionOrCommand}.
	 * @param ctx the parse tree
	 */
	void enterOperatorExpressionOrCommand(RubyParser.OperatorExpressionOrCommandContext ctx);
	/**
	 * Exit a parse tree produced by the {@code operatorExpressionOrCommand}
	 * labeled alternative in {@link RubyParser#expressionOrCommand}.
	 * @param ctx the parse tree
	 */
	void exitOperatorExpressionOrCommand(RubyParser.OperatorExpressionOrCommandContext ctx);
	/**
	 * Enter a parse tree produced by the {@code notExpressionOrCommand}
	 * labeled alternative in {@link RubyParser#expressionOrCommand}.
	 * @param ctx the parse tree
	 */
	void enterNotExpressionOrCommand(RubyParser.NotExpressionOrCommandContext ctx);
	/**
	 * Exit a parse tree produced by the {@code notExpressionOrCommand}
	 * labeled alternative in {@link RubyParser#expressionOrCommand}.
	 * @param ctx the parse tree
	 */
	void exitNotExpressionOrCommand(RubyParser.NotExpressionOrCommandContext ctx);
	/**
	 * Enter a parse tree produced by the {@code keywordAndOrExpressionOrCommand}
	 * labeled alternative in {@link RubyParser#expressionOrCommand}.
	 * @param ctx the parse tree
	 */
	void enterKeywordAndOrExpressionOrCommand(RubyParser.KeywordAndOrExpressionOrCommandContext ctx);
	/**
	 * Exit a parse tree produced by the {@code keywordAndOrExpressionOrCommand}
	 * labeled alternative in {@link RubyParser#expressionOrCommand}.
	 * @param ctx the parse tree
	 */
	void exitKeywordAndOrExpressionOrCommand(RubyParser.KeywordAndOrExpressionOrCommandContext ctx);
	/**
	 * Enter a parse tree produced by the {@code commandExpressionOrCommand}
	 * labeled alternative in {@link RubyParser#expressionOrCommand}.
	 * @param ctx the parse tree
	 */
	void enterCommandExpressionOrCommand(RubyParser.CommandExpressionOrCommandContext ctx);
	/**
	 * Exit a parse tree produced by the {@code commandExpressionOrCommand}
	 * labeled alternative in {@link RubyParser#expressionOrCommand}.
	 * @param ctx the parse tree
	 */
	void exitCommandExpressionOrCommand(RubyParser.CommandExpressionOrCommandContext ctx);
	/**
	 * Enter a parse tree produced by the {@code ternaryOperatorExpression}
	 * labeled alternative in {@link RubyParser#operatorExpression}.
	 * @param ctx the parse tree
	 */
	void enterTernaryOperatorExpression(RubyParser.TernaryOperatorExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code ternaryOperatorExpression}
	 * labeled alternative in {@link RubyParser#operatorExpression}.
	 * @param ctx the parse tree
	 */
	void exitTernaryOperatorExpression(RubyParser.TernaryOperatorExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code primaryOperatorExpression}
	 * labeled alternative in {@link RubyParser#operatorExpression}.
	 * @param ctx the parse tree
	 */
	void enterPrimaryOperatorExpression(RubyParser.PrimaryOperatorExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code primaryOperatorExpression}
	 * labeled alternative in {@link RubyParser#operatorExpression}.
	 * @param ctx the parse tree
	 */
	void exitPrimaryOperatorExpression(RubyParser.PrimaryOperatorExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code returnWithoutArguments}
	 * labeled alternative in {@link RubyParser#primary}.
	 * @param ctx the parse tree
	 */
	void enterReturnWithoutArguments(RubyParser.ReturnWithoutArgumentsContext ctx);
	/**
	 * Exit a parse tree produced by the {@code returnWithoutArguments}
	 * labeled alternative in {@link RubyParser#primary}.
	 * @param ctx the parse tree
	 */
	void exitReturnWithoutArguments(RubyParser.ReturnWithoutArgumentsContext ctx);
	/**
	 * Enter a parse tree produced by the {@code breakWithoutArguments}
	 * labeled alternative in {@link RubyParser#primary}.
	 * @param ctx the parse tree
	 */
	void enterBreakWithoutArguments(RubyParser.BreakWithoutArgumentsContext ctx);
	/**
	 * Exit a parse tree produced by the {@code breakWithoutArguments}
	 * labeled alternative in {@link RubyParser#primary}.
	 * @param ctx the parse tree
	 */
	void exitBreakWithoutArguments(RubyParser.BreakWithoutArgumentsContext ctx);
	/**
	 * Enter a parse tree produced by the {@code nextWithoutArguments}
	 * labeled alternative in {@link RubyParser#primary}.
	 * @param ctx the parse tree
	 */
	void enterNextWithoutArguments(RubyParser.NextWithoutArgumentsContext ctx);
	/**
	 * Exit a parse tree produced by the {@code nextWithoutArguments}
	 * labeled alternative in {@link RubyParser#primary}.
	 * @param ctx the parse tree
	 */
	void exitNextWithoutArguments(RubyParser.NextWithoutArgumentsContext ctx);
	/**
	 * Enter a parse tree produced by the {@code redoWithoutArguments}
	 * labeled alternative in {@link RubyParser#primary}.
	 * @param ctx the parse tree
	 */
	void enterRedoWithoutArguments(RubyParser.RedoWithoutArgumentsContext ctx);
	/**
	 * Exit a parse tree produced by the {@code redoWithoutArguments}
	 * labeled alternative in {@link RubyParser#primary}.
	 * @param ctx the parse tree
	 */
	void exitRedoWithoutArguments(RubyParser.RedoWithoutArgumentsContext ctx);
	/**
	 * Enter a parse tree produced by the {@code retryWithoutArguments}
	 * labeled alternative in {@link RubyParser#primary}.
	 * @param ctx the parse tree
	 */
	void enterRetryWithoutArguments(RubyParser.RetryWithoutArgumentsContext ctx);
	/**
	 * Exit a parse tree produced by the {@code retryWithoutArguments}
	 * labeled alternative in {@link RubyParser#primary}.
	 * @param ctx the parse tree
	 */
	void exitRetryWithoutArguments(RubyParser.RetryWithoutArgumentsContext ctx);
	/**
	 * Enter a parse tree produced by the {@code primaryValuePrimary}
	 * labeled alternative in {@link RubyParser#primary}.
	 * @param ctx the parse tree
	 */
	void enterPrimaryValuePrimary(RubyParser.PrimaryValuePrimaryContext ctx);
	/**
	 * Exit a parse tree produced by the {@code primaryValuePrimary}
	 * labeled alternative in {@link RubyParser#primary}.
	 * @param ctx the parse tree
	 */
	void exitPrimaryValuePrimary(RubyParser.PrimaryValuePrimaryContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#hashLiteral}.
	 * @param ctx the parse tree
	 */
	void enterHashLiteral(RubyParser.HashLiteralContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#hashLiteral}.
	 * @param ctx the parse tree
	 */
	void exitHashLiteral(RubyParser.HashLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code methodDefinition}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterMethodDefinition(RubyParser.MethodDefinitionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code methodDefinition}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitMethodDefinition(RubyParser.MethodDefinitionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code beginEndExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterBeginEndExpression(RubyParser.BeginEndExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code beginEndExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitBeginEndExpression(RubyParser.BeginEndExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code indexingAccessExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterIndexingAccessExpression(RubyParser.IndexingAccessExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code indexingAccessExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitIndexingAccessExpression(RubyParser.IndexingAccessExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code constantAssignmentExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterConstantAssignmentExpression(RubyParser.ConstantAssignmentExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code constantAssignmentExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitConstantAssignmentExpression(RubyParser.ConstantAssignmentExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code untilExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterUntilExpression(RubyParser.UntilExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code untilExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitUntilExpression(RubyParser.UntilExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code boundedRangeExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterBoundedRangeExpression(RubyParser.BoundedRangeExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code boundedRangeExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitBoundedRangeExpression(RubyParser.BoundedRangeExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code moduleDefinition}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterModuleDefinition(RubyParser.ModuleDefinitionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code moduleDefinition}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitModuleDefinition(RubyParser.ModuleDefinitionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code singletonMethodDefinition}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterSingletonMethodDefinition(RubyParser.SingletonMethodDefinitionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code singletonMethodDefinition}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitSingletonMethodDefinition(RubyParser.SingletonMethodDefinitionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code bitwiseAndExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterBitwiseAndExpression(RubyParser.BitwiseAndExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code bitwiseAndExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitBitwiseAndExpression(RubyParser.BitwiseAndExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code logicalAndExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterLogicalAndExpression(RubyParser.LogicalAndExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code logicalAndExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitLogicalAndExpression(RubyParser.LogicalAndExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code memberAccessExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterMemberAccessExpression(RubyParser.MemberAccessExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code memberAccessExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitMemberAccessExpression(RubyParser.MemberAccessExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code unaryExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterUnaryExpression(RubyParser.UnaryExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code unaryExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitUnaryExpression(RubyParser.UnaryExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code numericLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterNumericLiteral(RubyParser.NumericLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code numericLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitNumericLiteral(RubyParser.NumericLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code classDefinition}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterClassDefinition(RubyParser.ClassDefinitionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code classDefinition}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitClassDefinition(RubyParser.ClassDefinitionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code quotedExpandedSymbolArrayLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterQuotedExpandedSymbolArrayLiteral(RubyParser.QuotedExpandedSymbolArrayLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code quotedExpandedSymbolArrayLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitQuotedExpandedSymbolArrayLiteral(RubyParser.QuotedExpandedSymbolArrayLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code forExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterForExpression(RubyParser.ForExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code forExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitForExpression(RubyParser.ForExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code bracketedArrayLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterBracketedArrayLiteral(RubyParser.BracketedArrayLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code bracketedArrayLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitBracketedArrayLiteral(RubyParser.BracketedArrayLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code lambdaExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterLambdaExpression(RubyParser.LambdaExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code lambdaExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitLambdaExpression(RubyParser.LambdaExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code caseWithoutExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterCaseWithoutExpression(RubyParser.CaseWithoutExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code caseWithoutExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitCaseWithoutExpression(RubyParser.CaseWithoutExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code quotedNonExpandedStringLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterQuotedNonExpandedStringLiteral(RubyParser.QuotedNonExpandedStringLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code quotedNonExpandedStringLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitQuotedNonExpandedStringLiteral(RubyParser.QuotedNonExpandedStringLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code shiftExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterShiftExpression(RubyParser.ShiftExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code shiftExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitShiftExpression(RubyParser.ShiftExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code endlessMethodDefinition}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterEndlessMethodDefinition(RubyParser.EndlessMethodDefinitionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code endlessMethodDefinition}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitEndlessMethodDefinition(RubyParser.EndlessMethodDefinitionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code quotedExpandedExternalCommandLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterQuotedExpandedExternalCommandLiteral(RubyParser.QuotedExpandedExternalCommandLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code quotedExpandedExternalCommandLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitQuotedExpandedExternalCommandLiteral(RubyParser.QuotedExpandedExternalCommandLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code regularExpressionLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterRegularExpressionLiteral(RubyParser.RegularExpressionLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code regularExpressionLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitRegularExpressionLiteral(RubyParser.RegularExpressionLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code beginlessRangeExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterBeginlessRangeExpression(RubyParser.BeginlessRangeExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code beginlessRangeExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitBeginlessRangeExpression(RubyParser.BeginlessRangeExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code powerExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterPowerExpression(RubyParser.PowerExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code powerExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitPowerExpression(RubyParser.PowerExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code quotedNonExpandedSymbolArrayLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterQuotedNonExpandedSymbolArrayLiteral(RubyParser.QuotedNonExpandedSymbolArrayLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code quotedNonExpandedSymbolArrayLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitQuotedNonExpandedSymbolArrayLiteral(RubyParser.QuotedNonExpandedSymbolArrayLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code bitwiseOrExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterBitwiseOrExpression(RubyParser.BitwiseOrExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code bitwiseOrExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitBitwiseOrExpression(RubyParser.BitwiseOrExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code quotedExpandedStringLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterQuotedExpandedStringLiteral(RubyParser.QuotedExpandedStringLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code quotedExpandedStringLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitQuotedExpandedStringLiteral(RubyParser.QuotedExpandedStringLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code attributeAssignmentExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterAttributeAssignmentExpression(RubyParser.AttributeAssignmentExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code attributeAssignmentExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitAttributeAssignmentExpression(RubyParser.AttributeAssignmentExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code equalityExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterEqualityExpression(RubyParser.EqualityExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code equalityExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitEqualityExpression(RubyParser.EqualityExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code bracketAssignmentExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterBracketAssignmentExpression(RubyParser.BracketAssignmentExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code bracketAssignmentExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitBracketAssignmentExpression(RubyParser.BracketAssignmentExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code endlessRangeExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterEndlessRangeExpression(RubyParser.EndlessRangeExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code endlessRangeExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitEndlessRangeExpression(RubyParser.EndlessRangeExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code additiveExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterAdditiveExpression(RubyParser.AdditiveExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code additiveExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitAdditiveExpression(RubyParser.AdditiveExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code relationalExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterRelationalExpression(RubyParser.RelationalExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code relationalExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitRelationalExpression(RubyParser.RelationalExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code localVariableAssignmentExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterLocalVariableAssignmentExpression(RubyParser.LocalVariableAssignmentExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code localVariableAssignmentExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitLocalVariableAssignmentExpression(RubyParser.LocalVariableAssignmentExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code hereDocs}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterHereDocs(RubyParser.HereDocsContext ctx);
	/**
	 * Exit a parse tree produced by the {@code hereDocs}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitHereDocs(RubyParser.HereDocsContext ctx);
	/**
	 * Enter a parse tree produced by the {@code assignmentWithRescue}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterAssignmentWithRescue(RubyParser.AssignmentWithRescueContext ctx);
	/**
	 * Exit a parse tree produced by the {@code assignmentWithRescue}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitAssignmentWithRescue(RubyParser.AssignmentWithRescueContext ctx);
	/**
	 * Enter a parse tree produced by the {@code methodCallWithParentheses}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterMethodCallWithParentheses(RubyParser.MethodCallWithParenthesesContext ctx);
	/**
	 * Exit a parse tree produced by the {@code methodCallWithParentheses}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitMethodCallWithParentheses(RubyParser.MethodCallWithParenthesesContext ctx);
	/**
	 * Enter a parse tree produced by the {@code groupingStatement}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterGroupingStatement(RubyParser.GroupingStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code groupingStatement}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitGroupingStatement(RubyParser.GroupingStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code ifExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterIfExpression(RubyParser.IfExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code ifExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitIfExpression(RubyParser.IfExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code quotedNonExpandedStringArrayLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterQuotedNonExpandedStringArrayLiteral(RubyParser.QuotedNonExpandedStringArrayLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code quotedNonExpandedStringArrayLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitQuotedNonExpandedStringArrayLiteral(RubyParser.QuotedNonExpandedStringArrayLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code unlessExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterUnlessExpression(RubyParser.UnlessExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code unlessExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitUnlessExpression(RubyParser.UnlessExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code singletonClassDefinition}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterSingletonClassDefinition(RubyParser.SingletonClassDefinitionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code singletonClassDefinition}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitSingletonClassDefinition(RubyParser.SingletonClassDefinitionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code quotedExpandedStringArrayLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterQuotedExpandedStringArrayLiteral(RubyParser.QuotedExpandedStringArrayLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code quotedExpandedStringArrayLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitQuotedExpandedStringArrayLiteral(RubyParser.QuotedExpandedStringArrayLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code quotedExpandedRegularExpressionLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterQuotedExpandedRegularExpressionLiteral(RubyParser.QuotedExpandedRegularExpressionLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code quotedExpandedRegularExpressionLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitQuotedExpandedRegularExpressionLiteral(RubyParser.QuotedExpandedRegularExpressionLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code whileExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterWhileExpression(RubyParser.WhileExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code whileExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitWhileExpression(RubyParser.WhileExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code singleQuotedStringExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterSingleQuotedStringExpression(RubyParser.SingleQuotedStringExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code singleQuotedStringExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitSingleQuotedStringExpression(RubyParser.SingleQuotedStringExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code primaryValueHashLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterPrimaryValueHashLiteral(RubyParser.PrimaryValueHashLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code primaryValueHashLiteral}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitPrimaryValueHashLiteral(RubyParser.PrimaryValueHashLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code multiplicativeExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterMultiplicativeExpression(RubyParser.MultiplicativeExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code multiplicativeExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitMultiplicativeExpression(RubyParser.MultiplicativeExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code logicalOrExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterLogicalOrExpression(RubyParser.LogicalOrExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code logicalOrExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitLogicalOrExpression(RubyParser.LogicalOrExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code unaryMinusExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterUnaryMinusExpression(RubyParser.UnaryMinusExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code unaryMinusExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitUnaryMinusExpression(RubyParser.UnaryMinusExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code symbolExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterSymbolExpression(RubyParser.SymbolExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code symbolExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitSymbolExpression(RubyParser.SymbolExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code doubleQuotedStringExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterDoubleQuotedStringExpression(RubyParser.DoubleQuotedStringExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code doubleQuotedStringExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitDoubleQuotedStringExpression(RubyParser.DoubleQuotedStringExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code yieldExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterYieldExpression(RubyParser.YieldExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code yieldExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitYieldExpression(RubyParser.YieldExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code caseWithExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void enterCaseWithExpression(RubyParser.CaseWithExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code caseWithExpression}
	 * labeled alternative in {@link RubyParser#primaryValue}.
	 * @param ctx the parse tree
	 */
	void exitCaseWithExpression(RubyParser.CaseWithExpressionContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#lambdaExpressionParameterList}.
	 * @param ctx the parse tree
	 */
	void enterLambdaExpressionParameterList(RubyParser.LambdaExpressionParameterListContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#lambdaExpressionParameterList}.
	 * @param ctx the parse tree
	 */
	void exitLambdaExpressionParameterList(RubyParser.LambdaExpressionParameterListContext ctx);
	/**
	 * Enter a parse tree produced by the {@code superWithParentheses}
	 * labeled alternative in {@link RubyParser#methodCallsWithParentheses}.
	 * @param ctx the parse tree
	 */
	void enterSuperWithParentheses(RubyParser.SuperWithParenthesesContext ctx);
	/**
	 * Exit a parse tree produced by the {@code superWithParentheses}
	 * labeled alternative in {@link RubyParser#methodCallsWithParentheses}.
	 * @param ctx the parse tree
	 */
	void exitSuperWithParentheses(RubyParser.SuperWithParenthesesContext ctx);
	/**
	 * Enter a parse tree produced by the {@code superWithoutParentheses}
	 * labeled alternative in {@link RubyParser#methodCallsWithParentheses}.
	 * @param ctx the parse tree
	 */
	void enterSuperWithoutParentheses(RubyParser.SuperWithoutParenthesesContext ctx);
	/**
	 * Exit a parse tree produced by the {@code superWithoutParentheses}
	 * labeled alternative in {@link RubyParser#methodCallsWithParentheses}.
	 * @param ctx the parse tree
	 */
	void exitSuperWithoutParentheses(RubyParser.SuperWithoutParenthesesContext ctx);
	/**
	 * Enter a parse tree produced by the {@code isDefinedExpression}
	 * labeled alternative in {@link RubyParser#methodCallsWithParentheses}.
	 * @param ctx the parse tree
	 */
	void enterIsDefinedExpression(RubyParser.IsDefinedExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code isDefinedExpression}
	 * labeled alternative in {@link RubyParser#methodCallsWithParentheses}.
	 * @param ctx the parse tree
	 */
	void exitIsDefinedExpression(RubyParser.IsDefinedExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code isDefinedCommand}
	 * labeled alternative in {@link RubyParser#methodCallsWithParentheses}.
	 * @param ctx the parse tree
	 */
	void enterIsDefinedCommand(RubyParser.IsDefinedCommandContext ctx);
	/**
	 * Exit a parse tree produced by the {@code isDefinedCommand}
	 * labeled alternative in {@link RubyParser#methodCallsWithParentheses}.
	 * @param ctx the parse tree
	 */
	void exitIsDefinedCommand(RubyParser.IsDefinedCommandContext ctx);
	/**
	 * Enter a parse tree produced by the {@code methodCallExpression}
	 * labeled alternative in {@link RubyParser#methodCallsWithParentheses}.
	 * @param ctx the parse tree
	 */
	void enterMethodCallExpression(RubyParser.MethodCallExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code methodCallExpression}
	 * labeled alternative in {@link RubyParser#methodCallsWithParentheses}.
	 * @param ctx the parse tree
	 */
	void exitMethodCallExpression(RubyParser.MethodCallExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code methodCallWithBlockExpression}
	 * labeled alternative in {@link RubyParser#methodCallsWithParentheses}.
	 * @param ctx the parse tree
	 */
	void enterMethodCallWithBlockExpression(RubyParser.MethodCallWithBlockExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code methodCallWithBlockExpression}
	 * labeled alternative in {@link RubyParser#methodCallsWithParentheses}.
	 * @param ctx the parse tree
	 */
	void exitMethodCallWithBlockExpression(RubyParser.MethodCallWithBlockExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code methodCallWithParenthesesExpression}
	 * labeled alternative in {@link RubyParser#methodCallsWithParentheses}.
	 * @param ctx the parse tree
	 */
	void enterMethodCallWithParenthesesExpression(RubyParser.MethodCallWithParenthesesExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code methodCallWithParenthesesExpression}
	 * labeled alternative in {@link RubyParser#methodCallsWithParentheses}.
	 * @param ctx the parse tree
	 */
	void exitMethodCallWithParenthesesExpression(RubyParser.MethodCallWithParenthesesExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code methodCallOrVariableReference}
	 * labeled alternative in {@link RubyParser#methodCallsWithParentheses}.
	 * @param ctx the parse tree
	 */
	void enterMethodCallOrVariableReference(RubyParser.MethodCallOrVariableReferenceContext ctx);
	/**
	 * Exit a parse tree produced by the {@code methodCallOrVariableReference}
	 * labeled alternative in {@link RubyParser#methodCallsWithParentheses}.
	 * @param ctx the parse tree
	 */
	void exitMethodCallOrVariableReference(RubyParser.MethodCallOrVariableReferenceContext ctx);
	/**
	 * Enter a parse tree produced by the {@code commandCommandOrPrimaryValueClass}
	 * labeled alternative in {@link RubyParser#commandOrPrimaryValueClass}.
	 * @param ctx the parse tree
	 */
	void enterCommandCommandOrPrimaryValueClass(RubyParser.CommandCommandOrPrimaryValueClassContext ctx);
	/**
	 * Exit a parse tree produced by the {@code commandCommandOrPrimaryValueClass}
	 * labeled alternative in {@link RubyParser#commandOrPrimaryValueClass}.
	 * @param ctx the parse tree
	 */
	void exitCommandCommandOrPrimaryValueClass(RubyParser.CommandCommandOrPrimaryValueClassContext ctx);
	/**
	 * Enter a parse tree produced by the {@code primaryValueCommandOrPrimaryValueClass}
	 * labeled alternative in {@link RubyParser#commandOrPrimaryValueClass}.
	 * @param ctx the parse tree
	 */
	void enterPrimaryValueCommandOrPrimaryValueClass(RubyParser.PrimaryValueCommandOrPrimaryValueClassContext ctx);
	/**
	 * Exit a parse tree produced by the {@code primaryValueCommandOrPrimaryValueClass}
	 * labeled alternative in {@link RubyParser#commandOrPrimaryValueClass}.
	 * @param ctx the parse tree
	 */
	void exitPrimaryValueCommandOrPrimaryValueClass(RubyParser.PrimaryValueCommandOrPrimaryValueClassContext ctx);
	/**
	 * Enter a parse tree produced by the {@code keywordAndOrCommandOrPrimaryValue}
	 * labeled alternative in {@link RubyParser#commandOrPrimaryValue}.
	 * @param ctx the parse tree
	 */
	void enterKeywordAndOrCommandOrPrimaryValue(RubyParser.KeywordAndOrCommandOrPrimaryValueContext ctx);
	/**
	 * Exit a parse tree produced by the {@code keywordAndOrCommandOrPrimaryValue}
	 * labeled alternative in {@link RubyParser#commandOrPrimaryValue}.
	 * @param ctx the parse tree
	 */
	void exitKeywordAndOrCommandOrPrimaryValue(RubyParser.KeywordAndOrCommandOrPrimaryValueContext ctx);
	/**
	 * Enter a parse tree produced by the {@code commandCommandOrPrimaryValue}
	 * labeled alternative in {@link RubyParser#commandOrPrimaryValue}.
	 * @param ctx the parse tree
	 */
	void enterCommandCommandOrPrimaryValue(RubyParser.CommandCommandOrPrimaryValueContext ctx);
	/**
	 * Exit a parse tree produced by the {@code commandCommandOrPrimaryValue}
	 * labeled alternative in {@link RubyParser#commandOrPrimaryValue}.
	 * @param ctx the parse tree
	 */
	void exitCommandCommandOrPrimaryValue(RubyParser.CommandCommandOrPrimaryValueContext ctx);
	/**
	 * Enter a parse tree produced by the {@code notCommandOrPrimaryValue}
	 * labeled alternative in {@link RubyParser#commandOrPrimaryValue}.
	 * @param ctx the parse tree
	 */
	void enterNotCommandOrPrimaryValue(RubyParser.NotCommandOrPrimaryValueContext ctx);
	/**
	 * Exit a parse tree produced by the {@code notCommandOrPrimaryValue}
	 * labeled alternative in {@link RubyParser#commandOrPrimaryValue}.
	 * @param ctx the parse tree
	 */
	void exitNotCommandOrPrimaryValue(RubyParser.NotCommandOrPrimaryValueContext ctx);
	/**
	 * Enter a parse tree produced by the {@code primaryValueCommandOrPrimaryValue}
	 * labeled alternative in {@link RubyParser#commandOrPrimaryValue}.
	 * @param ctx the parse tree
	 */
	void enterPrimaryValueCommandOrPrimaryValue(RubyParser.PrimaryValueCommandOrPrimaryValueContext ctx);
	/**
	 * Exit a parse tree produced by the {@code primaryValueCommandOrPrimaryValue}
	 * labeled alternative in {@link RubyParser#commandOrPrimaryValue}.
	 * @param ctx the parse tree
	 */
	void exitPrimaryValueCommandOrPrimaryValue(RubyParser.PrimaryValueCommandOrPrimaryValueContext ctx);
	/**
	 * Enter a parse tree produced by the {@code curlyBracesBlock}
	 * labeled alternative in {@link RubyParser#block}.
	 * @param ctx the parse tree
	 */
	void enterCurlyBracesBlock(RubyParser.CurlyBracesBlockContext ctx);
	/**
	 * Exit a parse tree produced by the {@code curlyBracesBlock}
	 * labeled alternative in {@link RubyParser#block}.
	 * @param ctx the parse tree
	 */
	void exitCurlyBracesBlock(RubyParser.CurlyBracesBlockContext ctx);
	/**
	 * Enter a parse tree produced by the {@code doBlockBlock}
	 * labeled alternative in {@link RubyParser#block}.
	 * @param ctx the parse tree
	 */
	void enterDoBlockBlock(RubyParser.DoBlockBlockContext ctx);
	/**
	 * Exit a parse tree produced by the {@code doBlockBlock}
	 * labeled alternative in {@link RubyParser#block}.
	 * @param ctx the parse tree
	 */
	void exitDoBlockBlock(RubyParser.DoBlockBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#doBlock}.
	 * @param ctx the parse tree
	 */
	void enterDoBlock(RubyParser.DoBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#doBlock}.
	 * @param ctx the parse tree
	 */
	void exitDoBlock(RubyParser.DoBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#blockParameter}.
	 * @param ctx the parse tree
	 */
	void enterBlockParameter(RubyParser.BlockParameterContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#blockParameter}.
	 * @param ctx the parse tree
	 */
	void exitBlockParameter(RubyParser.BlockParameterContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#blockParameterList}.
	 * @param ctx the parse tree
	 */
	void enterBlockParameterList(RubyParser.BlockParameterListContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#blockParameterList}.
	 * @param ctx the parse tree
	 */
	void exitBlockParameterList(RubyParser.BlockParameterListContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#mandatoryOrOptionalOrGroupedParameterList}.
	 * @param ctx the parse tree
	 */
	void enterMandatoryOrOptionalOrGroupedParameterList(RubyParser.MandatoryOrOptionalOrGroupedParameterListContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#mandatoryOrOptionalOrGroupedParameterList}.
	 * @param ctx the parse tree
	 */
	void exitMandatoryOrOptionalOrGroupedParameterList(RubyParser.MandatoryOrOptionalOrGroupedParameterListContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#mandatoryOrOptionalOrGroupedParameter}.
	 * @param ctx the parse tree
	 */
	void enterMandatoryOrOptionalOrGroupedParameter(RubyParser.MandatoryOrOptionalOrGroupedParameterContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#mandatoryOrOptionalOrGroupedParameter}.
	 * @param ctx the parse tree
	 */
	void exitMandatoryOrOptionalOrGroupedParameter(RubyParser.MandatoryOrOptionalOrGroupedParameterContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#mandatoryOrGroupedParameterList}.
	 * @param ctx the parse tree
	 */
	void enterMandatoryOrGroupedParameterList(RubyParser.MandatoryOrGroupedParameterListContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#mandatoryOrGroupedParameterList}.
	 * @param ctx the parse tree
	 */
	void exitMandatoryOrGroupedParameterList(RubyParser.MandatoryOrGroupedParameterListContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#mandatoryOrGroupedParameter}.
	 * @param ctx the parse tree
	 */
	void enterMandatoryOrGroupedParameter(RubyParser.MandatoryOrGroupedParameterContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#mandatoryOrGroupedParameter}.
	 * @param ctx the parse tree
	 */
	void exitMandatoryOrGroupedParameter(RubyParser.MandatoryOrGroupedParameterContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#groupedParameterList}.
	 * @param ctx the parse tree
	 */
	void enterGroupedParameterList(RubyParser.GroupedParameterListContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#groupedParameterList}.
	 * @param ctx the parse tree
	 */
	void exitGroupedParameterList(RubyParser.GroupedParameterListContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#thenClause}.
	 * @param ctx the parse tree
	 */
	void enterThenClause(RubyParser.ThenClauseContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#thenClause}.
	 * @param ctx the parse tree
	 */
	void exitThenClause(RubyParser.ThenClauseContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#elseClause}.
	 * @param ctx the parse tree
	 */
	void enterElseClause(RubyParser.ElseClauseContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#elseClause}.
	 * @param ctx the parse tree
	 */
	void exitElseClause(RubyParser.ElseClauseContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#elsifClause}.
	 * @param ctx the parse tree
	 */
	void enterElsifClause(RubyParser.ElsifClauseContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#elsifClause}.
	 * @param ctx the parse tree
	 */
	void exitElsifClause(RubyParser.ElsifClauseContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#whenClause}.
	 * @param ctx the parse tree
	 */
	void enterWhenClause(RubyParser.WhenClauseContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#whenClause}.
	 * @param ctx the parse tree
	 */
	void exitWhenClause(RubyParser.WhenClauseContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#whenArgument}.
	 * @param ctx the parse tree
	 */
	void enterWhenArgument(RubyParser.WhenArgumentContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#whenArgument}.
	 * @param ctx the parse tree
	 */
	void exitWhenArgument(RubyParser.WhenArgumentContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#doClause}.
	 * @param ctx the parse tree
	 */
	void enterDoClause(RubyParser.DoClauseContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#doClause}.
	 * @param ctx the parse tree
	 */
	void exitDoClause(RubyParser.DoClauseContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#forVariable}.
	 * @param ctx the parse tree
	 */
	void enterForVariable(RubyParser.ForVariableContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#forVariable}.
	 * @param ctx the parse tree
	 */
	void exitForVariable(RubyParser.ForVariableContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#bodyStatement}.
	 * @param ctx the parse tree
	 */
	void enterBodyStatement(RubyParser.BodyStatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#bodyStatement}.
	 * @param ctx the parse tree
	 */
	void exitBodyStatement(RubyParser.BodyStatementContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#rescueClause}.
	 * @param ctx the parse tree
	 */
	void enterRescueClause(RubyParser.RescueClauseContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#rescueClause}.
	 * @param ctx the parse tree
	 */
	void exitRescueClause(RubyParser.RescueClauseContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#exceptionClassList}.
	 * @param ctx the parse tree
	 */
	void enterExceptionClassList(RubyParser.ExceptionClassListContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#exceptionClassList}.
	 * @param ctx the parse tree
	 */
	void exitExceptionClassList(RubyParser.ExceptionClassListContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#exceptionVariableAssignment}.
	 * @param ctx the parse tree
	 */
	void enterExceptionVariableAssignment(RubyParser.ExceptionVariableAssignmentContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#exceptionVariableAssignment}.
	 * @param ctx the parse tree
	 */
	void exitExceptionVariableAssignment(RubyParser.ExceptionVariableAssignmentContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#ensureClause}.
	 * @param ctx the parse tree
	 */
	void enterEnsureClause(RubyParser.EnsureClauseContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#ensureClause}.
	 * @param ctx the parse tree
	 */
	void exitEnsureClause(RubyParser.EnsureClauseContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#definedMethodName}.
	 * @param ctx the parse tree
	 */
	void enterDefinedMethodName(RubyParser.DefinedMethodNameContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#definedMethodName}.
	 * @param ctx the parse tree
	 */
	void exitDefinedMethodName(RubyParser.DefinedMethodNameContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#methodParameterPart}.
	 * @param ctx the parse tree
	 */
	void enterMethodParameterPart(RubyParser.MethodParameterPartContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#methodParameterPart}.
	 * @param ctx the parse tree
	 */
	void exitMethodParameterPart(RubyParser.MethodParameterPartContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#parameterList}.
	 * @param ctx the parse tree
	 */
	void enterParameterList(RubyParser.ParameterListContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#parameterList}.
	 * @param ctx the parse tree
	 */
	void exitParameterList(RubyParser.ParameterListContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#mandatoryOrOptionalParameterList}.
	 * @param ctx the parse tree
	 */
	void enterMandatoryOrOptionalParameterList(RubyParser.MandatoryOrOptionalParameterListContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#mandatoryOrOptionalParameterList}.
	 * @param ctx the parse tree
	 */
	void exitMandatoryOrOptionalParameterList(RubyParser.MandatoryOrOptionalParameterListContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#mandatoryParameterList}.
	 * @param ctx the parse tree
	 */
	void enterMandatoryParameterList(RubyParser.MandatoryParameterListContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#mandatoryParameterList}.
	 * @param ctx the parse tree
	 */
	void exitMandatoryParameterList(RubyParser.MandatoryParameterListContext ctx);
	/**
	 * Enter a parse tree produced by the {@code mandatoryMandatoryOrOptionalParameter}
	 * labeled alternative in {@link RubyParser#mandatoryOrOptionalParameter}.
	 * @param ctx the parse tree
	 */
	void enterMandatoryMandatoryOrOptionalParameter(RubyParser.MandatoryMandatoryOrOptionalParameterContext ctx);
	/**
	 * Exit a parse tree produced by the {@code mandatoryMandatoryOrOptionalParameter}
	 * labeled alternative in {@link RubyParser#mandatoryOrOptionalParameter}.
	 * @param ctx the parse tree
	 */
	void exitMandatoryMandatoryOrOptionalParameter(RubyParser.MandatoryMandatoryOrOptionalParameterContext ctx);
	/**
	 * Enter a parse tree produced by the {@code optionalMandatoryOrOptionalParameter}
	 * labeled alternative in {@link RubyParser#mandatoryOrOptionalParameter}.
	 * @param ctx the parse tree
	 */
	void enterOptionalMandatoryOrOptionalParameter(RubyParser.OptionalMandatoryOrOptionalParameterContext ctx);
	/**
	 * Exit a parse tree produced by the {@code optionalMandatoryOrOptionalParameter}
	 * labeled alternative in {@link RubyParser#mandatoryOrOptionalParameter}.
	 * @param ctx the parse tree
	 */
	void exitOptionalMandatoryOrOptionalParameter(RubyParser.OptionalMandatoryOrOptionalParameterContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#mandatoryParameter}.
	 * @param ctx the parse tree
	 */
	void enterMandatoryParameter(RubyParser.MandatoryParameterContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#mandatoryParameter}.
	 * @param ctx the parse tree
	 */
	void exitMandatoryParameter(RubyParser.MandatoryParameterContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#optionalParameter}.
	 * @param ctx the parse tree
	 */
	void enterOptionalParameter(RubyParser.OptionalParameterContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#optionalParameter}.
	 * @param ctx the parse tree
	 */
	void exitOptionalParameter(RubyParser.OptionalParameterContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#optionalParameterName}.
	 * @param ctx the parse tree
	 */
	void enterOptionalParameterName(RubyParser.OptionalParameterNameContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#optionalParameterName}.
	 * @param ctx the parse tree
	 */
	void exitOptionalParameterName(RubyParser.OptionalParameterNameContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#arrayParameter}.
	 * @param ctx the parse tree
	 */
	void enterArrayParameter(RubyParser.ArrayParameterContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#arrayParameter}.
	 * @param ctx the parse tree
	 */
	void exitArrayParameter(RubyParser.ArrayParameterContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#hashParameter}.
	 * @param ctx the parse tree
	 */
	void enterHashParameter(RubyParser.HashParameterContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#hashParameter}.
	 * @param ctx the parse tree
	 */
	void exitHashParameter(RubyParser.HashParameterContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#procParameter}.
	 * @param ctx the parse tree
	 */
	void enterProcParameter(RubyParser.ProcParameterContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#procParameter}.
	 * @param ctx the parse tree
	 */
	void exitProcParameter(RubyParser.ProcParameterContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#procParameterName}.
	 * @param ctx the parse tree
	 */
	void enterProcParameterName(RubyParser.ProcParameterNameContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#procParameterName}.
	 * @param ctx the parse tree
	 */
	void exitProcParameterName(RubyParser.ProcParameterNameContext ctx);
	/**
	 * Enter a parse tree produced by the {@code className}
	 * labeled alternative in {@link RubyParser#classPath}.
	 * @param ctx the parse tree
	 */
	void enterClassName(RubyParser.ClassNameContext ctx);
	/**
	 * Exit a parse tree produced by the {@code className}
	 * labeled alternative in {@link RubyParser#classPath}.
	 * @param ctx the parse tree
	 */
	void exitClassName(RubyParser.ClassNameContext ctx);
	/**
	 * Enter a parse tree produced by the {@code topClassPath}
	 * labeled alternative in {@link RubyParser#classPath}.
	 * @param ctx the parse tree
	 */
	void enterTopClassPath(RubyParser.TopClassPathContext ctx);
	/**
	 * Exit a parse tree produced by the {@code topClassPath}
	 * labeled alternative in {@link RubyParser#classPath}.
	 * @param ctx the parse tree
	 */
	void exitTopClassPath(RubyParser.TopClassPathContext ctx);
	/**
	 * Enter a parse tree produced by the {@code nestedClassPath}
	 * labeled alternative in {@link RubyParser#classPath}.
	 * @param ctx the parse tree
	 */
	void enterNestedClassPath(RubyParser.NestedClassPathContext ctx);
	/**
	 * Exit a parse tree produced by the {@code nestedClassPath}
	 * labeled alternative in {@link RubyParser#classPath}.
	 * @param ctx the parse tree
	 */
	void exitNestedClassPath(RubyParser.NestedClassPathContext ctx);
	/**
	 * Enter a parse tree produced by the {@code variableReferenceSingletonObject}
	 * labeled alternative in {@link RubyParser#singletonObject}.
	 * @param ctx the parse tree
	 */
	void enterVariableReferenceSingletonObject(RubyParser.VariableReferenceSingletonObjectContext ctx);
	/**
	 * Exit a parse tree produced by the {@code variableReferenceSingletonObject}
	 * labeled alternative in {@link RubyParser#singletonObject}.
	 * @param ctx the parse tree
	 */
	void exitVariableReferenceSingletonObject(RubyParser.VariableReferenceSingletonObjectContext ctx);
	/**
	 * Enter a parse tree produced by the {@code expressionSingletonObject}
	 * labeled alternative in {@link RubyParser#singletonObject}.
	 * @param ctx the parse tree
	 */
	void enterExpressionSingletonObject(RubyParser.ExpressionSingletonObjectContext ctx);
	/**
	 * Exit a parse tree produced by the {@code expressionSingletonObject}
	 * labeled alternative in {@link RubyParser#singletonObject}.
	 * @param ctx the parse tree
	 */
	void exitExpressionSingletonObject(RubyParser.ExpressionSingletonObjectContext ctx);
	/**
	 * Enter a parse tree produced by the {@code variableVariableReference}
	 * labeled alternative in {@link RubyParser#variableReference}.
	 * @param ctx the parse tree
	 */
	void enterVariableVariableReference(RubyParser.VariableVariableReferenceContext ctx);
	/**
	 * Exit a parse tree produced by the {@code variableVariableReference}
	 * labeled alternative in {@link RubyParser#variableReference}.
	 * @param ctx the parse tree
	 */
	void exitVariableVariableReference(RubyParser.VariableVariableReferenceContext ctx);
	/**
	 * Enter a parse tree produced by the {@code pseudoVariableVariableReference}
	 * labeled alternative in {@link RubyParser#variableReference}.
	 * @param ctx the parse tree
	 */
	void enterPseudoVariableVariableReference(RubyParser.PseudoVariableVariableReferenceContext ctx);
	/**
	 * Exit a parse tree produced by the {@code pseudoVariableVariableReference}
	 * labeled alternative in {@link RubyParser#variableReference}.
	 * @param ctx the parse tree
	 */
	void exitPseudoVariableVariableReference(RubyParser.PseudoVariableVariableReferenceContext ctx);
	/**
	 * Enter a parse tree produced by the {@code constantVariableReference}
	 * labeled alternative in {@link RubyParser#variableReference}.
	 * @param ctx the parse tree
	 */
	void enterConstantVariableReference(RubyParser.ConstantVariableReferenceContext ctx);
	/**
	 * Exit a parse tree produced by the {@code constantVariableReference}
	 * labeled alternative in {@link RubyParser#variableReference}.
	 * @param ctx the parse tree
	 */
	void exitConstantVariableReference(RubyParser.ConstantVariableReferenceContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#associationList}.
	 * @param ctx the parse tree
	 */
	void enterAssociationList(RubyParser.AssociationListContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#associationList}.
	 * @param ctx the parse tree
	 */
	void exitAssociationList(RubyParser.AssociationListContext ctx);
	/**
	 * Enter a parse tree produced by the {@code associationElement}
	 * labeled alternative in {@link RubyParser#association}.
	 * @param ctx the parse tree
	 */
	void enterAssociationElement(RubyParser.AssociationElementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code associationElement}
	 * labeled alternative in {@link RubyParser#association}.
	 * @param ctx the parse tree
	 */
	void exitAssociationElement(RubyParser.AssociationElementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code associationHashArg}
	 * labeled alternative in {@link RubyParser#association}.
	 * @param ctx the parse tree
	 */
	void enterAssociationHashArg(RubyParser.AssociationHashArgContext ctx);
	/**
	 * Exit a parse tree produced by the {@code associationHashArg}
	 * labeled alternative in {@link RubyParser#association}.
	 * @param ctx the parse tree
	 */
	void exitAssociationHashArg(RubyParser.AssociationHashArgContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#associationKey}.
	 * @param ctx the parse tree
	 */
	void enterAssociationKey(RubyParser.AssociationKeyContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#associationKey}.
	 * @param ctx the parse tree
	 */
	void exitAssociationKey(RubyParser.AssociationKeyContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#associationHashArgument}.
	 * @param ctx the parse tree
	 */
	void enterAssociationHashArgument(RubyParser.AssociationHashArgumentContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#associationHashArgument}.
	 * @param ctx the parse tree
	 */
	void exitAssociationHashArgument(RubyParser.AssociationHashArgumentContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#regexpLiteralContent}.
	 * @param ctx the parse tree
	 */
	void enterRegexpLiteralContent(RubyParser.RegexpLiteralContentContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#regexpLiteralContent}.
	 * @param ctx the parse tree
	 */
	void exitRegexpLiteralContent(RubyParser.RegexpLiteralContentContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#singleQuotedString}.
	 * @param ctx the parse tree
	 */
	void enterSingleQuotedString(RubyParser.SingleQuotedStringContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#singleQuotedString}.
	 * @param ctx the parse tree
	 */
	void exitSingleQuotedString(RubyParser.SingleQuotedStringContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#singleOrDoubleQuotedString}.
	 * @param ctx the parse tree
	 */
	void enterSingleOrDoubleQuotedString(RubyParser.SingleOrDoubleQuotedStringContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#singleOrDoubleQuotedString}.
	 * @param ctx the parse tree
	 */
	void exitSingleOrDoubleQuotedString(RubyParser.SingleOrDoubleQuotedStringContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#doubleQuotedString}.
	 * @param ctx the parse tree
	 */
	void enterDoubleQuotedString(RubyParser.DoubleQuotedStringContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#doubleQuotedString}.
	 * @param ctx the parse tree
	 */
	void exitDoubleQuotedString(RubyParser.DoubleQuotedStringContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#quotedExpandedExternalCommandString}.
	 * @param ctx the parse tree
	 */
	void enterQuotedExpandedExternalCommandString(RubyParser.QuotedExpandedExternalCommandStringContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#quotedExpandedExternalCommandString}.
	 * @param ctx the parse tree
	 */
	void exitQuotedExpandedExternalCommandString(RubyParser.QuotedExpandedExternalCommandStringContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#doubleQuotedStringContent}.
	 * @param ctx the parse tree
	 */
	void enterDoubleQuotedStringContent(RubyParser.DoubleQuotedStringContentContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#doubleQuotedStringContent}.
	 * @param ctx the parse tree
	 */
	void exitDoubleQuotedStringContent(RubyParser.DoubleQuotedStringContentContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#quotedNonExpandedLiteralString}.
	 * @param ctx the parse tree
	 */
	void enterQuotedNonExpandedLiteralString(RubyParser.QuotedNonExpandedLiteralStringContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#quotedNonExpandedLiteralString}.
	 * @param ctx the parse tree
	 */
	void exitQuotedNonExpandedLiteralString(RubyParser.QuotedNonExpandedLiteralStringContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#quotedExpandedLiteralString}.
	 * @param ctx the parse tree
	 */
	void enterQuotedExpandedLiteralString(RubyParser.QuotedExpandedLiteralStringContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#quotedExpandedLiteralString}.
	 * @param ctx the parse tree
	 */
	void exitQuotedExpandedLiteralString(RubyParser.QuotedExpandedLiteralStringContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#quotedExpandedLiteralStringContent}.
	 * @param ctx the parse tree
	 */
	void enterQuotedExpandedLiteralStringContent(RubyParser.QuotedExpandedLiteralStringContentContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#quotedExpandedLiteralStringContent}.
	 * @param ctx the parse tree
	 */
	void exitQuotedExpandedLiteralStringContent(RubyParser.QuotedExpandedLiteralStringContentContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#quotedNonExpandedArrayElementContent}.
	 * @param ctx the parse tree
	 */
	void enterQuotedNonExpandedArrayElementContent(RubyParser.QuotedNonExpandedArrayElementContentContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#quotedNonExpandedArrayElementContent}.
	 * @param ctx the parse tree
	 */
	void exitQuotedNonExpandedArrayElementContent(RubyParser.QuotedNonExpandedArrayElementContentContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#quotedExpandedArrayElementContent}.
	 * @param ctx the parse tree
	 */
	void enterQuotedExpandedArrayElementContent(RubyParser.QuotedExpandedArrayElementContentContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#quotedExpandedArrayElementContent}.
	 * @param ctx the parse tree
	 */
	void exitQuotedExpandedArrayElementContent(RubyParser.QuotedExpandedArrayElementContentContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#quotedExpandedArrayElement}.
	 * @param ctx the parse tree
	 */
	void enterQuotedExpandedArrayElement(RubyParser.QuotedExpandedArrayElementContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#quotedExpandedArrayElement}.
	 * @param ctx the parse tree
	 */
	void exitQuotedExpandedArrayElement(RubyParser.QuotedExpandedArrayElementContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#quotedNonExpandedArrayElementList}.
	 * @param ctx the parse tree
	 */
	void enterQuotedNonExpandedArrayElementList(RubyParser.QuotedNonExpandedArrayElementListContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#quotedNonExpandedArrayElementList}.
	 * @param ctx the parse tree
	 */
	void exitQuotedNonExpandedArrayElementList(RubyParser.QuotedNonExpandedArrayElementListContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#quotedExpandedArrayElementList}.
	 * @param ctx the parse tree
	 */
	void enterQuotedExpandedArrayElementList(RubyParser.QuotedExpandedArrayElementListContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#quotedExpandedArrayElementList}.
	 * @param ctx the parse tree
	 */
	void exitQuotedExpandedArrayElementList(RubyParser.QuotedExpandedArrayElementListContext ctx);
	/**
	 * Enter a parse tree produced by the {@code pureSymbolLiteral}
	 * labeled alternative in {@link RubyParser#symbol}.
	 * @param ctx the parse tree
	 */
	void enterPureSymbolLiteral(RubyParser.PureSymbolLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code pureSymbolLiteral}
	 * labeled alternative in {@link RubyParser#symbol}.
	 * @param ctx the parse tree
	 */
	void exitPureSymbolLiteral(RubyParser.PureSymbolLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code singleQuotedSymbolLiteral}
	 * labeled alternative in {@link RubyParser#symbol}.
	 * @param ctx the parse tree
	 */
	void enterSingleQuotedSymbolLiteral(RubyParser.SingleQuotedSymbolLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code singleQuotedSymbolLiteral}
	 * labeled alternative in {@link RubyParser#symbol}.
	 * @param ctx the parse tree
	 */
	void exitSingleQuotedSymbolLiteral(RubyParser.SingleQuotedSymbolLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code doubleQuotedSymbolLiteral}
	 * labeled alternative in {@link RubyParser#symbol}.
	 * @param ctx the parse tree
	 */
	void enterDoubleQuotedSymbolLiteral(RubyParser.DoubleQuotedSymbolLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code doubleQuotedSymbolLiteral}
	 * labeled alternative in {@link RubyParser#symbol}.
	 * @param ctx the parse tree
	 */
	void exitDoubleQuotedSymbolLiteral(RubyParser.DoubleQuotedSymbolLiteralContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#hereDoc}.
	 * @param ctx the parse tree
	 */
	void enterHereDoc(RubyParser.HereDocContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#hereDoc}.
	 * @param ctx the parse tree
	 */
	void exitHereDoc(RubyParser.HereDocContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#isDefinedKeyword}.
	 * @param ctx the parse tree
	 */
	void enterIsDefinedKeyword(RubyParser.IsDefinedKeywordContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#isDefinedKeyword}.
	 * @param ctx the parse tree
	 */
	void exitIsDefinedKeyword(RubyParser.IsDefinedKeywordContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#assignmentOperator}.
	 * @param ctx the parse tree
	 */
	void enterAssignmentOperator(RubyParser.AssignmentOperatorContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#assignmentOperator}.
	 * @param ctx the parse tree
	 */
	void exitAssignmentOperator(RubyParser.AssignmentOperatorContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#statementModifier}.
	 * @param ctx the parse tree
	 */
	void enterStatementModifier(RubyParser.StatementModifierContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#statementModifier}.
	 * @param ctx the parse tree
	 */
	void exitStatementModifier(RubyParser.StatementModifierContext ctx);
	/**
	 * Enter a parse tree produced by the {@code constantIdentifierVariable}
	 * labeled alternative in {@link RubyParser#variable}.
	 * @param ctx the parse tree
	 */
	void enterConstantIdentifierVariable(RubyParser.ConstantIdentifierVariableContext ctx);
	/**
	 * Exit a parse tree produced by the {@code constantIdentifierVariable}
	 * labeled alternative in {@link RubyParser#variable}.
	 * @param ctx the parse tree
	 */
	void exitConstantIdentifierVariable(RubyParser.ConstantIdentifierVariableContext ctx);
	/**
	 * Enter a parse tree produced by the {@code globalIdentifierVariable}
	 * labeled alternative in {@link RubyParser#variable}.
	 * @param ctx the parse tree
	 */
	void enterGlobalIdentifierVariable(RubyParser.GlobalIdentifierVariableContext ctx);
	/**
	 * Exit a parse tree produced by the {@code globalIdentifierVariable}
	 * labeled alternative in {@link RubyParser#variable}.
	 * @param ctx the parse tree
	 */
	void exitGlobalIdentifierVariable(RubyParser.GlobalIdentifierVariableContext ctx);
	/**
	 * Enter a parse tree produced by the {@code classIdentifierVariable}
	 * labeled alternative in {@link RubyParser#variable}.
	 * @param ctx the parse tree
	 */
	void enterClassIdentifierVariable(RubyParser.ClassIdentifierVariableContext ctx);
	/**
	 * Exit a parse tree produced by the {@code classIdentifierVariable}
	 * labeled alternative in {@link RubyParser#variable}.
	 * @param ctx the parse tree
	 */
	void exitClassIdentifierVariable(RubyParser.ClassIdentifierVariableContext ctx);
	/**
	 * Enter a parse tree produced by the {@code instanceIdentifierVariable}
	 * labeled alternative in {@link RubyParser#variable}.
	 * @param ctx the parse tree
	 */
	void enterInstanceIdentifierVariable(RubyParser.InstanceIdentifierVariableContext ctx);
	/**
	 * Exit a parse tree produced by the {@code instanceIdentifierVariable}
	 * labeled alternative in {@link RubyParser#variable}.
	 * @param ctx the parse tree
	 */
	void exitInstanceIdentifierVariable(RubyParser.InstanceIdentifierVariableContext ctx);
	/**
	 * Enter a parse tree produced by the {@code localIdentifierVariable}
	 * labeled alternative in {@link RubyParser#variable}.
	 * @param ctx the parse tree
	 */
	void enterLocalIdentifierVariable(RubyParser.LocalIdentifierVariableContext ctx);
	/**
	 * Exit a parse tree produced by the {@code localIdentifierVariable}
	 * labeled alternative in {@link RubyParser#variable}.
	 * @param ctx the parse tree
	 */
	void exitLocalIdentifierVariable(RubyParser.LocalIdentifierVariableContext ctx);
	/**
	 * Enter a parse tree produced by the {@code nilPseudoVariable}
	 * labeled alternative in {@link RubyParser#pseudoVariable}.
	 * @param ctx the parse tree
	 */
	void enterNilPseudoVariable(RubyParser.NilPseudoVariableContext ctx);
	/**
	 * Exit a parse tree produced by the {@code nilPseudoVariable}
	 * labeled alternative in {@link RubyParser#pseudoVariable}.
	 * @param ctx the parse tree
	 */
	void exitNilPseudoVariable(RubyParser.NilPseudoVariableContext ctx);
	/**
	 * Enter a parse tree produced by the {@code truePseudoVariable}
	 * labeled alternative in {@link RubyParser#pseudoVariable}.
	 * @param ctx the parse tree
	 */
	void enterTruePseudoVariable(RubyParser.TruePseudoVariableContext ctx);
	/**
	 * Exit a parse tree produced by the {@code truePseudoVariable}
	 * labeled alternative in {@link RubyParser#pseudoVariable}.
	 * @param ctx the parse tree
	 */
	void exitTruePseudoVariable(RubyParser.TruePseudoVariableContext ctx);
	/**
	 * Enter a parse tree produced by the {@code falsePseudoVariable}
	 * labeled alternative in {@link RubyParser#pseudoVariable}.
	 * @param ctx the parse tree
	 */
	void enterFalsePseudoVariable(RubyParser.FalsePseudoVariableContext ctx);
	/**
	 * Exit a parse tree produced by the {@code falsePseudoVariable}
	 * labeled alternative in {@link RubyParser#pseudoVariable}.
	 * @param ctx the parse tree
	 */
	void exitFalsePseudoVariable(RubyParser.FalsePseudoVariableContext ctx);
	/**
	 * Enter a parse tree produced by the {@code selfPseudoVariable}
	 * labeled alternative in {@link RubyParser#pseudoVariable}.
	 * @param ctx the parse tree
	 */
	void enterSelfPseudoVariable(RubyParser.SelfPseudoVariableContext ctx);
	/**
	 * Exit a parse tree produced by the {@code selfPseudoVariable}
	 * labeled alternative in {@link RubyParser#pseudoVariable}.
	 * @param ctx the parse tree
	 */
	void exitSelfPseudoVariable(RubyParser.SelfPseudoVariableContext ctx);
	/**
	 * Enter a parse tree produced by the {@code linePseudoVariable}
	 * labeled alternative in {@link RubyParser#pseudoVariable}.
	 * @param ctx the parse tree
	 */
	void enterLinePseudoVariable(RubyParser.LinePseudoVariableContext ctx);
	/**
	 * Exit a parse tree produced by the {@code linePseudoVariable}
	 * labeled alternative in {@link RubyParser#pseudoVariable}.
	 * @param ctx the parse tree
	 */
	void exitLinePseudoVariable(RubyParser.LinePseudoVariableContext ctx);
	/**
	 * Enter a parse tree produced by the {@code filePseudoVariable}
	 * labeled alternative in {@link RubyParser#pseudoVariable}.
	 * @param ctx the parse tree
	 */
	void enterFilePseudoVariable(RubyParser.FilePseudoVariableContext ctx);
	/**
	 * Exit a parse tree produced by the {@code filePseudoVariable}
	 * labeled alternative in {@link RubyParser#pseudoVariable}.
	 * @param ctx the parse tree
	 */
	void exitFilePseudoVariable(RubyParser.FilePseudoVariableContext ctx);
	/**
	 * Enter a parse tree produced by the {@code encodingPseudoVariable}
	 * labeled alternative in {@link RubyParser#pseudoVariable}.
	 * @param ctx the parse tree
	 */
	void enterEncodingPseudoVariable(RubyParser.EncodingPseudoVariableContext ctx);
	/**
	 * Exit a parse tree produced by the {@code encodingPseudoVariable}
	 * labeled alternative in {@link RubyParser#pseudoVariable}.
	 * @param ctx the parse tree
	 */
	void exitEncodingPseudoVariable(RubyParser.EncodingPseudoVariableContext ctx);
	/**
	 * Enter a parse tree produced by the {@code decimalUnsignedLiteral}
	 * labeled alternative in {@link RubyParser#unsignedNumericLiteral}.
	 * @param ctx the parse tree
	 */
	void enterDecimalUnsignedLiteral(RubyParser.DecimalUnsignedLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code decimalUnsignedLiteral}
	 * labeled alternative in {@link RubyParser#unsignedNumericLiteral}.
	 * @param ctx the parse tree
	 */
	void exitDecimalUnsignedLiteral(RubyParser.DecimalUnsignedLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code binaryUnsignedLiteral}
	 * labeled alternative in {@link RubyParser#unsignedNumericLiteral}.
	 * @param ctx the parse tree
	 */
	void enterBinaryUnsignedLiteral(RubyParser.BinaryUnsignedLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code binaryUnsignedLiteral}
	 * labeled alternative in {@link RubyParser#unsignedNumericLiteral}.
	 * @param ctx the parse tree
	 */
	void exitBinaryUnsignedLiteral(RubyParser.BinaryUnsignedLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code octalUnsignedLiteral}
	 * labeled alternative in {@link RubyParser#unsignedNumericLiteral}.
	 * @param ctx the parse tree
	 */
	void enterOctalUnsignedLiteral(RubyParser.OctalUnsignedLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code octalUnsignedLiteral}
	 * labeled alternative in {@link RubyParser#unsignedNumericLiteral}.
	 * @param ctx the parse tree
	 */
	void exitOctalUnsignedLiteral(RubyParser.OctalUnsignedLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code hexadecimalUnsignedLiteral}
	 * labeled alternative in {@link RubyParser#unsignedNumericLiteral}.
	 * @param ctx the parse tree
	 */
	void enterHexadecimalUnsignedLiteral(RubyParser.HexadecimalUnsignedLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code hexadecimalUnsignedLiteral}
	 * labeled alternative in {@link RubyParser#unsignedNumericLiteral}.
	 * @param ctx the parse tree
	 */
	void exitHexadecimalUnsignedLiteral(RubyParser.HexadecimalUnsignedLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code floatWithoutExponentUnsignedLiteral}
	 * labeled alternative in {@link RubyParser#unsignedNumericLiteral}.
	 * @param ctx the parse tree
	 */
	void enterFloatWithoutExponentUnsignedLiteral(RubyParser.FloatWithoutExponentUnsignedLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code floatWithoutExponentUnsignedLiteral}
	 * labeled alternative in {@link RubyParser#unsignedNumericLiteral}.
	 * @param ctx the parse tree
	 */
	void exitFloatWithoutExponentUnsignedLiteral(RubyParser.FloatWithoutExponentUnsignedLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code floatWithExponentUnsignedLiteral}
	 * labeled alternative in {@link RubyParser#unsignedNumericLiteral}.
	 * @param ctx the parse tree
	 */
	void enterFloatWithExponentUnsignedLiteral(RubyParser.FloatWithExponentUnsignedLiteralContext ctx);
	/**
	 * Exit a parse tree produced by the {@code floatWithExponentUnsignedLiteral}
	 * labeled alternative in {@link RubyParser#unsignedNumericLiteral}.
	 * @param ctx the parse tree
	 */
	void exitFloatWithExponentUnsignedLiteral(RubyParser.FloatWithExponentUnsignedLiteralContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#unaryOperator}.
	 * @param ctx the parse tree
	 */
	void enterUnaryOperator(RubyParser.UnaryOperatorContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#unaryOperator}.
	 * @param ctx the parse tree
	 */
	void exitUnaryOperator(RubyParser.UnaryOperatorContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#multiplicativeOperator}.
	 * @param ctx the parse tree
	 */
	void enterMultiplicativeOperator(RubyParser.MultiplicativeOperatorContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#multiplicativeOperator}.
	 * @param ctx the parse tree
	 */
	void exitMultiplicativeOperator(RubyParser.MultiplicativeOperatorContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#additiveOperator}.
	 * @param ctx the parse tree
	 */
	void enterAdditiveOperator(RubyParser.AdditiveOperatorContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#additiveOperator}.
	 * @param ctx the parse tree
	 */
	void exitAdditiveOperator(RubyParser.AdditiveOperatorContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#bitwiseShiftOperator}.
	 * @param ctx the parse tree
	 */
	void enterBitwiseShiftOperator(RubyParser.BitwiseShiftOperatorContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#bitwiseShiftOperator}.
	 * @param ctx the parse tree
	 */
	void exitBitwiseShiftOperator(RubyParser.BitwiseShiftOperatorContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#bitwiseOrOperator}.
	 * @param ctx the parse tree
	 */
	void enterBitwiseOrOperator(RubyParser.BitwiseOrOperatorContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#bitwiseOrOperator}.
	 * @param ctx the parse tree
	 */
	void exitBitwiseOrOperator(RubyParser.BitwiseOrOperatorContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#relationalOperator}.
	 * @param ctx the parse tree
	 */
	void enterRelationalOperator(RubyParser.RelationalOperatorContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#relationalOperator}.
	 * @param ctx the parse tree
	 */
	void exitRelationalOperator(RubyParser.RelationalOperatorContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#equalityOperator}.
	 * @param ctx the parse tree
	 */
	void enterEqualityOperator(RubyParser.EqualityOperatorContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#equalityOperator}.
	 * @param ctx the parse tree
	 */
	void exitEqualityOperator(RubyParser.EqualityOperatorContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#rangeOperator}.
	 * @param ctx the parse tree
	 */
	void enterRangeOperator(RubyParser.RangeOperatorContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#rangeOperator}.
	 * @param ctx the parse tree
	 */
	void exitRangeOperator(RubyParser.RangeOperatorContext ctx);
	/**
	 * Enter a parse tree produced by {@link RubyParser#keyword}.
	 * @param ctx the parse tree
	 */
	void enterKeyword(RubyParser.KeywordContext ctx);
	/**
	 * Exit a parse tree produced by {@link RubyParser#keyword}.
	 * @param ctx the parse tree
	 */
	void exitKeyword(RubyParser.KeywordContext ctx);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy