Package org.ek9lang.compiler.phase7.generator
package org.ek9lang.compiler.phase7.generator
-
ClassDescriptionActs as base for most generators as they all require the context and in most cases need to generate debug information.Both AND/OR are very similar in processing, the only real differences are:
What operation to call and the op code to generate.Pulls out the common code for variable and variable-only declarations.gIR Generation for the assert statement.Creates IR instructions for assignment expressions.Process assignment statement: variable = expression Uses RELEASE-then-RETAIN pattern for memory-safe assignments.Generates IR instructions for binary operations (e.g., addition, subtraction, comparison, etc.).Creates IR instructions for block statements.Generates IR instructions for function/method calls.Unified processor for constructor call generation.Unified generator for all EK9 control flow constructs using CONTROL_FLOW_CHAIN.Creates IR instructions for expressions.Generates IR for for-in loops: for item in collection.Generates IR for for-range loops using FOR_RANGE_POLYMORPHIC instruction.Coordinates for-statement IR generation by delegating to specialized generators.Unified function call processor using CallDetailsBuilder for method resolution and promotion.Struct-style data holder for all Phase 7 IR generators and helpers.Guarded assignment generator using unified CONTROL_FLOW_CHAIN approach.Generates IR for if/else statements using CONTROL_FLOW_CHAIN.Static factory for creating complete tree of IR generators ONCE per construct.Generates IR instructions for list literal expressions.Deals with generating the correct IR Instructions for processing any form of literal.Creates IR instructions for object access expressions.Deals with the generation of the IR for OperationDetails.Generates IR instructions for primary references (THIS and SUPER keywords).Generates IR instructions for question operator (?) using unified SWITCH_CHAIN_BLOCK.Generates IR instructions for Boolean AND operations using LOGICAL_AND_BLOCK pattern.Generates IR instructions for Boolean OR operations using LOGICAL_OR_BLOCK pattern.Creates IR instructions for statements.Generates short-circuit OR chains for multiple switch case expressions.Result of comparison generation.Generates IR for switch statements (statement form only) using CONTROL_FLOW_CHAIN.Record to hold evaluation variable information.Generates IR instructions for unary operations (e.g., unary minus, increment, decrement, etc.).Creates IR instructions for variable declarations.Creates IR instructions for variable only declarations.Generates IR for while and do-while loops using CONTROL_FLOW_CHAIN.