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 OBJECT_CREATIONS_DA
enum PHRASE_USAGE_DA
enum SPECIFICITIES_DA
enum TEXT_SUBSTITUTIONS_DA
enum VARIABLE_CREATIONS_DA
enum TABLES_DA
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(OBJECT_CREATIONS_DA, L"object creations", FALSE, FALSE);
    Log::declare_aspect(PHRASE_USAGE_DA, L"phrase usage", FALSE, FALSE);
    Log::declare_aspect(SPECIFICITIES_DA, L"specificities", FALSE, FALSE);
    Log::declare_aspect(TEXT_SUBSTITUTIONS_DA, L"text substitutions", FALSE, FALSE);
    Log::declare_aspect(VARIABLE_CREATIONS_DA, L"variable creations", FALSE, FALSE);
    Log::declare_aspect(TABLES_DA, L"table construction", FALSE, FALSE);
    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) {
}