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 SUPERVISOR_MODULE TRUE
enumerate build_methodology_CLASS
enumerate build_script_CLASS
enumerate build_skill_CLASS
enumerate build_step_CLASS
enumerate build_vertex_CLASS
enumerate cd_image_CLASS
enumerate cd_layout_error_CLASS
enumerate cd_manifest_item_CLASS
enumerate cd_pageset_CLASS
enumerate cd_source_file_CLASS
enumerate cd_volume_CLASS
enumerate compiled_documentation_CLASS
enumerate control_structure_phrase_CLASS
enumerate copy_error_CLASS
enumerate element_activation_CLASS
enumerate example_index_data_CLASS
enumerate extensions_key_item_CLASS
enumerate heading_CLASS
enumerate heading_tree_CLASS
enumerate inbuild_copy_CLASS
enumerate inbuild_edition_CLASS
enumerate inbuild_genre_CLASS
enumerate inbuild_licence_CLASS
enumerate inbuild_nest_CLASS
enumerate inbuild_registry_CLASS
enumerate inbuild_requirement_CLASS
enumerate inbuild_search_result_CLASS
enumerate inbuild_work_CLASS
enumerate index_lemma_CLASS
enumerate index_reference_CLASS
enumerate index_cross_reference_CLASS
enumerate indexing_category_CLASS
enumerate inform_extension_CLASS
enumerate inform_kit_CLASS
enumerate inform_kit_ittt_CLASS
enumerate inform_language_CLASS
enumerate inform_pipeline_CLASS
enumerate inform_project_CLASS
enumerate inform_template_CLASS
enumerate kit_configuration_CLASS
enumerate kit_dependency_CLASS
enumerate satellite_test_case_CLASS
enumerate index_markup_notation_CLASS
DECLARE_CLASS(build_methodology) DECLARE_CLASS(build_script) DECLARE_CLASS(build_skill) DECLARE_CLASS(build_step) DECLARE_CLASS(build_vertex) DECLARE_CLASS(cd_image) DECLARE_CLASS(cd_layout_error) DECLARE_CLASS(cd_manifest_item) DECLARE_CLASS(cd_pageset) DECLARE_CLASS(cd_source_file) DECLARE_CLASS(cd_volume) DECLARE_CLASS(control_structure_phrase) DECLARE_CLASS(compiled_documentation) DECLARE_CLASS(copy_error) DECLARE_CLASS(element_activation) DECLARE_CLASS(example_index_data) DECLARE_CLASS(extensions_key_item) DECLARE_CLASS(heading_tree) DECLARE_CLASS(heading) DECLARE_CLASS(inbuild_copy) DECLARE_CLASS(inbuild_edition) DECLARE_CLASS(inbuild_genre) DECLARE_CLASS(inbuild_licence) DECLARE_CLASS(inbuild_nest) DECLARE_CLASS(inbuild_registry) DECLARE_CLASS(inbuild_requirement) DECLARE_CLASS(inbuild_search_result) DECLARE_CLASS(inbuild_work) DECLARE_CLASS(index_lemma) DECLARE_CLASS(index_reference) DECLARE_CLASS(index_cross_reference) DECLARE_CLASS(indexing_category) DECLARE_CLASS(inform_extension) DECLARE_CLASS(inform_kit_ittt) DECLARE_CLASS(inform_kit) DECLARE_CLASS(inform_language) DECLARE_CLASS(inform_pipeline) DECLARE_CLASS(inform_project) DECLARE_CLASS(inform_template) DECLARE_CLASS(kit_configuration) DECLARE_CLASS(kit_dependency) DECLARE_CLASS(satellite_test_case) DECLARE_CLASS(index_markup_notation)
enumerate RESULTS_SORTING_MREASON
enumerate EXTENSIONS_CENSUS_DA
enumerate HEADINGS_DA
void SupervisorModule::start(void) { Memory::reason_name(RESULTS_SORTING_MREASON, "results sorting"); Writers::register_writer('X', &Works::writer); Writers::register_writer('J', &Languages::log); Log::declare_aspect(EXTENSIONS_CENSUS_DA, U"extensions census", FALSE, FALSE); Log::declare_aspect(HEADINGS_DA, U"headings", FALSE, FALSE); Supervisor::start(); Declare the tree annotations3.1; } void SupervisorModule::end(void) { }
enumerate embodying_heading_ANNOT /* heading: for parse nodes of headings */
enumerate inclusion_of_extension_ANNOT /* inform_extension: for parse nodes of headings */
DECLARE_ANNOTATION_FUNCTIONS(embodying_heading, heading) MAKE_ANNOTATION_FUNCTIONS(embodying_heading, heading) DECLARE_ANNOTATION_FUNCTIONS(inclusion_of_extension, inform_extension) MAKE_ANNOTATION_FUNCTIONS(inclusion_of_extension, inform_extension)
§3.1. Declare the tree annotations3.1 =
Annotations::declare_type(embodying_heading_ANNOT, SupervisorModule::write_embodying_heading_ANNOT); Annotations::declare_type(inclusion_of_extension_ANNOT, SupervisorModule::write_inclusion_of_extension_ANNOT);
- This code is used in §3.
void SupervisorModule::write_embodying_heading_ANNOT(text_stream *OUT, parse_node *p) { if (Node::get_embodying_heading(p)) { heading *H = Node::get_embodying_heading(p); WRITE(" {under: H%d'%W'}", H->level, Node::get_text(H->sentence_declaring)); } } void SupervisorModule::write_inclusion_of_extension_ANNOT(text_stream *OUT, parse_node *p) { if (Node::get_inclusion_of_extension(p)) { inform_extension *E = Node::get_inclusion_of_extension(p); WRITE(" {includes: "); Copies::write_copy(OUT, E->as_copy); WRITE(" }"); } }
define STILL_MORE_ANNOTATION_PERMISSIONS_SYNTAX_CALLBACK SupervisorModule::grant_annotation_permissions
void SupervisorModule::grant_annotation_permissions(void) { Annotations::allow(HEADING_NT, embodying_heading_ANNOT); Annotations::allow(HEADING_NT, inclusion_of_extension_ANNOT); }