Package org.ek9lang.compiler.ir.instructions
package org.ek9lang.compiler.ir.instructions
IR Instruction Classes - The instruction set for EK9 intermediate representation.
This package contains the sealed hierarchy of IR instructions that represent all executable operations in an EK9 program. Each instruction type corresponds to a specific category of operation.
Instruction Categories:
LiteralInstr- Literal value loadingMemoryInstr- Variable load/store operationsCallInstr- Method and function callsBranchInstr- Conditional and unconditional branchesLabelInstr- Branch targetsScopeInstr- Scope management and ARCThrowInstr- Exception throwingLogicalOperationInstr- AND/OR operationsControlFlowChainInstr- Complex control flowForRangePolymorphicInstr- FOR-RANGE loopsBasicBlockInstr- Basic block containerProgramEntryPointInstr- Program entry point
Coverage Instrumentation:
CoverageProbeInstr- Coverage probe insertionCoverageRegisterInstr- Coverage registrationCoverageFinalizeInstr- Coverage finalization
Testing Support:
AssertThrowsInstr- Assert throws verification
The INode interface enables the visitor pattern
for processing instructions.
-
ClassDescriptionHigh-level IR instruction for creating an aspect-woven proxy.IR instruction for test-only assertion constructs that wrap expressions in try-catch.Represents a basic block in the EK9 IR - a sequence of instructions with single entry and exit.Specialized IR instruction for control flow operations (BRANCH, BRANCH_TRUE, BRANCH_FALSE, ASSERT, RETURN).Specialized IR instruction for method calls (CALL, CALL_VIRTUAL, CALL_STATIC, CALL_DISPATCHER).IR instruction for explicit type casting.Unified IR instruction for all EK9 control flow constructs.Specialized IR instruction for coverage finalization (COVERAGE_FINALIZE).Specialized IR instruction for coverage probe recording (COVERAGE_PROBE).Specialized IR instruction for coverage module registration (COVERAGE_REGISTER).High-level IR instruction for a precomputed dispatch table.High-level IR instruction for generating enum iterator implementation.Represents a field/property declaration in an EK9 construct (class, record, component, etc.).Specialized IR instruction for EK9 polymorphic for-range loops.Dispatch case for ascending loops (direction < 0).Dispatch case for descending loops (direction > 0).Container for all three dispatch cases in a for-range loop.Dispatch case for equal loops (direction == 0).Non-executable metadata about the loop structure.Scope identifiers for different parts of the loop structure.Models the concept of an Intermediate Representation construct.In EK9 every construct becomes one of these nodes.Base class for all IR instructions in the EK9 intermediate representation.Specialized IR instruction for control flow labels (LABEL).IR instruction for loading literal/constant values.IR instruction for logical operations (AND/OR) with short-circuit capability.The type of logical operation.Specialized IR instruction for memory operations (LOAD, STORE, ALLOCA, REFERENCE).An operation on some sort on a Construct.IR instruction for loading primitive literal values (int, boolean, java.lang.String).IR instruction containing all discovered programs and their metadata.Visitor interface for specialized handling of ProgramEntryPointInstr.IR instruction for sanitizing string values to prevent injection attacks.Specialized IR instruction for scope management (SCOPE_ENTER, SCOPE_EXIT, SCOPE_REGISTER).IR instruction for string interpolation.Specialized IR instruction for throwing exceptions (THROW).