Class DefinitionListener
- All Implemented Interfaces:
org.antlr.v4.runtime.tree.ParseTreeListener
,EK9Listener
-
Field Summary
Fields inherited from class org.ek9lang.compiler.common.AbstractEK9PhaseListener
symbolsAndScopes
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Enter a parse tree produced byEK9Parser.applicationDeclaration()
.void
Enter a parse tree produced by thebinaryLiteral
labeled alternative inEK9Parser.literal()
.void
Enter a parse tree produced byEK9Parser.block()
.void
This is just a normal statement or variable declaration within a block.void
Enter a parse tree produced by thebooleanLiteral
labeled alternative inEK9Parser.literal()
.void
Enter a parse tree produced byEK9Parser.call()
.void
Enter a parse tree produced byEK9Parser.catchStatementExpression()
.void
Enter a parse tree produced by thecharacterLiteral
labeled alternative inEK9Parser.literal()
.void
Enter a parse tree produced byEK9Parser.classDeclaration()
.void
Enter a parse tree produced by thecolourLiteral
labeled alternative inEK9Parser.literal()
.void
Enter a parse tree produced byEK9Parser.componentDeclaration()
.void
Enter a parse tree produced byEK9Parser.constantDeclaration()
.void
Enter a parse tree produced by thedateLiteral
labeled alternative inEK9Parser.literal()
.void
Enter a parse tree produced by thedateTimeLiteral
labeled alternative inEK9Parser.literal()
.void
Enter a parse tree produced by thedecorationDimensionLiteral
labeled alternative inEK9Parser.literal()
.void
Enter a parse tree produced by thedecorationResolutionLiteral
labeled alternative inEK9Parser.literal()
.void
Enter a parse tree produced byEK9Parser.defaultOperator()
.void
Enter a parse tree produced byEK9Parser.dict()
.void
Enter a parse tree produced by thedurationLiteral
labeled alternative inEK9Parser.literal()
.void
Enter a parse tree produced byEK9Parser.dynamicClassDeclaration()
.void
Enter a parse tree produced byEK9Parser.dynamicFunctionDeclaration()
.void
Enter a parse tree produced byEK9Parser.dynamicVariableCapture()
.void
Enter a parse tree produced byEK9Parser.enumerationDeclaration()
.void
Enter a parse tree produced byEK9Parser.finallyStatementExpression()
.void
Enter a parse tree produced by thefloatingPointLiteral
labeled alternative inEK9Parser.literal()
.void
Enter a parse tree produced byEK9Parser.forLoop()
.void
Enter a parse tree produced byEK9Parser.forRange()
.void
Enter a parse tree produced byEK9Parser.forStatementExpression()
.void
Enter a parse tree produced byEK9Parser.functionDeclaration()
.void
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.void
Enter a parse tree produced byEK9Parser.initValuePair()
.void
This is the main context for ek9 expressions and statements to be employed.void
Enter a parse tree produced by theintegerLiteral
labeled alternative inEK9Parser.literal()
.void
Enter a parse tree produced byEK9Parser.list()
.void
Enter a parse tree produced byEK9Parser.methodDeclaration()
.void
Enter a parse tree produced by themillisecondLiteral
labeled alternative inEK9Parser.literal()
.void
Enter a parse tree produced byEK9Parser.moduleDeclaration()
.void
Enter a parse tree produced by themoneyLiteral
labeled alternative inEK9Parser.literal()
.void
Enter a parse tree produced byEK9Parser.operationCall()
.void
Enter a parse tree produced byEK9Parser.operatorDeclaration()
.void
Enter a parse tree produced byEK9Parser.packageBlock()
.void
Enter a parse tree produced byEK9Parser.parameterisedType()
.void
Enter a parse tree produced by thepathLiteral
labeled alternative inEK9Parser.literal()
.void
Enter a parse tree produced byEK9Parser.programBlock()
.void
Enter a parse tree produced byEK9Parser.recordDeclaration()
.void
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.void
Enter a parse tree produced by theregularExpressionLiteral
labeled alternative inEK9Parser.literal()
.void
A local scope is used to hold the returning parameter.void
Enter a parse tree produced byEK9Parser.serviceDeclaration()
.void
Enter a parse tree produced byEK9Parser.serviceOperationDeclaration()
.void
Enter a parse tree produced byEK9Parser.singleStatementBlock()
.void
Enter a parse tree produced byEK9Parser.streamCat()
.void
Enter a parse tree produced byEK9Parser.streamExpression()
.void
Enter a parse tree produced byEK9Parser.streamExpressionTermination()
.void
Enter a parse tree produced byEK9Parser.streamFor()
.void
Enter a parse tree produced byEK9Parser.streamPart()
.void
Enter a parse tree produced byEK9Parser.streamStatement()
.void
Enter a parse tree produced byEK9Parser.streamStatementTermination()
.void
Enter a parse tree produced by thestringLiteral
labeled alternative inEK9Parser.literal()
.void
Enter a parse tree produced byEK9Parser.stringPart()
.void
A couple of wrinkles with the switch because is can be used as a normal statement But also as an expression.void
Enter a parse tree produced byEK9Parser.textBlock()
.void
Enter a parse tree produced byEK9Parser.textBodyDeclaration()
.void
Enter a parse tree produced byEK9Parser.textDeclaration()
.void
This is a key event as it in effect causes the current scope to fail with abnormal termination.void
Enter a parse tree produced by thetimeLiteral
labeled alternative inEK9Parser.literal()
.void
Enter a parse tree produced byEK9Parser.traitDeclaration()
.void
Now push it on to stack and record against this context as scope and symbol.void
Enter a parse tree produced byEK9Parser.typeDeclaration()
.void
Just a straight forward declaration of a variable.void
Enter a parse tree produced byEK9Parser.variableOnlyDeclaration()
.void
Enter a parse tree produced by theversionNumberLiteral
labeled alternative inEK9Parser.literal()
.void
Enter a parse tree produced byEK9Parser.whileStatementExpression()
.void
Exit a parse tree produced byEK9Parser.aggregateProperty()
.void
Exit a parse tree produced byEK9Parser.assignmentStatement()
.void
Exit a parse tree produced byEK9Parser.block()
.void
Exit a parse tree produced byEK9Parser.catchStatementExpression()
.void
Exit a parse tree produced byEK9Parser.constantDeclaration()
.void
This is a very important exit, as it takes the literals defined and pulls them up.void
Exit a parse tree produced byEK9Parser.directive()
.void
Exit a parse tree produced byEK9Parser.dynamicVariableCapture()
.void
Exit a parse tree produced byEK9Parser.finallyStatementExpression()
.void
Exit a parse tree produced byEK9Parser.forStatementExpression()
.void
Exit a parse tree produced byEK9Parser.functionDeclaration()
.void
Exit a parse tree produced byEK9Parser.guardExpression()
.void
Exit a parse tree produced byEK9Parser.ifStatement()
.void
Exit a parse tree produced byEK9Parser.methodDeclaration()
.void
There is a returning parameter, so the instruction block must terminate normally.void
Exit a parse tree produced byEK9Parser.operatorDeclaration()
.void
Exit a parse tree produced byEK9Parser.packageBlock()
.void
Exit a parse tree produced byEK9Parser.paramExpression()
.void
preFlowStatement : (variableDeclaration | assignmentStatement | guardExpression) (WITH|THEN) ;void
A bit tricky or more not like many other methods.void
Exit a parse tree produced byEK9Parser.streamSource()
.void
Exit a parse tree produced byEK9Parser.switchStatementExpression()
.void
Exit a parse tree produced byEK9Parser.textBlock()
.void
Exit a parse tree produced byEK9Parser.textBodyDeclaration()
.void
A bit complex, because we need to check for normal termination on the try instructions, the catch and the finally blocks.void
Now we have an assignment expression we can note that this variable was initialised.void
Exit a parse tree produced byEK9Parser.whileStatementExpression()
.Methods inherited from class org.ek9lang.compiler.common.AbstractEK9PhaseListener
exitApplicationDeclaration, exitClassDeclaration, exitComponentDeclaration, exitDynamicClassDeclaration, exitDynamicFunctionDeclaration, exitInstructionBlock, exitModuleDeclaration, exitRecordDeclaration, exitServiceDeclaration, exitServiceOperationDeclaration, exitSingleStatementBlock, exitTextDeclaration, exitTraitDeclaration, exitTypeDeclaration, getErrorListener, getParsedModule, isScopeStackEmpty, pullBlockTerminationUp, pullIfElseTerminationUp, pullSwitchCaseDefaultUp, pullTryCatchFinallyUp
Methods inherited from class org.ek9lang.antlr.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, enterPreFlowAndControl, 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:EK9BaseListener
Enter a parse tree produced byEK9Parser.moduleDeclaration()
.The default implementation does nothing.
- Specified by:
enterModuleDeclaration
in interfaceEK9Listener
- Overrides:
enterModuleDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitDirective
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.directive()
.The default implementation does nothing.
- Specified by:
exitDirective
in interfaceEK9Listener
- Overrides:
exitDirective
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterPackageBlock
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.packageBlock()
.The default implementation does nothing.
- Specified by:
enterPackageBlock
in interfaceEK9Listener
- Overrides:
enterPackageBlock
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitPackageBlock
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.packageBlock()
.The default implementation does nothing.
- Specified by:
exitPackageBlock
in interfaceEK9Listener
- Overrides:
exitPackageBlock
in classAbstractEK9PhaseListener
- Parameters:
ctx
- the parse tree
-
enterProgramBlock
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.programBlock()
.The default implementation does nothing.
- Specified by:
enterProgramBlock
in interfaceEK9Listener
- Overrides:
enterProgramBlock
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterMethodDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.methodDeclaration()
.The default implementation does nothing.
- Specified by:
enterMethodDeclaration
in interfaceEK9Listener
- Overrides:
enterMethodDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitMethodDeclaration
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.methodDeclaration()
.The default implementation does nothing.
- Specified by:
exitMethodDeclaration
in interfaceEK9Listener
- Overrides:
exitMethodDeclaration
in classAbstractEK9PhaseListener
- Parameters:
ctx
- the parse tree
-
enterOperatorDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.operatorDeclaration()
.The default implementation does nothing.
- Specified by:
enterOperatorDeclaration
in interfaceEK9Listener
- Overrides:
enterOperatorDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitOperatorDeclaration
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.operatorDeclaration()
.The default implementation does nothing.
- Specified by:
exitOperatorDeclaration
in interfaceEK9Listener
- Overrides:
exitOperatorDeclaration
in classAbstractEK9PhaseListener
- Parameters:
ctx
- the parse tree
-
enterDefaultOperator
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.defaultOperator()
.The default implementation does nothing.
- Specified by:
enterDefaultOperator
in interfaceEK9Listener
- Overrides:
enterDefaultOperator
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterFunctionDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.functionDeclaration()
.The default implementation does nothing.
- Specified by:
enterFunctionDeclaration
in interfaceEK9Listener
- Overrides:
enterFunctionDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitFunctionDeclaration
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.functionDeclaration()
.The default implementation does nothing.
- Specified by:
exitFunctionDeclaration
in interfaceEK9Listener
- Overrides:
exitFunctionDeclaration
in classAbstractEK9PhaseListener
- Parameters:
ctx
- the parse tree
-
enterRecordDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.recordDeclaration()
.The default implementation does nothing.
- Specified by:
enterRecordDeclaration
in interfaceEK9Listener
- Overrides:
enterRecordDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterTraitDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.traitDeclaration()
.The default implementation does nothing.
- Specified by:
enterTraitDeclaration
in interfaceEK9Listener
- Overrides:
enterTraitDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterClassDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.classDeclaration()
.The default implementation does nothing.
- Specified by:
enterClassDeclaration
in interfaceEK9Listener
- Overrides:
enterClassDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterComponentDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.componentDeclaration()
.The default implementation does nothing.
- Specified by:
enterComponentDeclaration
in interfaceEK9Listener
- Overrides:
enterComponentDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterTextBlock
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.textBlock()
.The default implementation does nothing.
- Specified by:
enterTextBlock
in interfaceEK9Listener
- Overrides:
enterTextBlock
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitTextBlock
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.textBlock()
.The default implementation does nothing.
- Specified by:
exitTextBlock
in interfaceEK9Listener
- Overrides:
exitTextBlock
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterTextDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.textDeclaration()
.The default implementation does nothing.
- Specified by:
enterTextDeclaration
in interfaceEK9Listener
- Overrides:
enterTextDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterTextBodyDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.textBodyDeclaration()
.The default implementation does nothing.
- Specified by:
enterTextBodyDeclaration
in interfaceEK9Listener
- Overrides:
enterTextBodyDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitTextBodyDeclaration
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.textBodyDeclaration()
.The default implementation does nothing.
- Specified by:
exitTextBodyDeclaration
in interfaceEK9Listener
- Overrides:
exitTextBodyDeclaration
in classAbstractEK9PhaseListener
- Parameters:
ctx
- the parse tree
-
enterServiceDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.serviceDeclaration()
.The default implementation does nothing.
- Specified by:
enterServiceDeclaration
in interfaceEK9Listener
- Overrides:
enterServiceDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterServiceOperationDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.serviceOperationDeclaration()
.The default implementation does nothing.
- Specified by:
enterServiceOperationDeclaration
in interfaceEK9Listener
- Overrides:
enterServiceOperationDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterApplicationDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.applicationDeclaration()
.The default implementation does nothing.
- Specified by:
enterApplicationDeclaration
in interfaceEK9Listener
- Overrides:
enterApplicationDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterDynamicClassDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.dynamicClassDeclaration()
.The default implementation does nothing.
- Specified by:
enterDynamicClassDeclaration
in interfaceEK9Listener
- Overrides:
enterDynamicClassDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterDynamicFunctionDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.dynamicFunctionDeclaration()
.The default implementation does nothing.
- Specified by:
enterDynamicFunctionDeclaration
in interfaceEK9Listener
- Overrides:
enterDynamicFunctionDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterDynamicVariableCapture
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.dynamicVariableCapture()
.The default implementation does nothing.
- Specified by:
enterDynamicVariableCapture
in interfaceEK9Listener
- Overrides:
enterDynamicVariableCapture
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitDynamicVariableCapture
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.dynamicVariableCapture()
.The default implementation does nothing.
- Specified by:
exitDynamicVariableCapture
in interfaceEK9Listener
- Overrides:
exitDynamicVariableCapture
in classAbstractEK9PhaseListener
- Parameters:
ctx
- the parse tree
-
enterTypeDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.typeDeclaration()
.The default implementation does nothing.
- Specified by:
enterTypeDeclaration
in interfaceEK9Listener
- Overrides:
enterTypeDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterEnumerationDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.enumerationDeclaration()
.The default implementation does nothing.
- Specified by:
enterEnumerationDeclaration
in interfaceEK9Listener
- Overrides:
enterEnumerationDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterStreamStatement
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.streamStatement()
.The default implementation does nothing.
- Specified by:
enterStreamStatement
in interfaceEK9Listener
- Overrides:
enterStreamStatement
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterStreamExpression
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.streamExpression()
.The default implementation does nothing.
- Specified by:
enterStreamExpression
in interfaceEK9Listener
- Overrides:
enterStreamExpression
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterStreamCat
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.streamCat()
.The default implementation does nothing.
- Specified by:
enterStreamCat
in interfaceEK9Listener
- Overrides:
enterStreamCat
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitStreamSource
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.streamSource()
.The default implementation does nothing.
- Specified by:
exitStreamSource
in interfaceEK9Listener
- Overrides:
exitStreamSource
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterStreamFor
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.streamFor()
.The default implementation does nothing.
- Specified by:
enterStreamFor
in interfaceEK9Listener
- Overrides:
enterStreamFor
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterStreamPart
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.streamPart()
.The default implementation does nothing.
- Specified by:
enterStreamPart
in interfaceEK9Listener
- Overrides:
enterStreamPart
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterStreamStatementTermination
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.streamStatementTermination()
.The default implementation does nothing.
- Specified by:
enterStreamStatementTermination
in interfaceEK9Listener
- Overrides:
enterStreamStatementTermination
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterStreamExpressionTermination
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.streamExpressionTermination()
.The default implementation does nothing.
- Specified by:
enterStreamExpressionTermination
in interfaceEK9Listener
- Overrides:
enterStreamExpressionTermination
in 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:
enterIfStatement
in interfaceEK9Listener
- Overrides:
enterIfStatement
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitIfStatement
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.ifStatement()
.The default implementation does nothing.
- Specified by:
exitIfStatement
in interfaceEK9Listener
- Overrides:
exitIfStatement
in 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:
enterSwitchStatementExpression
in interfaceEK9Listener
- Overrides:
enterSwitchStatementExpression
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitSwitchStatementExpression
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.switchStatementExpression()
.The default implementation does nothing.
- Specified by:
exitSwitchStatementExpression
in interfaceEK9Listener
- Overrides:
exitSwitchStatementExpression
in 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:
enterTryStatementExpression
in interfaceEK9Listener
- Overrides:
enterTryStatementExpression
in 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:
exitTryStatementExpression
in interfaceEK9Listener
- Overrides:
exitTryStatementExpression
in classAbstractEK9PhaseListener
- Parameters:
ctx
- the parse tree
-
enterCatchStatementExpression
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.catchStatementExpression()
.The default implementation does nothing.
- Specified by:
enterCatchStatementExpression
in interfaceEK9Listener
- Overrides:
enterCatchStatementExpression
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitCatchStatementExpression
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.catchStatementExpression()
.The default implementation does nothing.
- Specified by:
exitCatchStatementExpression
in interfaceEK9Listener
- Overrides:
exitCatchStatementExpression
in classAbstractEK9PhaseListener
- Parameters:
ctx
- the parse tree
-
enterFinallyStatementExpression
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.finallyStatementExpression()
.The default implementation does nothing.
- Specified by:
enterFinallyStatementExpression
in interfaceEK9Listener
- Overrides:
enterFinallyStatementExpression
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitFinallyStatementExpression
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.finallyStatementExpression()
.The default implementation does nothing.
- Specified by:
exitFinallyStatementExpression
in interfaceEK9Listener
- Overrides:
exitFinallyStatementExpression
in classAbstractEK9PhaseListener
- 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:
enterThrowStatement
in interfaceEK9Listener
- Overrides:
enterThrowStatement
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterForStatementExpression
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.forStatementExpression()
.The default implementation does nothing.
- Specified by:
enterForStatementExpression
in interfaceEK9Listener
- Overrides:
enterForStatementExpression
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitForStatementExpression
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.forStatementExpression()
.The default implementation does nothing.
- Specified by:
exitForStatementExpression
in interfaceEK9Listener
- Overrides:
exitForStatementExpression
in classAbstractEK9PhaseListener
- Parameters:
ctx
- the parse tree
-
enterWhileStatementExpression
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.whileStatementExpression()
.The default implementation does nothing.
- Specified by:
enterWhileStatementExpression
in interfaceEK9Listener
- Overrides:
enterWhileStatementExpression
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitWhileStatementExpression
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.whileStatementExpression()
.The default implementation does nothing.
- Specified by:
exitWhileStatementExpression
in interfaceEK9Listener
- Overrides:
exitWhileStatementExpression
in classAbstractEK9PhaseListener
- Parameters:
ctx
- the parse tree
-
enterForLoop
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.forLoop()
.The default implementation does nothing.
- Specified by:
enterForLoop
in interfaceEK9Listener
- Overrides:
enterForLoop
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterForRange
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.forRange()
.The default implementation does nothing.
- Specified by:
enterForRange
in interfaceEK9Listener
- Overrides:
enterForRange
in 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:
enterReturningParam
in interfaceEK9Listener
- Overrides:
enterReturningParam
in 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:
exitReturningParam
in interfaceEK9Listener
- Overrides:
exitReturningParam
in classAbstractEK9PhaseListener
- Parameters:
ctx
- the parse tree
-
enterBlock
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.block()
.The default implementation does nothing.
- Specified by:
enterBlock
in interfaceEK9Listener
- Overrides:
enterBlock
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterSingleStatementBlock
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.singleStatementBlock()
.The default implementation does nothing.
- Specified by:
enterSingleStatementBlock
in interfaceEK9Listener
- Overrides:
enterSingleStatementBlock
in 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:
exitOperationDetails
in interfaceEK9Listener
- Overrides:
exitOperationDetails
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitBlock
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.block()
.The default implementation does nothing.
- Specified by:
exitBlock
in interfaceEK9Listener
- Overrides:
exitBlock
in 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:
enterInstructionBlock
in interfaceEK9Listener
- Overrides:
enterInstructionBlock
in 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:
enterBlockStatement
in interfaceEK9Listener
- Overrides:
enterBlockStatement
in 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:
enterRegisterStatement
in interfaceEK9Listener
- Overrides:
enterRegisterStatement
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterCall
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.call()
.The default implementation does nothing.
- Specified by:
enterCall
in interfaceEK9Listener
- Overrides:
enterCall
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterOperationCall
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.operationCall()
.The default implementation does nothing.
- Specified by:
enterOperationCall
in interfaceEK9Listener
- Overrides:
enterOperationCall
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterList
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.list()
.The default implementation does nothing.
- Specified by:
enterList
in interfaceEK9Listener
- Overrides:
enterList
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterDict
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.dict()
.The default implementation does nothing.
- Specified by:
enterDict
in interfaceEK9Listener
- Overrides:
enterDict
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterInitValuePair
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.initValuePair()
.The default implementation does nothing.
- Specified by:
enterInitValuePair
in interfaceEK9Listener
- Overrides:
enterInitValuePair
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitParamExpression
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.paramExpression()
.The default implementation does nothing.
- Specified by:
exitParamExpression
in interfaceEK9Listener
- Overrides:
exitParamExpression
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterParameterisedType
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.parameterisedType()
.The default implementation does nothing.
- Specified by:
enterParameterisedType
in interfaceEK9Listener
- Overrides:
enterParameterisedType
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterVariableOnlyDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.variableOnlyDeclaration()
.The default implementation does nothing.
- Specified by:
enterVariableOnlyDeclaration
in interfaceEK9Listener
- Overrides:
enterVariableOnlyDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterVariableDeclaration
Just a straight forward declaration of a variable.- Specified by:
enterVariableDeclaration
in interfaceEK9Listener
- Overrides:
enterVariableDeclaration
in 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:
exitVariableDeclaration
in interfaceEK9Listener
- Overrides:
exitVariableDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitAggregateProperty
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.aggregateProperty()
.The default implementation does nothing.
- Specified by:
exitAggregateProperty
in interfaceEK9Listener
- Overrides:
exitAggregateProperty
in 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:
exitPreFlowStatement
in interfaceEK9Listener
- Overrides:
exitPreFlowStatement
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitGuardExpression
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.guardExpression()
.The default implementation does nothing.
- Specified by:
exitGuardExpression
in interfaceEK9Listener
- Overrides:
exitGuardExpression
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitAssignmentStatement
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.assignmentStatement()
.The default implementation does nothing.
- Specified by:
exitAssignmentStatement
in interfaceEK9Listener
- Overrides:
exitAssignmentStatement
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterConstantDeclaration
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.constantDeclaration()
.The default implementation does nothing.
- Specified by:
enterConstantDeclaration
in interfaceEK9Listener
- Overrides:
enterConstantDeclaration
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
exitConstantDeclaration
Description copied from class:EK9BaseListener
Exit a parse tree produced byEK9Parser.constantDeclaration()
.The default implementation does nothing.
- Specified by:
exitConstantDeclaration
in interfaceEK9Listener
- Overrides:
exitConstantDeclaration
in 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:
exitConstantInitialiser
in interfaceEK9Listener
- Overrides:
exitConstantInitialiser
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterIntegerLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by theintegerLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterIntegerLiteral
in interfaceEK9Listener
- Overrides:
enterIntegerLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterFloatingPointLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by thefloatingPointLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterFloatingPointLiteral
in interfaceEK9Listener
- Overrides:
enterFloatingPointLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterBinaryLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by thebinaryLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterBinaryLiteral
in interfaceEK9Listener
- Overrides:
enterBinaryLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterBooleanLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by thebooleanLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterBooleanLiteral
in interfaceEK9Listener
- Overrides:
enterBooleanLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterCharacterLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by thecharacterLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterCharacterLiteral
in interfaceEK9Listener
- Overrides:
enterCharacterLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterStringLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by thestringLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterStringLiteral
in interfaceEK9Listener
- Overrides:
enterStringLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterStringPart
Description copied from class:EK9BaseListener
Enter a parse tree produced byEK9Parser.stringPart()
.The default implementation does nothing.
- Specified by:
enterStringPart
in interfaceEK9Listener
- Overrides:
enterStringPart
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterTimeLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by thetimeLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterTimeLiteral
in interfaceEK9Listener
- Overrides:
enterTimeLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterDateLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by thedateLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterDateLiteral
in interfaceEK9Listener
- Overrides:
enterDateLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterDateTimeLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by thedateTimeLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterDateTimeLiteral
in interfaceEK9Listener
- Overrides:
enterDateTimeLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterDurationLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by thedurationLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterDurationLiteral
in interfaceEK9Listener
- Overrides:
enterDurationLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterMillisecondLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by themillisecondLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterMillisecondLiteral
in interfaceEK9Listener
- Overrides:
enterMillisecondLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterDecorationDimensionLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by thedecorationDimensionLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterDecorationDimensionLiteral
in interfaceEK9Listener
- Overrides:
enterDecorationDimensionLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterDecorationResolutionLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by thedecorationResolutionLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterDecorationResolutionLiteral
in interfaceEK9Listener
- Overrides:
enterDecorationResolutionLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterColourLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by thecolourLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterColourLiteral
in interfaceEK9Listener
- Overrides:
enterColourLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterMoneyLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by themoneyLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterMoneyLiteral
in interfaceEK9Listener
- Overrides:
enterMoneyLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterRegularExpressionLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by theregularExpressionLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterRegularExpressionLiteral
in interfaceEK9Listener
- Overrides:
enterRegularExpressionLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterVersionNumberLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by theversionNumberLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterVersionNumberLiteral
in interfaceEK9Listener
- Overrides:
enterVersionNumberLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-
enterPathLiteral
Description copied from class:EK9BaseListener
Enter a parse tree produced by thepathLiteral
labeled alternative inEK9Parser.literal()
.The default implementation does nothing.
- Specified by:
enterPathLiteral
in interfaceEK9Listener
- Overrides:
enterPathLiteral
in classEK9BaseListener
- Parameters:
ctx
- the parse tree
-