Class ComparisonEvaluator
java.lang.Object
org.ek9lang.compiler.phase7.support.ComparisonEvaluator
- All Implemented Interfaces:
Function<ComparisonParams, List<IRInstr>>
public final class ComparisonEvaluator
extends Object
implements Function<ComparisonParams, List<IRInstr>>
CONCERN: Comparison evaluation with boolean primitive extraction.
RESPONSIBILITY: Compare two values and extract primitive boolean result.
REUSABILITY: ALL control flow generators needing comparison conditions.
Composite helper that combines: 1. BinaryOperatorInvoker (for comparison operator call) 2. PrimitiveBooleanExtractor (for UNBOX to primitive boolean)
This pattern appears in: - ForStatementGenerator (loop condition checks) - WhileStatementGenerator (loop condition) - IfStatementGenerator (conditional evaluation) - SwitchStatementGenerator (case comparisons)
-
Constructor Summary
ConstructorsConstructorDescriptionComparisonEvaluator(BinaryOperatorInvoker binaryOperatorInvoker, PrimitiveBooleanExtractor primitiveBooleanExtractor) -
Method Summary
Modifier and TypeMethodDescriptionapply(ComparisonParams params) Evaluate comparison and extract primitive boolean.
-
Constructor Details
-
ComparisonEvaluator
public ComparisonEvaluator(BinaryOperatorInvoker binaryOperatorInvoker, PrimitiveBooleanExtractor primitiveBooleanExtractor)
-
-
Method Details
-
apply
Evaluate comparison and extract primitive boolean.Handles: 1. Binary operator invocation (e.g., "<", "<=", ">", ">=", "==") 2. UNBOX of EK9 Boolean result to primitive boolean 3. Memory management for both operations
- Specified by:
applyin interfaceFunction<ComparisonParams, List<IRInstr>>- Parameters:
params- Comparison parameters- Returns:
- Instructions ending with primitive boolean in params.primitiveBooleanTemp()
-