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:

enum LITERAL_NOTATIONS_DA
enum OBJECT_CREATIONS_DA
enum PHRASE_USAGE_DA
enum SPECIFICITIES_DA
enum TEXT_SUBSTITUTIONS_DA
enum VARIABLE_CREATIONS_DA
enum TABLES_DA
enum UNICODE_DATA_MREASON
enum 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) {
}