Setting up the use of this module.
§1. This section simply sets up the module in ways expected by foundation, and contains no code of interest. The following constant exists only in tools which use this module:
define FINAL_MODULE TRUE
§2. This module defines the following classes:
enum code_generator_CLASS enum code_generation_CLASS enum generated_segment_CLASS enum vanilla_function_CLASS enum I6_generation_data_CLASS enum C_generation_data_CLASS enum vanilla_dword_CLASS enum C_property_CLASS enum C_pv_pair_CLASS enum C_property_owner_CLASS enum C_supported_opcode_CLASS
DECLARE_CLASS(code_generator) DECLARE_CLASS(code_generation) DECLARE_CLASS(generated_segment) DECLARE_CLASS(vanilla_function) DECLARE_CLASS(I6_generation_data) DECLARE_CLASS(C_generation_data) DECLARE_CLASS(vanilla_dword) DECLARE_CLASS(C_property) DECLARE_CLASS(C_pv_pair) DECLARE_CLASS(C_property_owner) DECLARE_CLASS(C_supported_opcode)
§3. Like all modules, this one must define a start and end function:
void FinalModule::start(void) { Register this module's memory allocation reasons3.2; Register this module's stream writers3.3; Register this module's debugging log aspects3.4; Register this module's debugging log writers3.5; } void FinalModule::end(void) { }
enum CODE_GENERATION_MREASON
§3.2. Register this module's memory allocation reasons3.2 =
Memory::reason_name(CODE_GENERATION_MREASON, "code generation workspace for objects");
- This code is used in §3.
§3.3. Register this module's stream writers3.3 =
; enum PROPERTY_ALLOCATION_DA
- This code is used in §3.
§3.4. Register this module's debugging log aspects3.4 =
Log::declare_aspect(PROPERTY_ALLOCATION_DA, U"property allocation", FALSE, FALSE);
- This code is used in §3.
§3.5. Register this module's debugging log writers3.5 =
;
- This code is used in §3.