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 VALUES_MODULE TRUE

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

enumerate LITERAL_NOTATIONS_DA 
enumerate OBJECT_CREATIONS_DA 
enumerate PHRASE_USAGE_DA 
enumerate SPECIFICITIES_DA 
enumerate TEXT_SUBSTITUTIONS_DA 
enumerate VARIABLE_CREATIONS_DA 
enumerate TABLES_DA 
enumerate UNICODE_DATA_MREASON 
enumerate LITERAL_PATTERN_MREASON 
COMPILE_WRITER(instance *, Instances::log)
COMPILE_WRITER(equation *, Equations::log)
COMPILE_WRITER(nonlocal_variable *, NonlocalVariables::log)

void ValuesModule::start(void) {
    Tables::Relations::start();
    Writers::register_writer('I', &Instances::writer);
    Log::declare_aspect(LITERAL_NOTATIONS_DA, U"literal notations", FALSE, FALSE);
    Log::declare_aspect(OBJECT_CREATIONS_DA, U"object creations", FALSE, FALSE);
    Log::declare_aspect(PHRASE_USAGE_DA, U"phrase usage", FALSE, FALSE);
    Log::declare_aspect(SPECIFICITIES_DA, U"specificities", FALSE, FALSE);
    Log::declare_aspect(TEXT_SUBSTITUTIONS_DA, U"text substitutions", FALSE, FALSE);
    Log::declare_aspect(VARIABLE_CREATIONS_DA, U"variable creations", FALSE, FALSE);
    Log::declare_aspect(TABLES_DA, U"table construction", FALSE, FALSE);
    Memory::reason_name(UNICODE_DATA_MREASON, "Unicode data");
    Memory::reason_name(LITERAL_PATTERN_MREASON, "Literal pattern storage");
    REGISTER_WRITER('O', Instances::log);
    REGISTER_WRITER('q', Equations::log);
    REGISTER_WRITER('Z', NonlocalVariables::log);

    InternalTests::make_test_available(I"evaluation",
        &Specifications::perform_evaluation_internal_test, FALSE);
    InternalTests::make_test_available(I"dash",
        &Dash::perform_dash_internal_test, TRUE);
    InternalTests::make_test_available(I"dashlog",
        &Dash::perform_dashlog_internal_test, FALSE);
    InternalTests::make_test_available(I"sentence",
        &SPVerb::perform_sentence_internal_test, TRUE);
    InternalTests::make_test_available(I"description",
        &SPVerb::perform_description_internal_test, TRUE);
}
void ValuesModule::end(void) {
}