Class Ek9SourceVisitor
java.lang.Object
org.antlr.v4.runtime.tree.AbstractParseTreeVisitor<Void>
- All Implemented Interfaces:
org.antlr.v4.runtime.tree.ParseTreeVisitor<Void>, EK9Visitor<Void>
A cut down visitor that just deals with packages at a basic level.
Now refactored the results of the visit out to an immutable record,
so the private properties in this visitor are now transient.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondeclarationOf(String dependencyModuleName) Where adepsordevDepsentry fordependencyModuleNameis declared, asfile:line(the file as this visitor's source was named), or just the file when the line is not known.voidvisit(EK9Parser.CompilationUnitContext context, ErrorListener errorListener) This is the key to lexing and parsing the source file mainly just for package information.Only the module's package and program blocks matter here, and both are module-level.Visit a parse tree produced byEK9Parser.packageBlock().The program NAMES only - their bodies are never visited.Methods inherited from class EK9BaseVisitor
visitAccessModifier, visitAggregateParts, visitAggregateProperty, visitAllowingOnly, visitApplicationBlock, visitApplicationDeclaration, visitArgumentParam, visitAspectDeclaration, visitAssertDoesNotThrowExpression, visitAssertPanicExpression, visitAssertStatement, visitAssertThrowsExpression, visitAssignmentExpression, visitAssignmentStatement, visitBinaryLit, visitBinaryLiteral, visitBlock, visitBlockStatement, visitBooleanLit, visitBooleanLiteral, visitBytesLit, visitBytesLiteral, visitCall, visitCaseExpression, visitCaseStatement, visitCatchStatementExpression, visitCharacterLit, visitCharacterLiteral, visitClassBlock, visitClassDeclaration, visitColourLit, visitColourLiteral, visitCompilationUnit, visitComponentBlock, visitComponentDeclaration, visitConstantBlock, visitConstantDeclaration, visitConstantInitialiser, visitConstrainDeclaration, visitConstrainType, visitDateLit, visitDateLiteral, visitDateTimeLit, visitDateTimeLiteral, visitDeclareArgumentParam, visitDecorationDimensionLiteral, visitDecorationResolutionLiteral, visitDefaultOperator, visitDict, visitDimensionLit, visitDirective, visitDirectivePart, visitDottedName, visitDurationLit, visitDurationLiteral, visitDynamicClassDeclaration, visitDynamicFunctionBody, visitDynamicFunctionDeclaration, visitDynamicVariableCapture, visitElseOnlyBlock, visitEmptyBlock, visitEnumerationDeclaration, visitExcludedControlFlowStatement, visitExcludedInstantiation, visitExcludedListComprehension, visitExcludedLiteral, visitExpression, visitExpressionParam, visitExtendDeclaration, visitExtendPreamble, visitFinallyStatementExpression, visitFloatingPointLit, visitFloatingPointLiteral, visitForLoop, visitForRange, visitForStatementExpression, visitFunctionBlock, visitFunctionDeclaration, visitHttpAccess, visitHttpVerb, visitIdentifier, visitIdentifierReference, visitIfControlBlock, visitIfStatement, visitInitValuePair, visitInstructionBlock, visitIntegerLit, visitIntegerLiteral, visitList, visitMethodDeclaration, visitMillisecondLit, visitMillisecondLiteral, visitModuleBlock, visitModuleSegment, visitMoneyLit, visitMoneyLiteral, visitNonIdentifierOperator, visitObjectAccess, visitObjectAccessExpression, visitObjectAccessStart, visitObjectAccessType, visitOperationCall, visitOperationDetails, visitOperator, visitOperatorDeclaration, visitParameterisedArgs, visitParameterisedDetail, visitParameterisedParams, visitParameterisedType, visitParamExpression, visitPathLit, visitPathLiteral, visitPipelinePart, visitPreFlowAndControl, visitPreFlowStatement, visitPrimary, visitPrimaryReference, visitRange, visitRecordBlock, visitRecordDeclaration, visitReferencesBlock, visitRegExLit, visitRegisterStatement, visitRegularExpressionLiteral, visitRequireStatement, visitReservedWord, visitResolutionLit, visitReturningParam, visitSecurityConstraint, visitServiceBlock, visitServiceDeclaration, visitServiceOperationDeclaration, visitSheBang, visitSingleStatementBlock, visitStatement, visitStreamCat, visitStreamExpression, visitStreamExpressionTermination, visitStreamFor, visitStreamPart, visitStreamSource, visitStreamStatement, visitStreamStatementTermination, visitStringLit, visitStringLiteral, visitStringPart, visitSwitchStatementExpression, visitTernaryPart, visitTextBlock, visitTextBodyDeclaration, visitTextDeclaration, visitThrowStatement, visitTimeLit, visitTimeLiteral, visitTraitBlock, visitTraitDeclaration, visitTraitPreamble, visitTraitReference, visitTraitsList, visitTryStatementExpression, visitTypeBlock, visitTypeDeclaration, visitTypeDef, visitVariableDeclaration, visitVariableOnlyDeclaration, visitVersionNumberLit, visitVersionNumberLiteral, visitWebVariableCorrelation, visitWhileStatementExpressionMethods inherited from class org.antlr.v4.runtime.tree.AbstractParseTreeVisitor
aggregateResult, defaultResult, shouldVisitNextChild, visit, visitChildren, visitErrorNode, visitTerminalMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.antlr.v4.runtime.tree.ParseTreeVisitor
visit, visitChildren, visitErrorNode, visitTerminal
-
Constructor Details
-
Ek9SourceVisitor
public Ek9SourceVisitor()
-
-
Method Details
-
visit
This is the key to lexing and parsing the source file mainly just for package information. -
getPackageDetails
-
declarationOf
Where adepsordevDepsentry fordependencyModuleNameis declared, asfile:line(the file as this visitor's source was named), or just the file when the line is not known. Used to report a dependency that cannot be resolved at the line that asked for it. -
visitModuleDeclaration
Only the module's package and program blocks matter here, and both are module-level. Visiting every child (visitChildren) recursed through every construct's body for nothing - and on a deeply nested source overflowed the stack before the compiler had even started (front-end audit FE53).- Specified by:
visitModuleDeclarationin interfaceEK9Visitor<Void>- Overrides:
visitModuleDeclarationin classEK9BaseVisitor<Void>- Parameters:
ctx- the parse tree- Returns:
- the visitor result
-
visitProgramBlock
The program NAMES only - their bodies are never visited.- Specified by:
visitProgramBlockin interfaceEK9Visitor<Void>- Overrides:
visitProgramBlockin classEK9BaseVisitor<Void>- Parameters:
ctx- the parse tree- Returns:
- the visitor result
-
visitPackageBlock
Description copied from class:EK9BaseVisitorVisit a parse tree produced byEK9Parser.packageBlock().The default implementation returns the result of calling
AbstractParseTreeVisitor.visitChildren(RuleNode)onctx.- Specified by:
visitPackageBlockin interfaceEK9Visitor<Void>- Overrides:
visitPackageBlockin classEK9BaseVisitor<Void>- Parameters:
ctx- the parse tree- Returns:
- the visitor result
-