Uses of Interface
org.ek9lang.compiler.phase5.flow.AbstractValue
Packages that use AbstractValue
-
Uses of AbstractValue in org.ek9lang.compiler.phase5.flow
Classes in org.ek9lang.compiler.phase5.flow that implement AbstractValueModifier and TypeClassDescriptionfinal recordRepresents an unreachable program point — a contradiction in constraints.final recordRepresents a variable known to be a collection or container type with both SET/UNSET and EMPTY/NON-EMPTY state tracked.final recordRepresents a variable known to hold a specific constant value.final recordRepresents a variable known to hold any value except a specific constant.final recordTracks which physicalMutexLockobject(s) a variable may currently refer to at a given program point.final recordRepresents a variable known to be within a numeric range [lo, hi].final recordRepresents a variable known to be either SET (has a meaningful value) or UNSET (declared but no value).final recordA symbolic (named) term in the flow lattice — a fresh, unconstrained parameter or local carried as itself instead of collapsing toTopValue.final recordRepresents an unknown value — no information available about the variable.Classes in org.ek9lang.compiler.phase5.flow that implement interfaces with type arguments of type AbstractValueModifier and TypeClassDescription(package private) final classTHE join of the value-tracking lattice: the least upper bound of two values at a branch convergence point.(package private) final classTHE order of the value-tracking lattice: does one abstract value admit every run-time state another admits?(package private) final classTHE order of the value-tracking lattice: does one abstract value admit every run-time state another admits?Methods in org.ek9lang.compiler.phase5.flow that return AbstractValueModifier and TypeMethodDescriptionLatticeJoin.apply(AbstractValue first, AbstractValue second) THE join of two values; commutative for every pair of kinds.Get the abstract value for a symbol.AbstractValue.join(AbstractValue other) Join this value with another at a branch convergence point.BottomValue.join(AbstractValue other) CollectionStateValue.join(AbstractValue other) ConstantValue.join(AbstractValue other) ExcludesConstantValue.join(AbstractValue other) LockIdentityValue.join(AbstractValue other) RangeValue.join(AbstractValue other) SetStateValue.join(AbstractValue other) SymbolicTermValue.join(AbstractValue other) TopValue.join(AbstractValue other) TrackedValues.knownValueOf(EK9Parser.ExpressionContext expr) The value of the expression: its literal, else its symbol's tracked value but only if that is known, else TOP.TrackedValues.knownValueOf(ISymbol symbol) The symbol's tracked value but only if that is known, else TOP - the symbol half ofTrackedValues.knownValueOf(EK9Parser.ExpressionContext), for a name that is not an expression (abystep identifier).TrackedValues.trackedValueOf(EK9Parser.ExpressionContext expr) The value of the expression: its literal, else its symbol's tracked value as it is, else TOP.(package private) AbstractValueLockIdentityValue.union(LockIdentityValue other) The union of this lock's identities and another's - for deadlock detection every possibility must stay represented.Methods in org.ek9lang.compiler.phase5.flow with parameters of type AbstractValueModifier and TypeMethodDescriptionLatticeJoin.apply(AbstractValue first, AbstractValue second) THE join of two values; commutative for every pair of kinds.AbstractValue.evaluateCondition(String operator, AbstractValue operand) Evaluate whether this abstract value satisfies a comparison condition.BottomValue.evaluateCondition(String operator, AbstractValue operand) CollectionStateValue.evaluateCondition(String operator, AbstractValue operand) ConstantValue.evaluateCondition(String operator, AbstractValue operand) ConstraintState.evaluateCondition(AbstractValue left, String operator, AbstractValue right) Evaluate a condition given the current state of two symbols/values.ExcludesConstantValue.evaluateCondition(String operator, AbstractValue operand) LockIdentityValue.evaluateCondition(String operator, AbstractValue operand) RangeValue.evaluateCondition(String operator, AbstractValue operand) SetStateValue.evaluateCondition(String operator, AbstractValue operand) SymbolicTermValue.evaluateCondition(String operator, AbstractValue operand) TopValue.evaluateCondition(String operator, AbstractValue operand) ValueTrackingAnalyzer.evaluateCondition(AbstractValue left, String operator, AbstractValue right) Evaluate a condition between two abstract values.ValueTrackingAnalyzer.evaluateDecidedCondition(AbstractValue left, String operator, AbstractValue right) THE verdict a condition is REPORTED on (E08086/E08087): asValueTrackingAnalyzer.evaluateCondition(AbstractValue, String, AbstractValue), but "always true" only when every operand is known SET (D66, Steve 2026-10-21, tri-state).AbstractValue.join(AbstractValue other) Join this value with another at a branch convergence point.BottomValue.join(AbstractValue other) CollectionStateValue.join(AbstractValue other) ConstantValue.join(AbstractValue other) ExcludesConstantValue.join(AbstractValue other) LockIdentityValue.join(AbstractValue other) RangeValue.join(AbstractValue other) SetStateValue.join(AbstractValue other) SymbolicTermValue.join(AbstractValue other) TopValue.join(AbstractValue other) voidValueTrackingAnalyzer.recordAssignment(ISymbol symbol, AbstractValue abstractValue) Record a variable assignment with a known constant value.voidValueTrackingAnalyzer.recordLiteralAssignment(ISymbol symbol, AbstractValue abstractValue) AsValueTrackingAnalyzer.recordAssignment(ISymbol, AbstractValue), for a value that is exact on EVERY pass of an open loop - a literal, which no earlier pass can have changed (D48).voidValueTrackingAnalyzer.registerModuleConstant(ISymbol symbol, AbstractValue abstractValue) Register a module-level constant (from defines constant blocks).voidConstraintState.set(ISymbol symbol, AbstractValue abstractValue) Set the abstract value for a symbol (mutates this state).booleanLatticeOrder.test(AbstractValue upper, AbstractValue lower) THE order: true ifupperadmits every run-time state thatloweradmits.