diff options
author | Ralph Amissah <ralph.amissah@gmail.com> | 2020-05-04 15:16:25 -0400 |
---|---|---|
committer | Ralph Amissah <ralph.amissah@gmail.com> | 2020-05-20 11:27:26 -0400 |
commit | 673aea9d0099343289aa7091f6622133a57e1843 (patch) | |
tree | 514bf9480d5219e55a1d9b201971eac85918722d /src | |
parent | renaming (diff) |
doc abstraction, object numbering and dummy headings
Diffstat (limited to 'src')
-rw-r--r-- | src/doc_reform/meta/metadoc_from_src.d | 222 |
1 files changed, 116 insertions, 106 deletions
diff --git a/src/doc_reform/meta/metadoc_from_src.d b/src/doc_reform/meta/metadoc_from_src.d index 1ae2e01..8d07d48 100644 --- a/src/doc_reform/meta/metadoc_from_src.d +++ b/src/doc_reform/meta/metadoc_from_src.d @@ -32,6 +32,13 @@ template docAbstraction() { on, closing, } + enum ocn { + off, + on, + closing, + bkidx, + reset, + } enum sect { unset, head, @@ -72,8 +79,7 @@ template docAbstraction() { h_text_5, // extra level, drop content_non_header } // header section A-D; header text 1-4 - enum OCNstatus { on, off, bkidx, closing, reset, } - enum OCN_off_block_status { off, on } + enum Status { off, on, } enum OCNtype { ocn, non, bkidx, } /+ biblio variables +/ string biblio_tag_name, biblio_tag_entry, st; @@ -400,11 +406,14 @@ template docAbstraction() { "images" : 0, ]; auto obj_type_status = flags_type_init; - int[string] track_state = [ - "section" : 0, - "block" : 0, - "obj" : 0, - "ocn" : 0, + int[string] pith = [ + "ocn" : 1, + "section" : 0, + "block" : 0, + "obj" : 0, + "dummy_heading_status" : 0, + "no_ocn_multiple_objects" : 0, + "heading_multiple_objects" : 0, ]; string[string] object_number_poem = [ "start" : "", @@ -544,7 +553,7 @@ template docAbstraction() { } } if (!line.empty) { - obj_type_status = line._check_ocn_status_(obj_type_status); + pith = line._check_ocn_status_(pith); } if (obj_type_status["code"] == eN.tri.on) { /+ block object: code +/ @@ -555,15 +564,15 @@ template docAbstraction() { /+ heading, glossary, blurb, poem, group, block, quote, table +/ line = line.inline_markup_faces; // by text line (rather than by text object), linebreaks in para problematic if (line.matchFirst(rgx.heading_biblio) - || (track_state["section"] == eN.sect.bibliography + || (pith["section"] == eN.sect.bibliography && ((!(line.matchFirst(rgx.heading_glossary))) && (!(line.matchFirst(rgx.heading_blurb))) && (!(line.matchFirst(rgx.heading))) && (!(line.matchFirst(rgx.comment))))) ) { - track_state["section"] = eN.sect.bibliography; + pith["section"] = eN.sect.bibliography; if (opt_action.backmatter && opt_action.section_biblio) { - line.flow_txt_block_biblio(obj_type_status, bib_entry, biblio_entry_str_json, biblio_arr_json, track_state); + line.flow_txt_block_biblio(obj_type_status, bib_entry, biblio_entry_str_json, biblio_arr_json, pith); debug(bibliobuild) { writeln("- ", biblio_entry_str_json); writeln("-> ", biblio_arr_json.length); @@ -571,7 +580,7 @@ template docAbstraction() { } continue; } else if (line.matchFirst(rgx.heading_glossary) - || (track_state["section"] == eN.sect.glossary + || (pith["section"] == eN.sect.glossary && ((!(line.matchFirst(rgx.heading_biblio))) && (!(line.matchFirst(rgx.heading_blurb))) && (!(line.matchFirst(rgx.heading))) @@ -582,7 +591,7 @@ template docAbstraction() { writeln(__LINE__); writeln(line); } - track_state["section"] = eN.sect.glossary; + pith["section"] = eN.sect.glossary; if (opt_action.backmatter && opt_action.section_glossary) { indent=[ "hang_position" : 0, @@ -662,17 +671,17 @@ template docAbstraction() { comp_obj_para.attrib.bullet = bullet; the_glossary_section ~= comp_obj_para; } - obj_type_status["ocn_status"] = OCNstatus.on; + pith["ocn"] = eN.ocn.on; } continue; } else if (line.matchFirst(rgx.heading_blurb) - || (track_state["section"] == eN.sect.blurb + || (pith["section"] == eN.sect.blurb && ((!(line.matchFirst(rgx.heading_glossary))) && (!(line.matchFirst(rgx.heading_biblio))) && (!(line.matchFirst(rgx.heading))) && (!(line.matchFirst(rgx.comment))))) ) { - track_state["section"] = eN.sect.blurb; + pith["section"] = eN.sect.blurb; debug(blurb) { writeln(__LINE__); writeln(line); @@ -809,7 +818,7 @@ template docAbstraction() { comp_obj_para.attrib.bullet = bullet; the_blurb_section ~= comp_obj_para; } - obj_type_status["ocn_status"] = OCNstatus.on; + pith["ocn"] = eN.ocn.on; } continue; } else if (obj_type_status["quote"] == eN.tri.on) { /+ within block object: quote +/ @@ -837,10 +846,10 @@ template docAbstraction() { an_object = line.flow_txt_block_block(an_object, obj_type_status); continue; } else if (obj_type_status["poem"] == eN.tri.on) { /+ within block object: poem +/ - an_object = line.flow_txt_block_poem(an_object, obj_type_status, cntr, object_number_poem, conf_make_meta, tag_in_seg); + an_object = line.flow_txt_block_poem(an_object, obj_type_status, pith, cntr, object_number_poem, conf_make_meta, tag_in_seg); continue; } else if (obj_type_status["table"] == eN.tri.on) { /+ within block object: table +/ - an_object = line.flow_txt_block_table(an_object, obj_type_status, conf_make_meta); + an_object = line.flow_txt_block_table(an_object, obj_type_status, pith, conf_make_meta); continue; } else { /+ not within a block group +/ assert( @@ -876,15 +885,15 @@ template docAbstraction() { assert( line.matchFirst(rgx.book_index_item) || line.matchFirst(rgx.book_index_item_open) - || track_state["section"] == eN.sect.book_index, + || pith["section"] == eN.sect.book_index, "\nblocks closed, unless followed by book index, non-matching line:\n \"" ~ line ~ "\"" ); } if (line.matchFirst(rgx.book_index_item) || line.matchFirst(rgx.book_index_item_open) - || track_state["section"] == eN.sect.book_index) { /+ book_index +/ - an_object = line.flow_book_index_(an_object, book_idx_tmp, obj_type_status, track_state, opt_action); + || pith["section"] == eN.sect.book_index) { /+ book_index +/ + an_object = line.flow_book_index_(an_object, book_idx_tmp, obj_type_status, pith, opt_action); } else { /+ not book_index +/ an_object_key="body_nugget"; if (auto m = line.matchFirst(rgx.comment)) { /+ matched comment +/ @@ -933,7 +942,7 @@ template docAbstraction() { collapsed_lev, obj_type_status, conf_make_meta, - track_state, + pith, ); } else if (line_occur["para"] == eN.bi.off) { /+ para match +/ an_object_key="body_nugget"; @@ -969,6 +978,7 @@ template docAbstraction() { comp_obj_heading, cntr, obj_type_status, + pith, object_number_poem, conf_make_meta, tag_in_seg, @@ -991,8 +1001,8 @@ template docAbstraction() { if ((obj_type_status["heading"] == eN.bi.on) && (line_occur["heading"] > eN.bi.off)) { /+ heading object (current line empty) +/ obj_cite_digits = (an_object["lev_markup_number"].to!int == 0) - ? ocn_emit(OCNstatus.reset) - : ocn_emit(obj_type_status["ocn_status"]); + ? ocn_emit(eN.ocn.reset) + : ocn_emit(pith["ocn"]); an_object["is"] = "heading"; an_object_key="body_nugget"; TxtAndAnchorTagPlusHasFootnotesUrlsImages substantive_object_and_anchor_tags_tuple @@ -1115,9 +1125,9 @@ template docAbstraction() { /+ paragraph object (current line empty) +/ /+ repeated character paragraph separator +/ if ((an_object[an_object_key].to!string).matchFirst(rgx.repeated_character_line_separator)) { - obj_type_status["ocn_status"] = OCNstatus.off; + pith["ocn"] = eN.ocn.off; } - obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]); + obj_cite_digits = ocn_emit(pith["ocn"]); an_object["bookindex_nugget"] = ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; bookindex_unordered_hashes @@ -1186,7 +1196,7 @@ template docAbstraction() { && (the_document_body_section.length > previous_length)) { if ((the_document_body_section[$-1].metainfo.is_a == "heading") && (the_document_body_section[$-1].metainfo.heading_lev_markup < 5)) { - track_state["section"] = eN.sect.unset; + pith["section"] = eN.sect.unset; } if (the_document_body_section[$-1].metainfo.is_a == "verse") { /+ scan for endnotes for whole poem (each verse in poem) +/ foreach (i; previous_length .. the_document_body_section.length) { @@ -1996,7 +2006,7 @@ template docAbstraction() { writeln(obj.text); } if (obj.metainfo.heading_lev_markup == 1) { - obj_cite_digits = ocn_emit(OCNstatus.on); + obj_cite_digits = ocn_emit(eN.ocn.on); obj.metainfo.ocn = obj_cite_digits.object_number; obj.metainfo.identifier = obj_cite_digits.identifier; } @@ -2029,7 +2039,7 @@ template docAbstraction() { writeln(obj.text); } if (obj.metainfo.heading_lev_markup == 1) { - obj_cite_digits = ocn_emit(OCNstatus.on); + obj_cite_digits = ocn_emit(eN.ocn.on); obj.metainfo.ocn = obj_cite_digits.object_number; obj.metainfo.identifier = obj_cite_digits.identifier; } @@ -2051,7 +2061,7 @@ template docAbstraction() { } obj = obj.obj_heading_ancestors(lv_ancestors_txt); } else if (obj.metainfo.is_a == "glossary" && !(obj.text.empty)) { - obj_cite_digits = ocn_emit(OCNstatus.on); + obj_cite_digits = ocn_emit(eN.ocn.on); obj.metainfo.ocn = obj_cite_digits.object_number; obj.metainfo.identifier = obj_cite_digits.identifier; } @@ -2066,7 +2076,7 @@ template docAbstraction() { writeln(obj.text); } if (obj.metainfo.heading_lev_markup == 1) { - obj_cite_digits = ocn_emit(OCNstatus.on); + obj_cite_digits = ocn_emit(eN.ocn.on); obj.metainfo.ocn = obj_cite_digits.object_number; obj.metainfo.identifier = obj_cite_digits.identifier; } @@ -2088,7 +2098,7 @@ template docAbstraction() { } obj = obj.obj_heading_ancestors(lv_ancestors_txt); } else if (obj.metainfo.is_a == "bibliography") { - obj_cite_digits = ocn_emit(OCNstatus.on); + obj_cite_digits = ocn_emit(eN.ocn.on); obj.metainfo.ocn = obj_cite_digits.object_number; obj.metainfo.identifier = obj_cite_digits.identifier; } @@ -2110,7 +2120,7 @@ template docAbstraction() { segnames_0_to_4 ~= obj.tags.segment_anchor_tag_epub; } if (obj.metainfo.heading_lev_markup == 1) { - obj_cite_digits = ocn_emit(OCNstatus.on); + obj_cite_digits = ocn_emit(eN.ocn.on); obj.metainfo.ocn = obj_cite_digits.object_number; obj.metainfo.identifier = obj_cite_digits.identifier; } @@ -2131,7 +2141,7 @@ template docAbstraction() { } obj = obj.obj_heading_ancestors(lv_ancestors_txt); } else if (obj.metainfo.is_a == "bookindex") { - obj_cite_digits = ocn_emit(OCNstatus.bkidx); + obj_cite_digits = ocn_emit(eN.ocn.bkidx); obj.metainfo.ocn = obj_cite_digits.object_number; obj.metainfo.identifier = obj_cite_digits.identifier; obj.metainfo.o_n_book_index = obj_cite_digits.bkidx; @@ -2152,7 +2162,7 @@ template docAbstraction() { writeln(obj.text); } if (obj.metainfo.heading_lev_markup == 1) { - obj_cite_digits = ocn_emit(OCNstatus.on); + obj_cite_digits = ocn_emit(eN.ocn.on); obj.metainfo.ocn = obj_cite_digits.object_number; obj.metainfo.identifier = obj_cite_digits.identifier; } @@ -2174,7 +2184,7 @@ template docAbstraction() { } obj = obj.obj_heading_ancestors(lv_ancestors_txt); } else if (obj.metainfo.is_a == "blurb") { - obj_cite_digits = ocn_emit(OCNstatus.off); + obj_cite_digits = ocn_emit(eN.ocn.off); obj.metainfo.object_number_off = obj_cite_digits.off; obj.metainfo.object_number_type = OCNtype.non; } @@ -2377,7 +2387,7 @@ template docAbstraction() { destroy(segnames); destroy(bookindex_unordered_hashes); destroy(an_object); - obj_cite_digits = ocn_emit(OCNstatus.reset); + obj_cite_digits = ocn_emit(eN.ocn.reset); biblio_arr_json = []; obj_cite_digit_ = 0; html_segnames_ptr = 0; @@ -2466,63 +2476,58 @@ template docAbstraction() { an_object = an_object.object_reset; } @safe static int[string] _check_ocn_status_()( - char[] line, - int[string] obj_type_status, + char[] line, + int[string] pith, ) { static auto rgx = RgxI(); - if (!(line.empty) - && (obj_type_status["ocn_status_off_for_multiple_objects"] == OCN_off_block_status.off) - ) { - /+ not multi-line object, check whether object_number is on or turned off +/ - if (line.matchFirst(rgx.object_number_block_marks)) { /+ switch off object_number +/ - if (line.matchFirst(rgx.object_number_off_block)) { - obj_type_status["ocn_status_off_for_multiple_objects"] = OCN_off_block_status.on; - obj_type_status["ocn_status"] = OCNstatus.off; - debug(ocnoff) { - writeln(line); - } - } - if (line.matchFirst(rgx.object_number_off_block_dummy_heading)) { - obj_type_status["ocn_status_off_for_multiple_objects"] = OCN_off_block_status.on; - obj_type_status["heading_off_for_multiple_objects"] = eN.bi.on; - obj_type_status["ocn_status"] = OCNstatus.off; - debug(ocnoff) { - writeln(line); + if (!(line.empty)) { + if (pith["no_ocn_multiple_objects"] == eN.ocn.off) { + /+ not multi-line object, check whether object_number is on or turned off +/ + if (line.matchFirst(rgx.object_number_block_marks)) { /+ switch off object_number +/ + if (line.matchFirst(rgx.object_number_off_block)) { + pith["no_ocn_multiple_objects"] = eN.ocn.on; + pith["ocn"] = eN.ocn.off; + debug(ocnoff) { + writeln(line); + } } - } - } else { - if (obj_type_status["ocn_status_off_for_multiple_objects"] == OCN_off_block_status.off) { - obj_type_status["dummy_heading_status"] = eN.bi.off; - if (obj_type_status["heading_off_for_multiple_objects"]) { - obj_type_status["dummy_heading_status"] = eN.bi.on; + if (line.matchFirst(rgx.object_number_off_block_dummy_heading)) { + pith["no_ocn_multiple_objects"] = eN.ocn.on; + pith["heading_multiple_objects"] = eN.bi.on; + pith["ocn"] = eN.ocn.off; + debug(ocnoff) { + writeln(line); + } } - if (line.matchFirst(rgx.object_number_off)) { - obj_type_status["ocn_status"] = OCNstatus.off; - } else if (line.matchFirst(rgx.object_number_off_dummy_heading)) { - obj_type_status["ocn_status"] = OCNstatus.off; - obj_type_status["dummy_heading_status"] = eN.bi.on; + } else if (pith["no_ocn_multiple_objects"] == eN.ocn.off) { + pith["dummy_heading_status"] = eN.bi.off; + if (pith["heading_multiple_objects"]) { + pith["dummy_heading_status"] = eN.bi.on; + } + if (line.matchFirst(rgx.object_number_off)) { + pith["ocn"] = eN.ocn.off; + } else if (line.matchFirst(rgx.object_number_off_dummy_heading)) { + pith["ocn"] = eN.ocn.off; + pith["dummy_heading_status"] = eN.bi.on; + } else { + pith["ocn"] = eN.ocn.on; + pith["dummy_heading_status"] = eN.bi.off; + } } else { - obj_type_status["ocn_status"] = OCNstatus.on; - obj_type_status["dummy_heading_status"] = eN.bi.off; + pith["ocn"] = pith["no_ocn_multiple_objects"]; + } + } else if (pith["no_ocn_multiple_objects"] == eN.ocn.on) { + if (line.matchFirst(rgx.object_number_off_block_close)) { + pith["no_ocn_multiple_objects"] = eN.ocn.off; + pith["ocn"] = eN.ocn.on; + pith["dummy_heading_status"] = eN.bi.off; + debug(ocnoff) { + writeln(line); } - } else { - obj_type_status["ocn_status"] = obj_type_status["ocn_status_off_for_multiple_objects"]; - } - } - } else if ( - !(line.empty) - && (obj_type_status["ocn_status_off_for_multiple_objects"] > OCN_off_block_status.off) - ) { - if (line.matchFirst(rgx.object_number_off_block_close)) { - obj_type_status["ocn_status_off_for_multiple_objects"] = OCN_off_block_status.off; - obj_type_status["ocn_status"] = OCNstatus.on; - obj_type_status["dummy_heading_status"] = eN.bi.off; - debug(ocnoff) { - writeln(line); } } } - return obj_type_status; + return pith; } @safe char[] _doc_header_and_make_substitutions_(CMM)( char[] line, @@ -2871,6 +2876,7 @@ template docAbstraction() { char[] line, string[string] an_object, return ref int[string] obj_type_status, + return ref int[string] pith, return ref int cntr, string[string] object_number_poem, CMM conf_make_meta, @@ -2941,7 +2947,7 @@ template docAbstraction() { } else { processing["verse"] ~= line ~= "\n"; if (obj_type_status["verse_new"] == eN.bi.on) { - obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]); + obj_cite_digits = ocn_emit(pith["ocn"]); obj_type_status["verse_new"] = eN.bi.off; } else if (line.matchFirst(rgx.newline_eol_delimiter_only)) { processing["verse"] = processing["verse"].stripRight; @@ -3049,7 +3055,7 @@ template docAbstraction() { } else { processing["verse"] ~= line ~= "\n"; if (obj_type_status["verse_new"] == eN.bi.on) { - obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]); + obj_cite_digits = ocn_emit(pith["ocn"]); obj_type_status["verse_new"] = eN.bi.off; } else if (line.matchFirst(rgx.newline_eol_delimiter_only)) { processing["verse"] = processing["verse"].stripRight; @@ -3155,6 +3161,7 @@ template docAbstraction() { char[] line, string[string] an_object, return ref int[string] obj_type_status, + return ref int[string] pith, return ref CMM conf_make_meta, ) { static auto rgx = RgxI(); @@ -3184,6 +3191,7 @@ template docAbstraction() { comp_obj_heading, cntr, obj_type_status, + pith, conf_make_meta, ); } else { @@ -3234,13 +3242,13 @@ template docAbstraction() { return ref int bib_entry, return ref string biblio_entry_str_json, return ref string[] biblio_arr_json, - return ref int[string] track_state, + return ref int[string] pith, ) { mixin spineBiblio; auto jsn = BibJsnStr(); static auto rgx = RgxI(); if (line.matchFirst(rgx.heading_biblio)) { - track_state["section"] = eN.sect.bibliography; + pith["section"] = eN.sect.bibliography; } if (line.empty) { debug { @@ -3357,10 +3365,11 @@ template docAbstraction() { return ref ObjGenericComposite _comp_obj_heading, return ref int cntr, return ref int[string] obj_type_status, + return ref int[string] pith, CMM conf_make_meta ) { comp_obj_block = comp_obj_block.init; - obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]); + obj_cite_digits = ocn_emit(pith["ocn"]); auto comp_obj_location = node_construct.node_location_emitter( content_non_header, @@ -3400,6 +3409,7 @@ template docAbstraction() { return ref ObjGenericComposite _comp_obj_heading, return ref int cntr, return ref int[string] obj_type_status, + return ref int[string] pith, string[string] object_number_poem, CMM conf_make_meta, Ts tag_in_seg, @@ -3416,7 +3426,7 @@ template docAbstraction() { assertions_flag_types_block_status_none_or_closed(obj_type_status); static auto rgx = RgxI(); if (obj_type_status["quote"] == eN.tri.closing) { - obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]); + obj_cite_digits = ocn_emit(pith["ocn"]); an_object["bookindex_nugget"] = ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; bookindex_unordered_hashes @@ -3467,7 +3477,7 @@ template docAbstraction() { processing.remove("verse"); ++cntr; } else if (obj_type_status["group"] == eN.tri.closing) { - obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]); + obj_cite_digits = ocn_emit(pith["ocn"]); an_object["bookindex_nugget"] = ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; bookindex_unordered_hashes @@ -3518,7 +3528,7 @@ template docAbstraction() { processing.remove("verse"); ++cntr; } else if (obj_type_status["block"] == eN.tri.closing) { - obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]); + obj_cite_digits = ocn_emit(pith["ocn"]); an_object["bookindex_nugget"] = ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; bookindex_unordered_hashes @@ -3605,7 +3615,7 @@ template docAbstraction() { object_reset(an_object); processing.remove("verse"); } else if (obj_type_status["code"] == eN.tri.closing) { - obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]); + obj_cite_digits = ocn_emit(pith["ocn"]); an_object["bookindex_nugget"] = ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; bookindex_unordered_hashes @@ -3657,7 +3667,7 @@ template docAbstraction() { ++cntr; } else if (obj_type_status["table"] == eN.tri.closing) { comp_obj_block = comp_obj_block.init; - obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]); + obj_cite_digits = ocn_emit(pith["ocn"]); an_object["bookindex_nugget"] = ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; bookindex_unordered_hashes @@ -3705,7 +3715,7 @@ template docAbstraction() { string[string] an_object, return ref string book_idx_tmp, return ref int[string] obj_type_status, - return ref int[string] track_state, + return ref int[string] pith, B opt_action, ) { static auto rgx = RgxI(); @@ -3718,7 +3728,7 @@ template docAbstraction() { } an_object["bookindex_nugget"] = m.captures[1].to!string; } else if (auto m = line.match(rgx.book_index_item_open)) { /+ match open book_index +/ - track_state["section"] = eN.sect.book_index; + pith["section"] = eN.sect.book_index; if (opt_action.backmatter && opt_action.section_bookindex) { book_idx_tmp = m.captures[1].to!string; debug(bookindexmatch) { @@ -3728,9 +3738,9 @@ template docAbstraction() { ); } } - } else if (track_state["section"] == eN.sect.book_index) { /+ book_index flag set +/ + } else if (pith["section"] == eN.sect.book_index) { /+ book_index flag set +/ if (auto m = line.match(rgx.book_index_item_close)) { - track_state["section"] = eN.sect.unset; + pith["section"] = eN.sect.unset; if (opt_action.backmatter && opt_action.section_bookindex) { an_object["bookindex_nugget"] = book_idx_tmp ~ m.captures[1].to!string; @@ -3897,7 +3907,7 @@ template docAbstraction() { return ref int[string] collapsed_lev, return ref int[string] obj_type_status, return ref CMM conf_make_meta, - return ref int[string] track_state, + return ref int[string] pith, ) { static auto rgx = RgxI(); if (auto m = line.match(rgx.headings)) { /+ heading match +/ @@ -3905,7 +3915,7 @@ template docAbstraction() { obj_type_status["heading"] = eN.bi.on; obj_type_status["para"] = eN.bi.off; if (line.match(rgx.heading_seg_and_above)) { - track_state["section"] = eN.sect.unset; + pith["section"] = eN.sect.unset; } an_object[an_object_key] ~= line ~= "\n"; an_object["lev"] ~= m.captures[1]; @@ -4033,7 +4043,7 @@ template docAbstraction() { default: an_object["lev_markup_number"] = lv["lv"].to!string; } - an_object["dummy_heading_status"] = (obj_type_status["dummy_heading_status"] == eN.bi.off) ? "f" : "t"; + an_object["dummy_heading_status"] = (pith["dummy_heading_status"] == eN.bi.off) ? "f" : "t"; debug(heading) { writeln(line.strip); } @@ -4304,11 +4314,11 @@ template docAbstraction() { bool ocn_is_off; @safe auto ocn_emitter(int ocn_status_flag) { OCNset ocn; - assert(ocn_status_flag <= OCNstatus.reset); + assert(ocn_status_flag <= eN.ocn.reset); ocn_object_number = ocn_bkidx = 0; object_identifier = ""; ocn_is_off = false; - switch(ocn_status_flag) with (OCNstatus) { + switch(ocn_status_flag) with (eN.ocn) { case reset: ocn_digit = ocn_on_ = 1; object_identifier = "1"; @@ -4329,7 +4339,7 @@ template docAbstraction() { case bkidx: ocn_bkidx = ++ocn_bkidx_; break; - case closing: + case closing: // unused? break; default: ocn_digit = 0; |