Class ShortCircuitAndGenerator
java.lang.Object
org.ek9lang.compiler.phase7.generator.AbstractGenerator
org.ek9lang.compiler.phase7.generator.AbstractShortCircuitGenerator
org.ek9lang.compiler.phase7.generator.ShortCircuitAndGenerator
- All Implemented Interfaces:
Function<ExprProcessingDetails, List<IRInstr>>
Generates IR instructions for Boolean AND operations using LOGICAL_AND_BLOCK pattern.
This generator creates a declarative logical operation block containing:
1. Left operand evaluation and primitive boolean condition
2. Right operand evaluation instructions (for non-short-circuit path)
3. Result computation instructions (EK9 Boolean._and() call)
4. All memory management
Backends can choose between short-circuit and full evaluation strategies based on the usage context and target-specific optimizations.
-
Field Summary
Fields inherited from class AbstractGenerator
debugInfoCreator, instructionBuilder, stackContext -
Constructor Summary
ConstructorsConstructorDescriptionShortCircuitAndGenerator(IRGenerationContext stackContext, VariableMemoryManagement variableMemoryManagement, RecordExprProcessing recordExprProcessing) -
Method Summary
Modifier and TypeMethodDescriptionprotected CallDetailsgetCallDetails(String lhsVariable, String rhsVariable) Methods inherited from class AbstractShortCircuitGenerator
applyMethods inherited from class AbstractGenerator
createTempVariable, createTempVariableFromContext, extractReturnType, getRecordedSymbolOrException
-
Constructor Details
-
ShortCircuitAndGenerator
public ShortCircuitAndGenerator(IRGenerationContext stackContext, VariableMemoryManagement variableMemoryManagement, RecordExprProcessing recordExprProcessing)
-
-
Method Details
-
getCallDetails
- Specified by:
getCallDetailsin classAbstractShortCircuitGenerator
-