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 Details

  • Method Details

    • apply

      public List<IRInstr> apply(ComparisonParams params)
      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:
      apply in interface Function<ComparisonParams, List<IRInstr>>
      Parameters:
      params - Comparison parameters
      Returns:
      Instructions ending with primitive boolean in params.primitiveBooleanTemp()