Class DefinitionListener
- All Implemented Interfaces:
org.antlr.v4.runtime.tree.ParseTreeListener, EK9Listener
-
Field Summary
Fields inherited from class AbstractEK9PhaseListener
symbolsAndScopes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidEnter a parse tree produced byEK9Parser.applicationDeclaration().voidEnter a parse tree produced by thebinaryLiterallabeled alternative inEK9Parser.literal().voidEnter a parse tree produced byEK9Parser.block().voidThis is just a normal statement or variable declaration within a block.voidEnter a parse tree produced by thebooleanLiterallabeled alternative inEK9Parser.literal().voidEnter a parse tree produced byEK9Parser.call().voidEnter a parse tree produced byEK9Parser.catchStatementExpression().voidEnter a parse tree produced by thecharacterLiterallabeled alternative inEK9Parser.literal().voidEnter a parse tree produced byEK9Parser.classDeclaration().voidEnter a parse tree produced by thecolourLiterallabeled alternative inEK9Parser.literal().voidEnter a parse tree produced byEK9Parser.componentDeclaration().voidEnter a parse tree produced byEK9Parser.constantDeclaration().voidEnter a parse tree produced by thedateLiterallabeled alternative inEK9Parser.literal().voidEnter a parse tree produced by thedateTimeLiterallabeled alternative inEK9Parser.literal().voidEnter a parse tree produced by thedecorationDimensionLiterallabeled alternative inEK9Parser.literal().voidEnter a parse tree produced by thedecorationResolutionLiterallabeled alternative inEK9Parser.literal().voidEnter a parse tree produced byEK9Parser.defaultOperator().voidEnter a parse tree produced byEK9Parser.dict().voidEnter a parse tree produced by thedurationLiterallabeled alternative inEK9Parser.literal().voidEnter a parse tree produced byEK9Parser.dynamicClassDeclaration().voidEnter a parse tree produced byEK9Parser.dynamicFunctionDeclaration().voidEnter a parse tree produced byEK9Parser.dynamicVariableCapture().voidEnter a parse tree produced byEK9Parser.enumerationDeclaration().voidEnter a parse tree produced byEK9Parser.finallyStatementExpression().voidEnter a parse tree produced by thefloatingPointLiterallabeled alternative inEK9Parser.literal().voidEnter a parse tree produced byEK9Parser.forLoop().voidEnter a parse tree produced byEK9Parser.forRange().voidEnter a parse tree produced byEK9Parser.forStatementExpression().voidEnter a parse tree produced byEK9Parser.functionDeclaration().voidNeed to create a local scope for the if statement so that it is possible to detect if all paths result in abnormal termination (i.e.voidEnter a parse tree produced byEK9Parser.initValuePair().voidThis is the main context for ek9 expressions and statements to be employed.voidEnter a parse tree produced by theintegerLiterallabeled alternative inEK9Parser.literal().voidEnter a parse tree produced byEK9Parser.list().voidEnter a parse tree produced byEK9Parser.methodDeclaration().voidEnter a parse tree produced by themillisecondLiterallabeled alternative inEK9Parser.literal().voidEnter a parse tree produced byEK9Parser.moduleDeclaration().voidEnter a parse tree produced by themoneyLiterallabeled alternative inEK9Parser.literal().voidEnter a parse tree produced byEK9Parser.operationCall().voidEnter a parse tree produced byEK9Parser.operatorDeclaration().voidEnter a parse tree produced byEK9Parser.packageBlock().voidEnter a parse tree produced byEK9Parser.parameterisedType().voidEnter a parse tree produced by thepathLiterallabeled alternative inEK9Parser.literal().voidEnter a parse tree produced byEK9Parser.preFlowAndControl().voidEnter a parse tree produced byEK9Parser.programBlock().voidEnter a parse tree produced byEK9Parser.recordDeclaration().voidJust like the block statement it is possible to see if the scope has already been marked as terminating abnormally, in which case the register statement won;t be reachable.voidEnter a parse tree produced by theregularExpressionLiterallabeled alternative inEK9Parser.literal().voidA local scope is used to hold the returning parameter.voidEnter a parse tree produced byEK9Parser.serviceDeclaration().voidEnter a parse tree produced byEK9Parser.serviceOperationDeclaration().voidEnter a parse tree produced byEK9Parser.singleStatementBlock().voidEnter a parse tree produced byEK9Parser.streamCat().voidEnter a parse tree produced byEK9Parser.streamExpression().voidEnter a parse tree produced byEK9Parser.streamExpressionTermination().voidEnter a parse tree produced byEK9Parser.streamFor().voidEnter a parse tree produced byEK9Parser.streamPart().voidEnter a parse tree produced byEK9Parser.streamStatement().voidEnter a parse tree produced byEK9Parser.streamStatementTermination().voidEnter a parse tree produced by thestringLiterallabeled alternative inEK9Parser.literal().voidEnter a parse tree produced byEK9Parser.stringPart().voidA couple of wrinkles with the switch because is can be used as a normal statement But also as an expression.voidNeed to define a scope for the parts of the ternary expressions.voidEnter a parse tree produced byEK9Parser.textBlock().voidEnter a parse tree produced byEK9Parser.textBodyDeclaration().voidEnter a parse tree produced byEK9Parser.textDeclaration().voidThis is a key event as it in effect causes the current scope to fail with abnormal termination.voidEnter a parse tree produced by thetimeLiterallabeled alternative inEK9Parser.literal().voidEnter a parse tree produced byEK9Parser.traitDeclaration().voidNow push it on to stack and record against this context as scope and symbol.voidEnter a parse tree produced byEK9Parser.typeDeclaration().voidJust a straight forward declaration of a variable.voidEnter a parse tree produced byEK9Parser.variableOnlyDeclaration().voidEnter a parse tree produced by theversionNumberLiterallabeled alternative inEK9Parser.literal().voidEnter a parse tree produced byEK9Parser.whileStatementExpression().voidExit a parse tree produced byEK9Parser.aggregateProperty().voidExit a parse tree produced byEK9Parser.assignmentStatement().voidExit a parse tree produced byEK9Parser.block().voidExit a parse tree produced byEK9Parser.catchStatementExpression().voidExit a parse tree produced byEK9Parser.classDeclaration().voidExit a parse tree produced byEK9Parser.constantDeclaration().voidThis is a very important exit, as it takes the literals defined and pulls them up.voidExit a parse tree produced byEK9Parser.directive().voidExit a parse tree produced byEK9Parser.dynamicClassDeclaration().voidExit a parse tree produced byEK9Parser.dynamicVariableCapture().voidExit a parse tree produced byEK9Parser.finallyStatementExpression().voidExit a parse tree produced byEK9Parser.forStatementExpression().voidExit a parse tree produced byEK9Parser.functionDeclaration().voidExit a parse tree produced byEK9Parser.guardExpression().voidExit a parse tree produced byEK9Parser.ifStatement().voidExit a parse tree produced byEK9Parser.methodDeclaration().voidExit a parse tree produced byEK9Parser.moduleDeclaration().voidThere is a returning parameter, so the instruction block must terminate normally.voidExit a parse tree produced byEK9Parser.operatorDeclaration().voidExit a parse tree produced byEK9Parser.packageBlock().voidExit a parse tree produced byEK9Parser.paramExpression().voidpreFlowStatement : (variableDeclaration | assignmentStatement | guardExpression) (WITH|THEN) ;voidA bit tricky or more not like many other methods.voidExit a parse tree produced byEK9Parser.streamSource().voidExit a parse tree produced byEK9Parser.switchStatementExpression().voidExit a parse tree produced byEK9Parser.textBlock().voidExit a parse tree produced byEK9Parser.textBodyDeclaration().voidA bit complex, because we need to check for normal termination on the try instructions, the catch and the finally blocks.voidNow we have an assignment expression we can note that this variable was initialised.voidExit a parse tree produced byEK9Parser.whileStatementExpression().Methods inherited from class AbstractEK9PhaseListener
exitApplicationDeclaration, exitComponentDeclaration, exitDynamicFunctionDeclaration, exitInstructionBlock, exitRecordDeclaration, exitServiceDeclaration, exitServiceOperationDeclaration, exitSingleStatementBlock, exitTernaryPart, exitTextDeclaration, exitTraitDeclaration, exitTypeDeclaration, getErrorListener, getParsedModule, isScopeStackEmpty, pullBlockTerminationUp, pullIfElseTerminationUp, pullSwitchCaseDefaultUp, pullTryCatchFinallyUpMethods inherited from class EK9BaseListener
enterAccessModifier, enterAggregateParts, enterAggregateProperty, enterAllowingOnly, enterApplicationBlock, enterArgumentParam, enterAspectDeclaration, enterAssertStatement, enterAssignmentExpression, enterAssignmentStatement, enterBinaryLit, enterBooleanLit, enterCaseExpression, enterCaseStatement, enterCharacterLit, enterClassBlock, enterColourLit, enterCompilationUnit, enterComponentBlock, enterConstantBlock, enterConstantInitialiser, enterConstrainDeclaration, enterConstrainType, enterDateLit, enterDateTimeLit, enterDeclareArgumentParam, enterDimensionLit, enterDirective, enterDirectivePart, enterDottedName, enterDurationLit, enterDynamicFunctionBody, enterElseOnlyBlock, enterEveryRule, enterExpression, enterExpressionParam, enterExtendDeclaration, enterExtendPreamble, enterFloatingPointLit, enterFunctionBlock, enterGuardExpression, enterHttpAccess, enterHttpVerb, enterIdentifier, enterIdentifierReference, enterIfControlBlock, enterIntegerLit, enterMillisecondLit, enterModuleBlock, enterMoneyLit, enterObjectAccess, enterObjectAccessExpression, enterObjectAccessStart, enterObjectAccessType, enterOperationDetails, enterOperator, enterParameterisedArgs, enterParameterisedDetail, enterParameterisedParams, enterParamExpression, enterPathLit, enterPipelinePart, enterPreFlowStatement, enterPrimary, enterPrimaryReference, enterRange, enterRecordBlock, enterReferencesBlock, enterRegExLit, enterResolutionLit, enterServiceBlock, enterSheBang, enterStatement, enterStreamSource, enterStringLit, enterTimeLit, enterTraitBlock, enterTraitPreamble, enterTraitReference, enterTraitsList, enterTypeBlock, enterTypeDef, enterVersionNumberLit, enterWebVariableCorrelation, exitAccessModifier, exitAggregateParts, exitAllowingOnly, exitApplicationBlock, exitArgumentParam, exitAspectDeclaration, exitAssertStatement, exitAssignmentExpression, exitBinaryLit, exitBinaryLiteral, exitBlockStatement, exitBooleanLit, exitBooleanLiteral, exitCall, exitCaseExpression, exitCaseStatement, exitCharacterLit, exitCharacterLiteral, exitClassBlock, exitColourLit, exitColourLiteral, exitCompilationUnit, exitComponentBlock, exitConstantBlock, exitConstrainDeclaration, exitConstrainType, exitDateLit, exitDateLiteral, exitDateTimeLit, exitDateTimeLiteral, exitDeclareArgumentParam, exitDecorationDimensionLiteral, exitDecorationResolutionLiteral, exitDefaultOperator, exitDict, exitDimensionLit, exitDirectivePart, exitDottedName, exitDurationLit, exitDurationLiteral, exitDynamicFunctionBody, exitElseOnlyBlock, exitEnumerationDeclaration, exitEveryRule, exitExpression, exitExpressionParam, exitExtendDeclaration, exitExtendPreamble, exitFloatingPointLit, exitFloatingPointLiteral, exitForLoop, exitForRange, exitFunctionBlock, exitHttpAccess, exitHttpVerb, exitIdentifier, exitIdentifierReference, exitIfControlBlock, exitInitValuePair, exitIntegerLit, exitIntegerLiteral, exitList, exitMillisecondLit, exitMillisecondLiteral, exitModuleBlock, exitMoneyLit, exitMoneyLiteral, exitObjectAccess, exitObjectAccessExpression, exitObjectAccessStart, exitObjectAccessType, exitOperationCall, exitOperator, exitParameterisedArgs, exitParameterisedDetail, exitParameterisedParams, exitParameterisedType, exitPathLit, exitPathLiteral, exitPipelinePart, exitPreFlowAndControl, exitPrimary, exitPrimaryReference, exitProgramBlock, exitRange, exitRecordBlock, exitReferencesBlock, exitRegExLit, exitRegisterStatement, exitRegularExpressionLiteral, exitResolutionLit, exitServiceBlock, exitSheBang, exitStatement, exitStreamCat, exitStreamExpression, exitStreamExpressionTermination, exitStreamFor, exitStreamPart, exitStreamStatement, exitStreamStatementTermination, exitStringLit, exitStringLiteral, exitStringPart, exitThrowStatement, exitTimeLit, exitTimeLiteral, exitTraitBlock, exitTraitPreamble, exitTraitReference, exitTraitsList, exitTypeBlock, exitTypeDef, exitVariableOnlyDeclaration, exitVersionNumberLit, exitVersionNumberLiteral, exitWebVariableCorrelation, visitErrorNode, visitTerminal
-
Constructor Details
-
DefinitionListener
DefinitionListener(ParsedModule parsedModule) First phase after parsing. Define symbols and infer types where possible. Uses a symbol factory to actually create the appropriate symbols.
-
-
Method Details
-
enterModuleDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.moduleDeclaration().The default implementation does nothing.
- Specified by:
enterModuleDeclarationin interfaceEK9Listener- Overrides:
enterModuleDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitModuleDeclaration
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.moduleDeclaration().The default implementation does nothing.
- Specified by:
exitModuleDeclarationin interfaceEK9Listener- Overrides:
exitModuleDeclarationin classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
exitDirective
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.directive().The default implementation does nothing.
- Specified by:
exitDirectivein interfaceEK9Listener- Overrides:
exitDirectivein classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterPackageBlock
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.packageBlock().The default implementation does nothing.
- Specified by:
enterPackageBlockin interfaceEK9Listener- Overrides:
enterPackageBlockin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitPackageBlock
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.packageBlock().The default implementation does nothing.
- Specified by:
exitPackageBlockin interfaceEK9Listener- Overrides:
exitPackageBlockin classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
enterProgramBlock
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.programBlock().The default implementation does nothing.
- Specified by:
enterProgramBlockin interfaceEK9Listener- Overrides:
enterProgramBlockin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterMethodDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.methodDeclaration().The default implementation does nothing.
- Specified by:
enterMethodDeclarationin interfaceEK9Listener- Overrides:
enterMethodDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitMethodDeclaration
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.methodDeclaration().The default implementation does nothing.
- Specified by:
exitMethodDeclarationin interfaceEK9Listener- Overrides:
exitMethodDeclarationin classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
exitClassDeclaration
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.classDeclaration().The default implementation does nothing.
- Specified by:
exitClassDeclarationin interfaceEK9Listener- Overrides:
exitClassDeclarationin classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
exitDynamicClassDeclaration
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.dynamicClassDeclaration().The default implementation does nothing.
- Specified by:
exitDynamicClassDeclarationin interfaceEK9Listener- Overrides:
exitDynamicClassDeclarationin classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
enterOperatorDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.operatorDeclaration().The default implementation does nothing.
- Specified by:
enterOperatorDeclarationin interfaceEK9Listener- Overrides:
enterOperatorDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitOperatorDeclaration
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.operatorDeclaration().The default implementation does nothing.
- Specified by:
exitOperatorDeclarationin interfaceEK9Listener- Overrides:
exitOperatorDeclarationin classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
enterDefaultOperator
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.defaultOperator().The default implementation does nothing.
- Specified by:
enterDefaultOperatorin interfaceEK9Listener- Overrides:
enterDefaultOperatorin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterFunctionDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.functionDeclaration().The default implementation does nothing.
- Specified by:
enterFunctionDeclarationin interfaceEK9Listener- Overrides:
enterFunctionDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitFunctionDeclaration
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.functionDeclaration().The default implementation does nothing.
- Specified by:
exitFunctionDeclarationin interfaceEK9Listener- Overrides:
exitFunctionDeclarationin classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
enterRecordDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.recordDeclaration().The default implementation does nothing.
- Specified by:
enterRecordDeclarationin interfaceEK9Listener- Overrides:
enterRecordDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterTraitDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.traitDeclaration().The default implementation does nothing.
- Specified by:
enterTraitDeclarationin interfaceEK9Listener- Overrides:
enterTraitDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterClassDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.classDeclaration().The default implementation does nothing.
- Specified by:
enterClassDeclarationin interfaceEK9Listener- Overrides:
enterClassDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterComponentDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.componentDeclaration().The default implementation does nothing.
- Specified by:
enterComponentDeclarationin interfaceEK9Listener- Overrides:
enterComponentDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterTextBlock
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.textBlock().The default implementation does nothing.
- Specified by:
enterTextBlockin interfaceEK9Listener- Overrides:
enterTextBlockin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitTextBlock
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.textBlock().The default implementation does nothing.
- Specified by:
exitTextBlockin interfaceEK9Listener- Overrides:
exitTextBlockin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterTextDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.textDeclaration().The default implementation does nothing.
- Specified by:
enterTextDeclarationin interfaceEK9Listener- Overrides:
enterTextDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterTextBodyDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.textBodyDeclaration().The default implementation does nothing.
- Specified by:
enterTextBodyDeclarationin interfaceEK9Listener- Overrides:
enterTextBodyDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitTextBodyDeclaration
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.textBodyDeclaration().The default implementation does nothing.
- Specified by:
exitTextBodyDeclarationin interfaceEK9Listener- Overrides:
exitTextBodyDeclarationin classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
enterServiceDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.serviceDeclaration().The default implementation does nothing.
- Specified by:
enterServiceDeclarationin interfaceEK9Listener- Overrides:
enterServiceDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterServiceOperationDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.serviceOperationDeclaration().The default implementation does nothing.
- Specified by:
enterServiceOperationDeclarationin interfaceEK9Listener- Overrides:
enterServiceOperationDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterApplicationDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.applicationDeclaration().The default implementation does nothing.
- Specified by:
enterApplicationDeclarationin interfaceEK9Listener- Overrides:
enterApplicationDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterDynamicClassDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.dynamicClassDeclaration().The default implementation does nothing.
- Specified by:
enterDynamicClassDeclarationin interfaceEK9Listener- Overrides:
enterDynamicClassDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterDynamicFunctionDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.dynamicFunctionDeclaration().The default implementation does nothing.
- Specified by:
enterDynamicFunctionDeclarationin interfaceEK9Listener- Overrides:
enterDynamicFunctionDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterDynamicVariableCapture
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.dynamicVariableCapture().The default implementation does nothing.
- Specified by:
enterDynamicVariableCapturein interfaceEK9Listener- Overrides:
enterDynamicVariableCapturein classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitDynamicVariableCapture
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.dynamicVariableCapture().The default implementation does nothing.
- Specified by:
exitDynamicVariableCapturein interfaceEK9Listener- Overrides:
exitDynamicVariableCapturein classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
enterTypeDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.typeDeclaration().The default implementation does nothing.
- Specified by:
enterTypeDeclarationin interfaceEK9Listener- Overrides:
enterTypeDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterEnumerationDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.enumerationDeclaration().The default implementation does nothing.
- Specified by:
enterEnumerationDeclarationin interfaceEK9Listener- Overrides:
enterEnumerationDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterStreamStatement
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.streamStatement().The default implementation does nothing.
- Specified by:
enterStreamStatementin interfaceEK9Listener- Overrides:
enterStreamStatementin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterStreamExpression
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.streamExpression().The default implementation does nothing.
- Specified by:
enterStreamExpressionin interfaceEK9Listener- Overrides:
enterStreamExpressionin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterStreamCat
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.streamCat().The default implementation does nothing.
- Specified by:
enterStreamCatin interfaceEK9Listener- Overrides:
enterStreamCatin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitStreamSource
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.streamSource().The default implementation does nothing.
- Specified by:
exitStreamSourcein interfaceEK9Listener- Overrides:
exitStreamSourcein classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterStreamFor
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.streamFor().The default implementation does nothing.
- Specified by:
enterStreamForin interfaceEK9Listener- Overrides:
enterStreamForin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterStreamPart
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.streamPart().The default implementation does nothing.
- Specified by:
enterStreamPartin interfaceEK9Listener- Overrides:
enterStreamPartin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterStreamStatementTermination
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.streamStatementTermination().The default implementation does nothing.
- Specified by:
enterStreamStatementTerminationin interfaceEK9Listener- Overrides:
enterStreamStatementTerminationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterStreamExpressionTermination
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.streamExpressionTermination().The default implementation does nothing.
- Specified by:
enterStreamExpressionTerminationin interfaceEK9Listener- Overrides:
enterStreamExpressionTerminationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterPreFlowAndControl
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.preFlowAndControl().The default implementation does nothing.
- Specified by:
enterPreFlowAndControlin interfaceEK9Listener- Overrides:
enterPreFlowAndControlin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterIfStatement
Need to create a local scope for the if statement so that it is possible to detect if all paths result in abnormal termination (i.e. Exception). If this is the case then the statement can only result in an exception, so any statements after it will be unreachable. Though it is not an issue for all paths in an if else to result in abnormal termination - only if there are statements follow or a return in the method/function.- Specified by:
enterIfStatementin interfaceEK9Listener- Overrides:
enterIfStatementin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitIfStatement
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.ifStatement().The default implementation does nothing.
- Specified by:
exitIfStatementin interfaceEK9Listener- Overrides:
exitIfStatementin classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
enterSwitchStatementExpression
A couple of wrinkles with the switch because is can be used as a normal statement But also as an expression. If used as an expression then it must have a return part. If used as a statement then the return part is meaningless- Specified by:
enterSwitchStatementExpressionin interfaceEK9Listener- Overrides:
enterSwitchStatementExpressionin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitSwitchStatementExpression
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.switchStatementExpression().The default implementation does nothing.
- Specified by:
exitSwitchStatementExpressionin interfaceEK9Listener- Overrides:
exitSwitchStatementExpressionin classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
enterTryStatementExpression
Now push it on to stack and record against this context as scope and symbol. So this try is the outer scope, the body of the try block also has its own instruction block scope. Each of the catch blocks have their scope, the finally has its scope. But the variables used with try with are available throughout all scopes as they are in the outer scope. These are a bit like 'Java' 'try with' variables. Just like 'Java' 'close' methods are called if present.- Specified by:
enterTryStatementExpressionin interfaceEK9Listener- Overrides:
enterTryStatementExpressionin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitTryStatementExpression
A bit complex, because we need to check for normal termination on the try instructions, the catch and the finally blocks. Only if there is a returning variable is this an error. But we do need to pull the termination status up in to the parent set of instructions.- Specified by:
exitTryStatementExpressionin interfaceEK9Listener- Overrides:
exitTryStatementExpressionin classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
enterCatchStatementExpression
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.catchStatementExpression().The default implementation does nothing.
- Specified by:
enterCatchStatementExpressionin interfaceEK9Listener- Overrides:
enterCatchStatementExpressionin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitCatchStatementExpression
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.catchStatementExpression().The default implementation does nothing.
- Specified by:
exitCatchStatementExpressionin interfaceEK9Listener- Overrides:
exitCatchStatementExpressionin classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
enterFinallyStatementExpression
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.finallyStatementExpression().The default implementation does nothing.
- Specified by:
enterFinallyStatementExpressionin interfaceEK9Listener- Overrides:
enterFinallyStatementExpressionin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitFinallyStatementExpression
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.finallyStatementExpression().The default implementation does nothing.
- Specified by:
exitFinallyStatementExpressionin interfaceEK9Listener- Overrides:
exitFinallyStatementExpressionin classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
enterTernaryPart
Need to define a scope for the parts of the ternary expressions. This is used later when assessing if Result/Option ok/error/get access is safe.- Specified by:
enterTernaryPartin interfaceEK9Listener- Overrides:
enterTernaryPartin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterThrowStatement
This is a key event as it in effect causes the current scope to fail with abnormal termination. Note down that this scope has encountered an exception at this line number but not if it already has encountered one.- Specified by:
enterThrowStatementin interfaceEK9Listener- Overrides:
enterThrowStatementin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterForStatementExpression
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.forStatementExpression().The default implementation does nothing.
- Specified by:
enterForStatementExpressionin interfaceEK9Listener- Overrides:
enterForStatementExpressionin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitForStatementExpression
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.forStatementExpression().The default implementation does nothing.
- Specified by:
exitForStatementExpressionin interfaceEK9Listener- Overrides:
exitForStatementExpressionin classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
enterWhileStatementExpression
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.whileStatementExpression().The default implementation does nothing.
- Specified by:
enterWhileStatementExpressionin interfaceEK9Listener- Overrides:
enterWhileStatementExpressionin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitWhileStatementExpression
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.whileStatementExpression().The default implementation does nothing.
- Specified by:
exitWhileStatementExpressionin interfaceEK9Listener- Overrides:
exitWhileStatementExpressionin classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
enterForLoop
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.forLoop().The default implementation does nothing.
- Specified by:
enterForLoopin interfaceEK9Listener- Overrides:
enterForLoopin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterForRange
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.forRange().The default implementation does nothing.
- Specified by:
enterForRangein interfaceEK9Listener- Overrides:
enterForRangein classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterReturningParam
A local scope is used to hold the returning parameter. The argumentParam values are defined in the scope of the method/function etc. These are the incoming parameters. The returningParam is held outside of those and must be declared inside the function/method (but not in the areas for incoming parameters), just as a normal local variable in the main block. Now the issue is that we must check that this returning variable name does not collide with any of the incoming parameters, nor any of the variables the developer declares in the main block.- Specified by:
enterReturningParamin interfaceEK9Listener- Overrides:
enterReturningParamin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitReturningParam
A bit tricky or more not like many other methods. This is because returns in ek9 are defined as part of the signature up front in terms of variable name and type. This has the implication of the fact that named variable must be added to the relevant scope before any sort of body processing. Be that just an instruction block, catch, finally, or case blocks. This it to ensure that variables of the same name do not get declared at any point in those blocks. So you want wait until the end of the method, switch/try to add the return. It must be up front as sub blocks come in and out of scope within the main blocks. But we must stop duplicate named vars being used if declared as a returning value.- Specified by:
exitReturningParamin interfaceEK9Listener- Overrides:
exitReturningParamin classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
enterBlock
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.block().The default implementation does nothing.
- Specified by:
enterBlockin interfaceEK9Listener- Overrides:
enterBlockin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterSingleStatementBlock
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.singleStatementBlock().The default implementation does nothing.
- Specified by:
enterSingleStatementBlockin interfaceEK9Listener- Overrides:
enterSingleStatementBlockin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitOperationDetails
There is a returning parameter, so the instruction block must terminate normally. i.e. not all paths in the instruction block can result in an Exception else there is no way it is possible ever return anything.- Specified by:
exitOperationDetailsin interfaceEK9Listener- Overrides:
exitOperationDetailsin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitBlock
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.block().The default implementation does nothing.
- Specified by:
exitBlockin interfaceEK9Listener- Overrides:
exitBlockin classAbstractEK9PhaseListener- Parameters:
ctx- the parse tree
-
enterInstructionBlock
This is the main context for ek9 expressions and statements to be employed. i.e. it is THE place for the developers ek9 code to be expressed.- Specified by:
enterInstructionBlockin interfaceEK9Listener- Overrides:
enterInstructionBlockin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterBlockStatement
This is just a normal statement or variable declaration within a block. But we actually do some early analysis here. We check if the scope this is in has been marked as not terminating normally. What this means is that this block has been marked because a known uncaught exception has been issued. This works on the principle that a previous block or try has issued an exception that was not caught. As we listen to the events the previous blocks will have been entered and existed. They may have marked the scope this statement is in as abnormally terminated.- Specified by:
enterBlockStatementin interfaceEK9Listener- Overrides:
enterBlockStatementin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterRegisterStatement
Just like the block statement it is possible to see if the scope has already been marked as terminating abnormally, in which case the register statement won;t be reachable.- Specified by:
enterRegisterStatementin interfaceEK9Listener- Overrides:
enterRegisterStatementin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterCall
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.call().The default implementation does nothing.
- Specified by:
enterCallin interfaceEK9Listener- Overrides:
enterCallin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterOperationCall
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.operationCall().The default implementation does nothing.
- Specified by:
enterOperationCallin interfaceEK9Listener- Overrides:
enterOperationCallin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterList
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.list().The default implementation does nothing.
- Specified by:
enterListin interfaceEK9Listener- Overrides:
enterListin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterDict
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.dict().The default implementation does nothing.
- Specified by:
enterDictin interfaceEK9Listener- Overrides:
enterDictin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterInitValuePair
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.initValuePair().The default implementation does nothing.
- Specified by:
enterInitValuePairin interfaceEK9Listener- Overrides:
enterInitValuePairin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitParamExpression
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.paramExpression().The default implementation does nothing.
- Specified by:
exitParamExpressionin interfaceEK9Listener- Overrides:
exitParamExpressionin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterParameterisedType
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.parameterisedType().The default implementation does nothing.
- Specified by:
enterParameterisedTypein interfaceEK9Listener- Overrides:
enterParameterisedTypein classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterVariableOnlyDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.variableOnlyDeclaration().The default implementation does nothing.
- Specified by:
enterVariableOnlyDeclarationin interfaceEK9Listener- Overrides:
enterVariableOnlyDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterVariableDeclaration
Just a straight forward declaration of a variable.- Specified by:
enterVariableDeclarationin interfaceEK9Listener- Overrides:
enterVariableDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitVariableDeclaration
Now we have an assignment expression we can note that this variable was initialised. For some simple literals we can work out the type early as well.- Specified by:
exitVariableDeclarationin interfaceEK9Listener- Overrides:
exitVariableDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitAggregateProperty
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.aggregateProperty().The default implementation does nothing.
- Specified by:
exitAggregatePropertyin interfaceEK9Listener- Overrides:
exitAggregatePropertyin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitPreFlowStatement
preFlowStatement : (variableDeclaration | assignmentStatement | guardExpression) (WITH|THEN) ;The declarations and assignments are always true, but the guard may result in an 'un-set' value. In that case the result would be false. But in all cases just a boolean.- Specified by:
exitPreFlowStatementin interfaceEK9Listener- Overrides:
exitPreFlowStatementin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitGuardExpression
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.guardExpression().The default implementation does nothing.
- Specified by:
exitGuardExpressionin interfaceEK9Listener- Overrides:
exitGuardExpressionin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitAssignmentStatement
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.assignmentStatement().The default implementation does nothing.
- Specified by:
exitAssignmentStatementin interfaceEK9Listener- Overrides:
exitAssignmentStatementin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterConstantDeclaration
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.constantDeclaration().The default implementation does nothing.
- Specified by:
enterConstantDeclarationin interfaceEK9Listener- Overrides:
enterConstantDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitConstantDeclaration
Description copied from class:EK9BaseListenerExit a parse tree produced byEK9Parser.constantDeclaration().The default implementation does nothing.
- Specified by:
exitConstantDeclarationin interfaceEK9Listener- Overrides:
exitConstantDeclarationin classEK9BaseListener- Parameters:
ctx- the parse tree
-
exitConstantInitialiser
This is a very important exit, as it takes the literals defined and pulls them up. So the same literal will now be recorded against a constant initialiser context.- Specified by:
exitConstantInitialiserin interfaceEK9Listener- Overrides:
exitConstantInitialiserin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterIntegerLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by theintegerLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterIntegerLiteralin interfaceEK9Listener- Overrides:
enterIntegerLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterFloatingPointLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by thefloatingPointLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterFloatingPointLiteralin interfaceEK9Listener- Overrides:
enterFloatingPointLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterBinaryLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by thebinaryLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterBinaryLiteralin interfaceEK9Listener- Overrides:
enterBinaryLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterBooleanLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by thebooleanLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterBooleanLiteralin interfaceEK9Listener- Overrides:
enterBooleanLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterCharacterLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by thecharacterLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterCharacterLiteralin interfaceEK9Listener- Overrides:
enterCharacterLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterStringLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by thestringLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterStringLiteralin interfaceEK9Listener- Overrides:
enterStringLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterStringPart
Description copied from class:EK9BaseListenerEnter a parse tree produced byEK9Parser.stringPart().The default implementation does nothing.
- Specified by:
enterStringPartin interfaceEK9Listener- Overrides:
enterStringPartin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterTimeLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by thetimeLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterTimeLiteralin interfaceEK9Listener- Overrides:
enterTimeLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterDateLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by thedateLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterDateLiteralin interfaceEK9Listener- Overrides:
enterDateLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterDateTimeLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by thedateTimeLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterDateTimeLiteralin interfaceEK9Listener- Overrides:
enterDateTimeLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterDurationLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by thedurationLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterDurationLiteralin interfaceEK9Listener- Overrides:
enterDurationLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterMillisecondLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by themillisecondLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterMillisecondLiteralin interfaceEK9Listener- Overrides:
enterMillisecondLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterDecorationDimensionLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by thedecorationDimensionLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterDecorationDimensionLiteralin interfaceEK9Listener- Overrides:
enterDecorationDimensionLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterDecorationResolutionLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by thedecorationResolutionLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterDecorationResolutionLiteralin interfaceEK9Listener- Overrides:
enterDecorationResolutionLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterColourLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by thecolourLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterColourLiteralin interfaceEK9Listener- Overrides:
enterColourLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterMoneyLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by themoneyLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterMoneyLiteralin interfaceEK9Listener- Overrides:
enterMoneyLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterRegularExpressionLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by theregularExpressionLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterRegularExpressionLiteralin interfaceEK9Listener- Overrides:
enterRegularExpressionLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterVersionNumberLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by theversionNumberLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterVersionNumberLiteralin interfaceEK9Listener- Overrides:
enterVersionNumberLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-
enterPathLiteral
Description copied from class:EK9BaseListenerEnter a parse tree produced by thepathLiterallabeled alternative inEK9Parser.literal().The default implementation does nothing.
- Specified by:
enterPathLiteralin interfaceEK9Listener- Overrides:
enterPathLiteralin classEK9BaseListener- Parameters:
ctx- the parse tree
-