Class AggregateDfnGenerator
java.lang.Object
org.ek9lang.compiler.phase7.AbstractDfnGenerator
org.ek9lang.compiler.phase7.AggregateDfnGenerator
- Direct Known Subclasses:
ClassDfnGenerator, ComponentDfnGenerator, RecordDfnGenerator, TraitDfnGenerator
Common code of Aggregate Construct types.
-
Field Summary
Fields inherited from class AbstractDfnGenerator
generators, notImplicitSuper, operationDfnGenerator, stackContext, voidStr -
Constructor Summary
ConstructorsConstructorDescriptionAggregateDfnGenerator(IRGenerationContext stackContext, SymbolGenus forGenus) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcreateFieldDeclarations(IRConstruct construct, AggregateSymbol aggregateSymbol) Create field declarations using AggregateSymbol.getProperties().protected voidcreateInitializationOperations(IRConstruct construct, AggregateSymbol aggregateSymbol, EK9Parser.AggregatePartsContext ctx) Create the three-phase initialization operations for the class: 1.protected voidcreateOperationsForAggregateParts(IRConstruct construct, AggregateSymbol aggregateSymbol, EK9Parser.AggregatePartsContext ctx) protected IRConstructprocessAggregate(AggregateSymbol aggregateSymbol, EK9Parser.AggregatePartsContext ctx) Methods inherited from class AbstractDfnGenerator
createCallMetaDataExtractor, createDebugInfoCreator, createInitOperation, createInstanceInitOperation, getParsedModule, newPerConstructContext, newSyntheticInitOperation, processAsMethodOrOperator, processPropertiesForInstanceInit, processSyntheticConstructor
-
Constructor Details
-
AggregateDfnGenerator
AggregateDfnGenerator(IRGenerationContext stackContext, SymbolGenus forGenus)
-
-
Method Details
-
processAggregate
protected IRConstruct processAggregate(AggregateSymbol aggregateSymbol, EK9Parser.AggregatePartsContext ctx) -
createFieldDeclarations
Create field declarations using AggregateSymbol.getProperties(). This provides structural metadata about the class's data members, separate from the behavioral operations (methods). -
createInitializationOperations
protected void createInitializationOperations(IRConstruct construct, AggregateSymbol aggregateSymbol, EK9Parser.AggregatePartsContext ctx) Create the three-phase initialization operations for the class: 1. c_init - Class/static initialization 2. i_init - Instance initialization (property declarations and immediate initialization) 3. Constructor methods will be processed separately in createOperationsForAggregateParts -
createOperationsForAggregateParts
protected void createOperationsForAggregateParts(IRConstruct construct, AggregateSymbol aggregateSymbol, EK9Parser.AggregatePartsContext ctx)
-