To write the Behaviour element (Bh) in the index.
§1. This simply itemises kinds of action, and what defines them.
void BehaviourElement::render(OUTPUT_STREAM, index_session *session) { localisation_dictionary *LD = Indexing::get_localisation(session); inter_tree *I = Indexing::get_tree(session); tree_inventory *inv = Indexing::get_inventory(session); int num_naps = InterNodeList::array_len(inv->named_action_pattern_nodes); if (num_naps == 0) { HTML_OPEN("p"); Localisation::roman(OUT, LD, I"Index.Elements.Bh.None"); HTML_CLOSE("p"); } else { InterNodeList::array_sort(inv->named_action_pattern_nodes, MakeSynopticModuleStage::module_order); inter_package *pack; LOOP_OVER_INVENTORY_PACKAGES(pack, i, inv->named_action_pattern_nodes) { text_stream *name = Metadata::optional_textual(pack, I"^name"); HTML_OPEN("p"); WRITE("<b>%S</b>", name); IndexUtilities::link_package(OUT, pack); HTML_TAG("br"); WRITE(" "); Localisation::italic(OUT, LD, I"Index.Elements.Bh.Defined"); inter_tree_node *D = InterPackage::head(pack); LOOP_THROUGH_INTER_CHILDREN(C, D) { if (Inode::is(C, PACKAGE_IST)) { inter_package *entry = PackageInstruction::at_this_head(C); if (InterPackage::type(entry) == LargeScale::package_type(I, I"_named_action_pattern_entry")) { text_stream *text = Metadata::optional_textual(entry, I"^text"); HTML_TAG("br"); WRITE(" %S", text); IndexUtilities::link_package(OUT, entry); } } } HTML_CLOSE("p"); } } }