Record Class ControlFlowChainDetails
java.lang.Object
java.lang.Record
org.ek9lang.compiler.ir.ControlFlowChainDetails
public record ControlFlowChainDetails(String result, String chainType, GuardVariableDetails guardDetails, EvaluationVariableDetails evaluationDetails, ReturnVariableDetails returnDetails, List<ConditionCase> conditionChain, DefaultCaseDetails defaultDetails, EnumOptimizationInfo enumOptimizationInfo, BasicDetails basicDetails)
extends Record
Record containing all information needed to create a CONTROL_FLOW_CHAIN instruction.
This record aggregates all the necessary data for generating the unified control flow IR, supporting all variants: Question operators, if/else statements, switch statements, guarded assignments, and guard variable patterns.
Used by ControlFlowChainGenerator to coordinate the creation of CONTROL_FLOW_CHAIN instructions with consistent memory management, scope boundaries, and optimization hints.
-
Constructor Summary
ConstructorsConstructorDescriptionControlFlowChainDetails
(String result, String chainType, GuardVariableDetails guardDetails, EvaluationVariableDetails evaluationDetails, ReturnVariableDetails returnDetails, List<ConditionCase> conditionChain, DefaultCaseDetails defaultDetails, EnumOptimizationInfo enumOptimizationInfo, BasicDetails basicDetails) Creates an instance of aControlFlowChainDetails
record class. -
Method Summary
Modifier and TypeMethodDescriptionReturns the value of thebasicDetails
record component.Returns the value of thechainType
record component.Returns the value of theconditionChain
record component.Get condition scope ID.static ControlFlowChainDetails
createIfElse
(String result, List<ConditionCase> conditionChain, List<IRInstr> defaultBodyEvaluation, String defaultResult, BasicDetails basicDetails) Create details for an if/else statement.static ControlFlowChainDetails
createIfElseWithGuards
(String result, List<String> guardVariables, List<IRInstr> guardScopeSetup, String guardScopeId, String conditionScopeId, List<ConditionCase> conditionChain, List<IRInstr> defaultBodyEvaluation, String defaultResult, BasicDetails basicDetails) Create details for if/else with guard variables.static ControlFlowChainDetails
createQuestionOperator
(String result, List<ConditionCase> conditionChain, List<IRInstr> defaultBodyEvaluation, String defaultResult, BasicDetails basicDetails) Create details for a Question operator (?).static ControlFlowChainDetails
createSwitch
(String result, String evaluationVariable, String evaluationVariableType, List<IRInstr> evaluationVariableSetup, String returnVariable, String returnVariableType, List<IRInstr> returnVariableSetup, List<ConditionCase> conditionChain, List<IRInstr> defaultBodyEvaluation, String defaultResult, BasicDetails basicDetails) Create details for a general switch statement.static ControlFlowChainDetails
createSwitchEnum
(String result, String evaluationVariable, String evaluationVariableType, List<IRInstr> evaluationVariableSetup, String returnVariable, String returnVariableType, List<IRInstr> returnVariableSetup, List<ConditionCase> conditionChain, List<IRInstr> defaultBodyEvaluation, String defaultResult, EnumOptimizationInfo enumOptimizationInfo, BasicDetails basicDetails) Create details for a switch statement with enum optimization.static ControlFlowChainDetails
createSwitchWithGuards
(String result, List<String> guardVariables, List<IRInstr> guardScopeSetup, String guardScopeId, String conditionScopeId, String evaluationVariable, String evaluationVariableType, List<IRInstr> evaluationVariableSetup, String returnVariable, String returnVariableType, List<IRInstr> returnVariableSetup, List<ConditionCase> conditionChain, List<IRInstr> defaultBodyEvaluation, String defaultResult, BasicDetails basicDetails) Create details for switch with guard variables.Get default body evaluation instructions.Returns the value of thedefaultDetails
record component.Get default result variable.Returns the value of theenumOptimizationInfo
record component.final boolean
Indicates whether some other object is "equal to" this one.Returns the value of theevaluationDetails
record component.Get evaluation variable.Get evaluation variable setup instructions.Get evaluation variable type.Get the scope ID from basic details.Returns the value of theguardDetails
record component.Get guard scope ID.Get guard scope setup instructions.Get guard variables list.boolean
Check if this construct has a default case.boolean
Check if this switch has enum optimization information.boolean
Check if this construct has an evaluation variable.boolean
Check if this construct has a guard scope.boolean
Check if this construct uses guard variables.final int
hashCode()
Returns a hash code value for this object.boolean
Check if this construct has a return variable.boolean
Check if this construct has a shared condition scope.boolean
Check if this is a guard-enabled construct.boolean
isIfElse()
Check if this is an if/else construct.boolean
Check if this is a Question operator.boolean
isSwitch()
Check if this is a switch construct.result()
Returns the value of theresult
record component.Returns the value of thereturnDetails
record component.Get return variable.Get return variable setup instructions.Get return variable type.toString()
IR-optimized toString following EK9's bracket-only, no-indentation format.
-
Constructor Details
-
ControlFlowChainDetails
public ControlFlowChainDetails(String result, String chainType, GuardVariableDetails guardDetails, EvaluationVariableDetails evaluationDetails, ReturnVariableDetails returnDetails, List<ConditionCase> conditionChain, DefaultCaseDetails defaultDetails, EnumOptimizationInfo enumOptimizationInfo, BasicDetails basicDetails) Creates an instance of aControlFlowChainDetails
record class.- Parameters:
result
- the value for theresult
record componentchainType
- the value for thechainType
record componentguardDetails
- the value for theguardDetails
record componentevaluationDetails
- the value for theevaluationDetails
record componentreturnDetails
- the value for thereturnDetails
record componentconditionChain
- the value for theconditionChain
record componentdefaultDetails
- the value for thedefaultDetails
record componentenumOptimizationInfo
- the value for theenumOptimizationInfo
record componentbasicDetails
- the value for thebasicDetails
record component
-
-
Method Details
-
createQuestionOperator
public static ControlFlowChainDetails createQuestionOperator(String result, List<ConditionCase> conditionChain, List<IRInstr> defaultBodyEvaluation, String defaultResult, BasicDetails basicDetails) Create details for a Question operator (?). -
createIfElse
public static ControlFlowChainDetails createIfElse(String result, List<ConditionCase> conditionChain, List<IRInstr> defaultBodyEvaluation, String defaultResult, BasicDetails basicDetails) Create details for an if/else statement. -
createSwitchEnum
public static ControlFlowChainDetails createSwitchEnum(String result, String evaluationVariable, String evaluationVariableType, List<IRInstr> evaluationVariableSetup, String returnVariable, String returnVariableType, List<IRInstr> returnVariableSetup, List<ConditionCase> conditionChain, List<IRInstr> defaultBodyEvaluation, String defaultResult, EnumOptimizationInfo enumOptimizationInfo, BasicDetails basicDetails) Create details for a switch statement with enum optimization. -
createSwitch
public static ControlFlowChainDetails createSwitch(String result, String evaluationVariable, String evaluationVariableType, List<IRInstr> evaluationVariableSetup, String returnVariable, String returnVariableType, List<IRInstr> returnVariableSetup, List<ConditionCase> conditionChain, List<IRInstr> defaultBodyEvaluation, String defaultResult, BasicDetails basicDetails) Create details for a general switch statement. -
hasEnumOptimization
public boolean hasEnumOptimization()Check if this switch has enum optimization information. -
getScopeId
Get the scope ID from basic details. -
isQuestionOperator
public boolean isQuestionOperator()Check if this is a Question operator. -
isIfElse
public boolean isIfElse()Check if this is an if/else construct. -
isSwitch
public boolean isSwitch()Check if this is a switch construct. -
toString
-
createIfElseWithGuards
public static ControlFlowChainDetails createIfElseWithGuards(String result, List<String> guardVariables, List<IRInstr> guardScopeSetup, String guardScopeId, String conditionScopeId, List<ConditionCase> conditionChain, List<IRInstr> defaultBodyEvaluation, String defaultResult, BasicDetails basicDetails) Create details for if/else with guard variables. -
createSwitchWithGuards
public static ControlFlowChainDetails createSwitchWithGuards(String result, List<String> guardVariables, List<IRInstr> guardScopeSetup, String guardScopeId, String conditionScopeId, String evaluationVariable, String evaluationVariableType, List<IRInstr> evaluationVariableSetup, String returnVariable, String returnVariableType, List<IRInstr> returnVariableSetup, List<ConditionCase> conditionChain, List<IRInstr> defaultBodyEvaluation, String defaultResult, BasicDetails basicDetails) Create details for switch with guard variables. -
guardVariables
-
guardScopeSetup
-
guardScopeId
Get guard scope ID. -
conditionScopeId
Get condition scope ID. -
evaluationVariable
Get evaluation variable. -
evaluationVariableType
Get evaluation variable type. -
evaluationVariableSetup
-
returnVariable
Get return variable. -
returnVariableType
Get return variable type. -
returnVariableSetup
-
defaultBodyEvaluation
-
defaultResult
Get default result variable. -
hasGuardVariables
public boolean hasGuardVariables()Check if this construct uses guard variables. -
hasGuardScope
public boolean hasGuardScope()Check if this construct has a guard scope. -
hasEvaluationVariable
public boolean hasEvaluationVariable()Check if this construct has an evaluation variable. -
hasReturnVariable
public boolean hasReturnVariable()Check if this construct has a return variable. -
hasDefaultCase
public boolean hasDefaultCase()Check if this construct has a default case. -
isGuardEnabled
public boolean isGuardEnabled()Check if this is a guard-enabled construct. -
hashCode
-
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared withObjects::equals(Object,Object)
. -
result
Returns the value of theresult
record component.- Returns:
- the value of the
result
record component
-
chainType
Returns the value of thechainType
record component.- Returns:
- the value of the
chainType
record component
-
guardDetails
Returns the value of theguardDetails
record component.- Returns:
- the value of the
guardDetails
record component
-
evaluationDetails
Returns the value of theevaluationDetails
record component.- Returns:
- the value of the
evaluationDetails
record component
-
returnDetails
Returns the value of thereturnDetails
record component.- Returns:
- the value of the
returnDetails
record component
-
conditionChain
Returns the value of theconditionChain
record component.- Returns:
- the value of the
conditionChain
record component
-
defaultDetails
Returns the value of thedefaultDetails
record component.- Returns:
- the value of the
defaultDetails
record component
-
enumOptimizationInfo
Returns the value of theenumOptimizationInfo
record component.- Returns:
- the value of the
enumOptimizationInfo
record component
-
basicDetails
Returns the value of thebasicDetails
record component.- Returns:
- the value of the
basicDetails
record component
-