Class ScopeInstrAsmGenerator
java.lang.Object
org.ek9lang.compiler.backend.jvm.AbstractAsmGenerator
org.ek9lang.compiler.backend.jvm.ScopeInstrAsmGenerator
- All Implemented Interfaces:
Consumer<ScopeInstr>
Specialized ASM generator for ScopeInstr processing.
Handles SCOPE_ENTER, SCOPE_EXIT, and SCOPE_REGISTER operations.
While JVM doesn't need explicit scope management for memory (GC handles that), scopes are critical for: - LocalVariableTable generation (debug information) - Variable lifetime tracking for debuggers - Proper variable visibility in nested blocks (if/else/switch/for/try)
-
Nested Class Summary
Nested classes/interfaces inherited from class AbstractAsmGenerator
AbstractAsmGenerator.LocalVariableInfo, AbstractAsmGenerator.MethodContext, AbstractAsmGenerator.ScopeInfo, AbstractAsmGenerator.TempVariableSource -
Field Summary
Fields inherited from class AbstractAsmGenerator
classWriter, constructTargetTuple, outputVisitor -
Constructor Summary
ConstructorsConstructorDescriptionScopeInstrAsmGenerator(ConstructTargetTuple constructTargetTuple, OutputVisitor outputVisitor, org.objectweb.asm.ClassWriter classWriter) -
Method Summary
Modifier and TypeMethodDescriptionvoidaccept(ScopeInstr scopeInstr) Generate JVM bytecode for a scope operation instruction.Methods inherited from class AbstractAsmGenerator
convertBooleanToInt, convertToJvmDescriptor, convertToJvmName, generateBooleanLiteral, generateCharacterLiteral, generateDebugInfo, generateFloatLiteral, generateIntegerLiteral, generateLoadVariable, generateLocalVariableTable, generateMethodDescriptor, generateObjectLiteral, generateStackOperation, generateStoreVariable, generateStringLiteral, getCurrentMethodVisitor, getMethodContext, getOrCreateLabel, getVariableIndex, isVariableAllocated, setCurrentMethodVisitor, setSharedMethodContext, trackTempVariableFromLiteral, trackTempVariableFromLoad
-
Constructor Details
-
ScopeInstrAsmGenerator
ScopeInstrAsmGenerator(ConstructTargetTuple constructTargetTuple, OutputVisitor outputVisitor, org.objectweb.asm.ClassWriter classWriter)
-
-
Method Details
-
accept
Generate JVM bytecode for a scope operation instruction. Uses ScopeInstr opcode to determine the specific operation.- Specified by:
acceptin interfaceConsumer<ScopeInstr>
-