Some fundamental definitions, mostly declaring object types to the Foundation module.

§1. Every program using foundation must define this:

define PROGRAM_NAME "inweb"

§2. We need to itemise the structures we'll want to allocate. For explanations, see A Brief Guide to Foundation (in foundation).

enum asset_rule_CLASS
enum breadcrumb_request_CLASS
enum chapter_CLASS
enum colony_CLASS
enum colony_member_CLASS
enum colour_scheme_CLASS
enum colouring_language_block_CLASS
enum colouring_rule_CLASS
enum defined_constant_CLASS
enum enumeration_set_CLASS
enum footnote_CLASS
enum hash_table_entry_CLASS
enum hash_table_entry_usage_CLASS
enum language_function_CLASS
enum language_type_CLASS
enum macro_usage_CLASS
enum makefile_specifics_CLASS
enum nonterminal_variable_CLASS
enum para_macro_CLASS
enum paragraph_CLASS
enum paragraph_tagging_CLASS
enum preform_nonterminal_CLASS
enum programming_language_CLASS
enum reserved_word_CLASS
enum section_CLASS
enum source_line_CLASS
enum structure_element_CLASS
enum tangle_target_CLASS
enum tex_results_CLASS
enum text_literal_CLASS
enum theme_tag_CLASS
enum weave_format_CLASS
enum weave_pattern_CLASS
enum weave_plugin_CLASS
enum weave_order_CLASS
enum web_CLASS
enum writeme_asset_CLASS
enum weave_document_node_CLASS
enum weave_head_node_CLASS
enum weave_body_node_CLASS
enum weave_tail_node_CLASS
enum weave_section_header_node_CLASS
enum weave_section_footer_node_CLASS
enum weave_chapter_header_node_CLASS
enum weave_chapter_footer_node_CLASS
enum weave_verbatim_node_CLASS
enum weave_section_purpose_node_CLASS
enum weave_subheading_node_CLASS
enum weave_bar_node_CLASS
enum weave_linebreak_node_CLASS
enum weave_pagebreak_node_CLASS
enum weave_paragraph_heading_node_CLASS
enum weave_endnote_node_CLASS
enum weave_material_node_CLASS
enum weave_figure_node_CLASS
enum weave_extract_node_CLASS
enum weave_audio_node_CLASS
enum weave_download_node_CLASS
enum weave_video_node_CLASS
enum weave_embed_node_CLASS
enum weave_pmac_node_CLASS
enum weave_vskip_node_CLASS
enum weave_chapter_node_CLASS
enum weave_section_node_CLASS
enum weave_code_line_node_CLASS
enum weave_function_usage_node_CLASS
enum weave_commentary_node_CLASS
enum weave_carousel_slide_node_CLASS
enum weave_toc_node_CLASS
enum weave_toc_line_node_CLASS
enum weave_chapter_title_page_node_CLASS
enum weave_defn_node_CLASS
enum weave_source_code_node_CLASS
enum weave_url_node_CLASS
enum weave_footnote_cue_node_CLASS
enum weave_begin_footnote_text_node_CLASS
enum weave_display_line_node_CLASS
enum weave_function_defn_node_CLASS
enum weave_item_node_CLASS
enum weave_grammar_index_node_CLASS
enum weave_inline_node_CLASS
enum weave_locale_node_CLASS
enum weave_maths_node_CLASS

§3. And then expand the following macros, all defined in Memory (in foundation).

DECLARE_CLASS_ALLOCATED_IN_ARRAYS(source_line, 1000)
DECLARE_CLASS(asset_rule)
DECLARE_CLASS(breadcrumb_request)
DECLARE_CLASS(chapter)
DECLARE_CLASS(colony)
DECLARE_CLASS(colony_member)
DECLARE_CLASS(colour_scheme)
DECLARE_CLASS(colouring_language_block)
DECLARE_CLASS(colouring_rule)
DECLARE_CLASS(defined_constant)
DECLARE_CLASS(enumeration_set)
DECLARE_CLASS(footnote)
DECLARE_CLASS(hash_table_entry_usage)
DECLARE_CLASS(hash_table_entry)
DECLARE_CLASS(language_function)
DECLARE_CLASS(language_type)
DECLARE_CLASS(macro_usage)
DECLARE_CLASS(makefile_specifics)
DECLARE_CLASS(nonterminal_variable)
DECLARE_CLASS(para_macro)
DECLARE_CLASS(paragraph_tagging)
DECLARE_CLASS(paragraph)
DECLARE_CLASS(preform_nonterminal)
DECLARE_CLASS(programming_language)
DECLARE_CLASS(reserved_word)
DECLARE_CLASS(section)
DECLARE_CLASS(structure_element)
DECLARE_CLASS(tangle_target)
DECLARE_CLASS(tex_results)
DECLARE_CLASS(text_literal)
DECLARE_CLASS(theme_tag)
DECLARE_CLASS(weave_format)
DECLARE_CLASS(weave_pattern)
DECLARE_CLASS(weave_plugin)
DECLARE_CLASS(weave_order)
DECLARE_CLASS(web)
DECLARE_CLASS(writeme_asset)

DECLARE_CLASS(weave_document_node)
DECLARE_CLASS(weave_head_node)
DECLARE_CLASS(weave_body_node)
DECLARE_CLASS(weave_tail_node)
DECLARE_CLASS(weave_section_header_node)
DECLARE_CLASS(weave_section_footer_node)
DECLARE_CLASS(weave_chapter_header_node)
DECLARE_CLASS(weave_chapter_footer_node)
DECLARE_CLASS(weave_verbatim_node)
DECLARE_CLASS(weave_section_purpose_node)
DECLARE_CLASS(weave_subheading_node)
DECLARE_CLASS(weave_bar_node)
DECLARE_CLASS(weave_linebreak_node)
DECLARE_CLASS(weave_pagebreak_node)
DECLARE_CLASS(weave_paragraph_heading_node)
DECLARE_CLASS(weave_endnote_node)
DECLARE_CLASS(weave_material_node)
DECLARE_CLASS(weave_figure_node)
DECLARE_CLASS(weave_extract_node)
DECLARE_CLASS(weave_audio_node)
DECLARE_CLASS(weave_video_node)
DECLARE_CLASS(weave_download_node)
DECLARE_CLASS(weave_embed_node)
DECLARE_CLASS(weave_pmac_node)
DECLARE_CLASS(weave_vskip_node)
DECLARE_CLASS(weave_chapter_node)
DECLARE_CLASS(weave_section_node)
DECLARE_CLASS(weave_code_line_node)
DECLARE_CLASS(weave_function_usage_node)
DECLARE_CLASS(weave_commentary_node)
DECLARE_CLASS(weave_carousel_slide_node)
DECLARE_CLASS(weave_toc_node)
DECLARE_CLASS(weave_toc_line_node)
DECLARE_CLASS(weave_chapter_title_page_node)
DECLARE_CLASS(weave_defn_node)
DECLARE_CLASS(weave_source_code_node)
DECLARE_CLASS(weave_url_node)
DECLARE_CLASS(weave_footnote_cue_node)
DECLARE_CLASS(weave_begin_footnote_text_node)
DECLARE_CLASS(weave_display_line_node)
DECLARE_CLASS(weave_item_node)
DECLARE_CLASS(weave_grammar_index_node)
DECLARE_CLASS(weave_inline_node)
DECLARE_CLASS(weave_locale_node)
DECLARE_CLASS(weave_maths_node)
DECLARE_CLASS(weave_function_defn_node)