Class ChainedComparisonEvaluator
java.lang.Object
org.ek9lang.compiler.phase7.support.ChainedComparisonEvaluator
- All Implemented Interfaces:
Function<ChainedComparisonParams, List<IRInstr>>
public final class ChainedComparisonEvaluator
extends Object
implements Function<ChainedComparisonParams, List<IRInstr>>
CONCERN: Chained comparison evaluation for polymorphic for-range.
RESPONSIBILITY: Evaluate direction check, then condition check based on result.
REUSABILITY: FOR_RANGE_POLYMORPHIC direction detection.
Composite helper that chains multiple ComparisonEvaluator calls to implement runtime direction detection in polymorphic for-range loops.
Pattern: 1. Evaluate direction comparison (e.g., "range._cmp(0) < 0") 2. Branch based on direction result 3. Evaluate appropriate condition (ascending: "<=", descending: ">=")
This eliminates the duplication between generateDirectionLessThanZero and generateDirectionGreaterThanZero in ForStatementGenerator.
-
Constructor Details
-
ChainedComparisonEvaluator
-
-
Method Details
-
apply
Evaluate chained comparison operations.Handles: 1. First comparison (e.g., direction check: "range._cmp(0) < 0") 2. Second comparison (e.g., loop condition: "counter <= end") 3. Memory management for all intermediate values
- Specified by:
applyin interfaceFunction<ChainedComparisonParams, List<IRInstr>>- Parameters:
params- Chained comparison parameters- Returns:
- Instructions ending with final primitive boolean result
-