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 BYTECODE_MODULE TRUE
void BytecodeModule::start(void) { Register this module's memory allocation reasons2.1; Register this module's stream writers2.2; Register this module's debugging log aspects2.3; Register this module's debugging log writers2.4; InterInstruction::create_language(); InterTypes::initialise_constructors(); } void BytecodeModule::end(void) { }
enumerate INTER_SYMBOLS_MREASON
enumerate INTER_BYTECODE_MREASON
enumerate INTER_LINKS_MREASON
enumerate TREE_LIST_MREASON
Register this module's memory allocation reasons2.1 =
Memory::reason_name(INTER_SYMBOLS_MREASON, "inter symbols storage"); Memory::reason_name(INTER_BYTECODE_MREASON, "inter bytecode storage"); Memory::reason_name(INTER_LINKS_MREASON, "inter links storage"); Memory::reason_name(TREE_LIST_MREASON, "inter tree location list storage");
- This code is used in §2.
§2.2. Register this module's stream writers2.2 =
Writers::register_writer('t', &TextualInter::writer); Writers::register_writer('F', &InterInstruction::instruction_writer);
- This code is used in §2.
enumerate INTER_FILE_READ_DA
enumerate INTER_MEMORY_DA
enumerate INTER_BINARY_DA
enumerate INTER_SYMBOLS_DA
enumerate INTER_CONNECTORS_DA
enumerate CONSTANT_DEPTH_CALCULATION_DA
Register this module's debugging log aspects2.3 =
Log::declare_aspect(INTER_MEMORY_DA, U"inter memory usage", FALSE, FALSE); Log::declare_aspect(INTER_FILE_READ_DA, U"intermediate file reading", FALSE, FALSE); Log::declare_aspect(INTER_BINARY_DA, U"inter binary", FALSE, FALSE); Log::declare_aspect(INTER_SYMBOLS_DA, U"inter symbols", FALSE, FALSE); Log::declare_aspect(INTER_CONNECTORS_DA, U"inter connectors", FALSE, FALSE); Log::declare_aspect(CONSTANT_DEPTH_CALCULATION_DA, U"constant depth calculation", FALSE, FALSE);
- This code is used in §2.
§2.4. Register this module's debugging log writers2.4 =
Writers::register_logger('3', InterSymbol::log); Writers::register_logger('4', InterSymbolsTable::log); Writers::register_logger('5', InterBookmark::log); Writers::register_logger('6', InterPackage::log);
- This code is used in §2.