Setting up the use of this module.

§1. This section simoly 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 PIPELINE_MODULE TRUE

§2. This module defines the following classes:

enum I6T_intervention_CLASS
enum codegen_pipeline_CLASS
enum pipeline_step_CLASS
enum uniqueness_count_CLASS
enum text_literal_holder_CLASS
enum routine_body_request_CLASS
enum pipeline_stage_CLASS
enum code_generation_target_CLASS
enum code_generation_CLASS
enum generated_segment_CLASS
enum link_instruction_CLASS
enum tree_inventory_CLASS
enum tree_inventory_item_CLASS
DECLARE_CLASS(I6T_intervention)
DECLARE_CLASS(codegen_pipeline)
DECLARE_CLASS(pipeline_step)
DECLARE_CLASS(uniqueness_count)
DECLARE_CLASS(text_literal_holder)
DECLARE_CLASS(routine_body_request)
DECLARE_CLASS(pipeline_stage)
DECLARE_CLASS(code_generation_target)
DECLARE_CLASS(code_generation)
DECLARE_CLASS(generated_segment)
DECLARE_CLASS(link_instruction)
DECLARE_CLASS(tree_inventory)
DECLARE_CLASS(tree_inventory_item)

§3. Like all modules, this one must define a start and end function:

void PipelineModule::start(void) {
    Register this module's memory allocation reasons3.1;
    Register this module's stream writers3.2;
    Register this module's debugging log aspects3.4;
    Register this module's debugging log writers3.5;
}
void PipelineModule::end(void) {
}

§3.1. Register this module's memory allocation reasons3.1 =

    ;

§3.2. Register this module's stream writers3.2 =

    ;

§3.3.

enum TEMPLATE_READING_DA
enum RESOLVING_CONDITIONAL_COMPILATION_DA
enum EXTERNAL_SYMBOL_RESOLUTION_DA
enum ELIMINATION_DA
enum CONSTANT_DEPTH_CALCULATION_DA

§3.4. Register this module's debugging log aspects3.4 =

    Log::declare_aspect(TEMPLATE_READING_DA, L"template reading", FALSE, FALSE);
    Log::declare_aspect(RESOLVING_CONDITIONAL_COMPILATION_DA, L"resolving conditional compilation", FALSE, FALSE);
    Log::declare_aspect(EXTERNAL_SYMBOL_RESOLUTION_DA, L"external symbol resolution", FALSE, FALSE);
    Log::declare_aspect(ELIMINATION_DA, L"code elimination", FALSE, FALSE);
    Log::declare_aspect(CONSTANT_DEPTH_CALCULATION_DA, L"constant depth calculation", FALSE, FALSE);

§3.5. Register this module's debugging log writers3.5 =

    ;