Uses of Class
org.ek9lang.antlr.EK9Parser.PreFlowStatementContext
Packages that use EK9Parser.PreFlowStatementContext
Package
Description
Common parts of processing that can be reused across various phases.
E - Initial Symbol definition by traversing the 'ANTLR' - 'AST'.
G - Full Symbol Resolution can now take place.
I - PRE Intermediate Representation generation checks.
Contains critical general components used in the
Ek9Compiler listeners.-
Uses of EK9Parser.PreFlowStatementContext in org.ek9lang.antlr
Methods in org.ek9lang.antlr that return EK9Parser.PreFlowStatementContextModifier and TypeMethodDescriptionEK9Parser.ForLoopContext.preFlowStatement()EK9Parser.ForRangeContext.preFlowStatement()EK9Parser.PreFlowAndControlContext.preFlowStatement()EK9Parser.preFlowStatement()EK9Parser.TryStatementExpressionContext.preFlowStatement()EK9Parser.WhileStatementExpressionContext.preFlowStatement()Methods in org.ek9lang.antlr with parameters of type EK9Parser.PreFlowStatementContextModifier and TypeMethodDescriptionvoidEK9BaseListener.enterPreFlowStatement(EK9Parser.PreFlowStatementContext ctx) Enter a parse tree produced byEK9Parser.preFlowStatement().voidEK9Listener.enterPreFlowStatement(EK9Parser.PreFlowStatementContext ctx) Enter a parse tree produced byEK9Parser.preFlowStatement().voidEK9BaseListener.exitPreFlowStatement(EK9Parser.PreFlowStatementContext ctx) Exit a parse tree produced byEK9Parser.preFlowStatement().voidEK9Listener.exitPreFlowStatement(EK9Parser.PreFlowStatementContext ctx) Exit a parse tree produced byEK9Parser.preFlowStatement().EK9BaseVisitor.visitPreFlowStatement(EK9Parser.PreFlowStatementContext ctx) Visit a parse tree produced byEK9Parser.preFlowStatement().EK9Visitor.visitPreFlowStatement(EK9Parser.PreFlowStatementContext ctx) Visit a parse tree produced byEK9Parser.preFlowStatement(). -
Uses of EK9Parser.PreFlowStatementContext in org.ek9lang.compiler.common
Classes in org.ek9lang.compiler.common that implement interfaces with type arguments of type EK9Parser.PreFlowStatementContextModifier and TypeClassDescriptionfinal classAccess the Symbol for the lhs of the preflow statement.Methods in org.ek9lang.compiler.common with parameters of type EK9Parser.PreFlowStatementContextModifier and TypeMethodDescriptionLhsFromPreFlowOrError.apply(EK9Parser.PreFlowStatementContext ctx) -
Uses of EK9Parser.PreFlowStatementContext in org.ek9lang.compiler.phase1
Methods in org.ek9lang.compiler.phase1 with parameters of type EK9Parser.PreFlowStatementContextModifier and TypeMethodDescriptionvoidDefinitionListener.exitPreFlowStatement(EK9Parser.PreFlowStatementContext ctx) preFlowStatement : (variableDeclaration | assignmentStatement) (WITH|THEN) ; -
Uses of EK9Parser.PreFlowStatementContext in org.ek9lang.compiler.phase3
Classes in org.ek9lang.compiler.phase3 that implement interfaces with type arguments of type EK9Parser.PreFlowStatementContextModifier and TypeClassDescription(package private) final classChecks that the pre-flow expressions are valid.Methods in org.ek9lang.compiler.phase3 with parameters of type EK9Parser.PreFlowStatementContextModifier and TypeMethodDescription(package private) voidInjectedSetCheckOrError.accept(EK9Parser.PreFlowStatementContext ctx) A declaration or assignment pre-flow whose value is the injected variable:if svc <- injected,if svc := injected then svc?.voidPreFlowStatementOrError.accept(EK9Parser.PreFlowStatementContext ctx) voidExpressionsListener.exitPreFlowStatement(EK9Parser.PreFlowStatementContext ctx) -
Uses of EK9Parser.PreFlowStatementContext in org.ek9lang.compiler.phase5
Classes in org.ek9lang.compiler.phase5 that implement interfaces with type arguments of type EK9Parser.PreFlowStatementContextModifier and TypeClassDescription(package private) final classExtracts the EXISTING variable a pre-flow assigns: the target of a blind assignment (v := e()) or an assign-if-unset (v :=? e()).Methods in org.ek9lang.compiler.phase5 with parameters of type EK9Parser.PreFlowStatementContextModifier and TypeMethodDescription(package private) voidSafeAccessRepointOrError.accept(EK9Parser.PreFlowStatementContext ctx) A construct's pre-flow, judged by its marker before the marker makes the construct safe.(package private) voidRedundantIsSetCheckOrError.acceptGate(EK9Parser.PreFlowStatementContext preFlow, ConditionResult targetBefore, boolean storesUnset) The implicit gate of a guard head (<-or:=?), judged once the pre-flow's store has been tracked (D7.1).GetGuardVariable.apply(EK9Parser.PreFlowStatementContext ctx) voidPreIRListener.enterPreFlowStatement(EK9Parser.PreFlowStatementContext ctx) voidPreIRListener.exitPreFlowStatement(EK9Parser.PreFlowStatementContext ctx) PossibleExpressionConstruct.getPreFlowAssignedVariables(EK9Parser.PreFlowStatementContext ctx) The EXISTING variables the pre-flow assigns, which are initialised after the construct whether or not its body runs - seeGetGuardVariable.protected voidAbstractSafeGenericAccessMarker.processPreFlow(EK9Parser.PreFlowStatementContext ctx, IScope wouldBeSafeScope) The pre-flow's subject is safe in the construct ONLY when the pre-flow is a guard that skips the construct when the subject is unset (<-,:=?-PreFlowCanSkipBody). -
Uses of EK9Parser.PreFlowStatementContext in org.ek9lang.compiler.phase7.generator
Methods in org.ek9lang.compiler.phase7.generator with parameters of type EK9Parser.PreFlowStatementContextModifier and TypeMethodDescriptionGuardedConditionEvaluator.evaluate(EK9Parser.ExpressionContext conditionExpr, EK9Parser.PreFlowStatementContext preFlowStmt, VariableDetails conditionResult, String scopeId, DebugInfo debugInfo) Evaluates a condition expression that may have guard variables.LoopGuardHelper.evaluateGuardVariable(EK9Parser.PreFlowStatementContext preFlowStmt, String guardScopeId) Evaluate guard variable for control flow constructs.LoopGuardHelper.evaluatePreFlowSetupOnly(EK9Parser.PreFlowStatementContext preFlowStmt) Emit ONLY the preflow variable setup (declaration/assignment) with NO guard entry check.(package private) IntegerGuardedConditionEvaluator.getGuardOperatorType(EK9Parser.PreFlowStatementContext preFlowStmt) Determines the guard operator type from a preFlowStatement.GuardedScopeOrchestrator.orchestrate(org.antlr.v4.runtime.tree.ParseTree ctx, EK9Parser.PreFlowStatementContext preFlowStmt, EK9Parser.ReturningParamContext returningParam, Function<GuardedScopeOrchestrator.OrchestratorContext, List<IRInstr>> coreGenerator) Orchestrate for constructs whose core producesList<IRInstr>.GuardedScopeOrchestrator.orchestrate(org.antlr.v4.runtime.tree.ParseTree ctx, EK9Parser.PreFlowStatementContext preFlowStmt, EK9Parser.ReturningParamContext returningParam, Function<GuardedScopeOrchestrator.OrchestratorContext, List<IRInstr>> coreGenerator, boolean coreManagesReturnSetup) Orchestrate with control over return-variable setup placement.GuardedScopeOrchestrator.orchestrateChain(org.antlr.v4.runtime.tree.ParseTree ctx, EK9Parser.PreFlowStatementContext preFlowStmt, EK9Parser.ReturningParamContext returningParam, Function<GuardedScopeOrchestrator.OrchestratorContext, ControlFlowChainDetails> coreGenerator) Orchestrate for constructs whose core producesControlFlowChainDetails. -
Uses of EK9Parser.PreFlowStatementContext in org.ek9lang.compiler.support
Methods in org.ek9lang.compiler.support with parameters of type EK9Parser.PreFlowStatementContextModifier and TypeMethodDescriptionstatic booleanPreFlowCanSkipBody.canSkipBody(EK9Parser.PreFlowStatementContext preFlow) True iff this pre-flow is a body-skipping guard (<-,:=?).static Optional<org.antlr.v4.runtime.tree.ParseTree> PreFlowCanSkipBody.guardTargetNode(EK9Parser.PreFlowStatementContext preFlow) THE node whose recorded symbol is a guard's TARGET - the variable its implicit gate set-checks: thevariableDeclarationofv <- e(), or the identifier ofv :=? e().static booleanBooleanTruthGuard.isTruthGuardPosition(EK9Parser.PreFlowStatementContext preFlow) Is this pre-flow a<-or:=?(to a plain identifier) in the head of aniforelse if? Says nothing about the type - seeBooleanTruthGuard.targetOf(EK9Parser.PreFlowStatementContext, Function, ISymbol).BooleanTruthGuard.targetOf(EK9Parser.PreFlowStatementContext preFlow, Function<org.antlr.v4.runtime.tree.ParseTree, ISymbol> recordedSymbol, ISymbol ek9Boolean) The target of a Boolean truth guard, if this pre-flow is one.