Uses of Package
org.ek9lang.compiler.support
Packages that use org.ek9lang.compiler.support
Package
Description
Common parts of processing that can be reused across various phases.
F - Resolution of Explicitly Defined Type Symbols - at this point phase3 processing should have defined
most of the explicitly defined symbols, so they should be resolvable.
G - Full Symbol Resolution can now take place.
I - PRE Intermediate Representation generation checks.
K - Intermediate Representation Generation.
Contains critical general components used in the
Ek9Compiler listeners.
This is the main source of EK9 Symbols used within the compiler.
-
Classes in org.ek9lang.compiler.support used by org.ek9lang.compiler.commonClassDescriptionGeneral utility class that searches in a scope for a symbol to check for duplicates.Just a factory for all types of EK9 symbol.Can be used for a single Simple named search.
-
Classes in org.ek9lang.compiler.support used by org.ek9lang.compiler.phase2ClassDescriptionSupport for taking one aggregate and manipulating the methods and the like to be applied to another aggregate.Just a factory for all types of EK9 symbol.
-
Classes in org.ek9lang.compiler.support used by org.ek9lang.compiler.phase3ClassDescriptionSupport for taking one aggregate and manipulating the methods and the like to be applied to another aggregate.Ensures that a try statement/expression is used correctly in or out of an expression.Fixed set of constants that tend to be used to 'squirrel' away data - these are the keys.THE reading of a statement that makes a local variable (never a property) refer to the SAME object an expression evaluates to - a reference copy (an alias), never a value copy.Just a factory for all types of EK9 symbol.
-
Classes in org.ek9lang.compiler.support used by org.ek9lang.compiler.phase5ClassDescriptionFixed set of constants that tend to be used to 'squirrel' away data - these are the keys.THE reading of a statement that makes a local variable (never a property) refer to the SAME object an expression evaluates to - a reference copy (an alias), never a value copy.One strongly connected component.
-
Classes in org.ek9lang.compiler.support used by org.ek9lang.compiler.phase7ClassDescriptionTHE single predicate for "does this super type need an EK9-style super-init call emitted by the IR?".
-
Classes in org.ek9lang.compiler.support used by org.ek9lang.compiler.phase7.generationClassDescriptionJust holds a simple set of lists with the appropriate type arguments and their corresponding parameterizing parameters.
-
Classes in org.ek9lang.compiler.support used by org.ek9lang.compiler.supportClassDescriptionSupport for taking one aggregate and manipulating the methods and the like to be applied to another aggregate.The first member of a body out of order.What a type's close closes, and the parent close it then calls.Just for details that are common to all factories.For use when looking to find common types.Which common type
CommonTypeOrErroris asked for.Fixed set of constants that tend to be used to 'squirrel' away data - these are the keys.PASS = constraint satisfied; FAIL = provably violated; UNKNOWN = cannot determine statically.THE steps a constructor of an aggregate takes before its own body - use this wherever those steps are generated or modelled, so the generated code and the phase-5 call graph cannot disagree about what construction runs.One signature-level type reference: the relationshipkindand the (raw) referenced type.A winning handler and the assignment cost it won at.Used to model the scenario where a generic type has another dependent generic type used within it.Holds the details for creating and internal 'decorated name' for a generic type that has been parameterised.THE "fresh value" predicate: true iff an expression evaluates to a NEW object - one nothing else holds a reference to.Predicate that returns true iff the symbol IS theorg.ek9.lang::MutexLockgeneric type itself, or a parameterised form of it (e.g.A single enforced quality/architecture metric limit, self-describing enough that BOTH the phase-5 checker that fires the error AND the MCP/IDE enquiry layer that reports headroom can read it from the one place — seeMetricLimitsfor the registry and the rationale.How a measured value is compared against the limit.A compound limit that fires only when an absolute cap AND a relative ratio are BOTH exceeded, and only once the module is at leastminConstructsin size (small modules are naturally disconnected and are exempt).A per-genus threshold table:byGenusholds explicit limits,fallbackcovers genera not listed, andexemptgenera are not checked at all (soMetricLimit.GenusLimit.limitFor(SymbolGenus)is empty andMetricLimit.GenusLimit.isOver(int, SymbolGenus)is always false for them).A gate on a fractional score rather than a count — E11020 multiplies a construct's complexity ratio by its statement ratio and fires above 0.50, so neither operand is a limit in its own right and the threshold cannot be an int.A single-threshold limit with a comparator.THE answer to "does this code run every time its enclosing body runs?", read from its position in the parse tree.One group of banned names with what is published about it.To be used when trying to define/resolve a parameterised type.Just holds a simple set of lists with the appropriate type arguments and their corresponding parameterizing parameters.THE answer to "is this node inside a property's initialiser, and which properties of that type are set by then?" Use this wherever a check depends on a property initialiser - do not re-walk the tree for it.One identifier occurrence the compiler bound to a symbol.THE reading of a statement that makes a local variable (never a property) refer to the SAME object an expression evaluates to - a reference copy (an alias), never a value copy.This is a sort of hybrid resolver or definer function.Used as an abstract base for parameterised types.A statement that gives one of the object's own properties a dynamic function or class capturing 'this'.The outcome of walking a pipeline's stages from a source that is not bounded.One strongly connected component.Just a factory for all types of EK9 symbol.Can be used for a single Simple named search.One write. -
Classes in org.ek9lang.compiler.support used by org.ek9lang.compiler.symbolsClassDescriptionFixed set of constants that tend to be used to 'squirrel' away data - these are the keys.General utility class that searches in a scope for a symbol to check for duplicates.