aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/doc_reform
diff options
context:
space:
mode:
Diffstat (limited to 'src/doc_reform')
-rw-r--r--src/doc_reform/meta/defaults.d32
-rw-r--r--src/doc_reform/meta/metadoc_from_src.d841
2 files changed, 429 insertions, 444 deletions
diff --git a/src/doc_reform/meta/defaults.d b/src/doc_reform/meta/defaults.d
index 8b6edad..e592be7 100644
--- a/src/doc_reform/meta/defaults.d
+++ b/src/doc_reform/meta/defaults.d
@@ -2,38 +2,6 @@
default settings
+/
module doc_reform.meta.defaults;
-template spineDocStatus() {
- @safe static auto status() {
- struct _e {
- enum sect {
- unset,
- head,
- toc,
- substantive,
- bibliography,
- glossary,
- book_index,
- blurb,
- }
- enum block {
- off,
- closing,
- code,
- poem,
- block,
- group,
- table,
- quote,
- }
- enum ocn {
- on, // 0 object_number;
- off, // 1 no object_number;
- dummy, // 2 no object_number & dummy headings
- }
- }
- return _e();
- }
-}
template spineRgxDocStructFlags() {
/+ regex flags +/
@safe static int[string] flags_type_init() {
diff --git a/src/doc_reform/meta/metadoc_from_src.d b/src/doc_reform/meta/metadoc_from_src.d
index 6aa1eb6..1ae2e01 100644
--- a/src/doc_reform/meta/metadoc_from_src.d
+++ b/src/doc_reform/meta/metadoc_from_src.d
@@ -21,6 +21,30 @@ template docAbstraction() {
mixin ObjectSetter;
mixin InternalMarkup;
mixin spineRgxIn;
+ @safe static auto eN() {
+ struct _e {
+ enum bi {
+ off,
+ on,
+ }
+ enum tri {
+ off,
+ on,
+ closing,
+ }
+ enum sect {
+ unset,
+ head,
+ toc,
+ substantive,
+ bibliography,
+ glossary,
+ book_index,
+ blurb,
+ }
+ }
+ return _e();
+ }
/+ ↓ abstraction struct init +/
/+ initialize +/
ObjGenericComposite[] the_table_of_contents_section;
@@ -36,8 +60,6 @@ template docAbstraction() {
string[string][string] tag_assoc;
string[] lv0_to_3_tags;
/+ enum +/
- enum State { off, on }
- enum TriState { off, on, closing }
enum DocStructMarkupHeading {
h_sect_A,
h_sect_B,
@@ -50,7 +72,6 @@ template docAbstraction() {
h_text_5, // extra level, drop
content_non_header
} // header section A-D; header text 1-4
- enum Status { off, on, }
enum OCNstatus { on, off, bkidx, closing, reset, }
enum OCN_off_block_status { off, on }
enum OCNtype { ocn, non, bkidx, }
@@ -356,7 +377,6 @@ template docAbstraction() {
reset_note_numbers=true;
}
mixin spineRgxDocStructFlags;
- mixin spineDocStatus;
mixin spineNode;
auto node_para_int_ = node_metadata_para_int;
auto node_para_str_ = node_metadata_para_str;
@@ -380,7 +400,7 @@ template docAbstraction() {
"images" : 0,
];
auto obj_type_status = flags_type_init;
- int[string] track = [
+ int[string] track_state = [
"section" : 0,
"block" : 0,
"obj" : 0,
@@ -392,26 +412,26 @@ template docAbstraction() {
];
string[] lv_ancestors_txt = [ "", "", "", "", "", "", "", "", ];
int[string] lv = [
- "lv" : State.off,
- "h0" : State.off,
- "h1" : State.off,
- "h2" : State.off,
- "h3" : State.off,
- "h4" : State.off,
- "h5" : State.off,
- "h6" : State.off,
- "h7" : State.off,
+ "lv" : eN.bi.off,
+ "h0" : eN.bi.off,
+ "h1" : eN.bi.off,
+ "h2" : eN.bi.off,
+ "h3" : eN.bi.off,
+ "h4" : eN.bi.off,
+ "h5" : eN.bi.off,
+ "h6" : eN.bi.off,
+ "h7" : eN.bi.off,
"lev_int_collapsed" : 0,
];
int[string] collapsed_lev = [
- "h0" : State.off,
- "h1" : State.off,
- "h2" : State.off,
- "h3" : State.off,
- "h4" : State.off,
- "h5" : State.off,
- "h6" : State.off,
- "h7" : State.off
+ "h0" : eN.bi.off,
+ "h1" : eN.bi.off,
+ "h2" : eN.bi.off,
+ "h3" : eN.bi.off,
+ "h4" : eN.bi.off,
+ "h5" : eN.bi.off,
+ "h6" : eN.bi.off,
+ "h7" : eN.bi.off
];
string[string] heading_match_str = [
"h_A": "^(none)",
@@ -526,7 +546,7 @@ template docAbstraction() {
if (!line.empty) {
obj_type_status = line._check_ocn_status_(obj_type_status);
}
- if (obj_type_status["code"] == TriState.on) {
+ if (obj_type_status["code"] == eN.tri.on) {
/+ block object: code +/
line.flow_txt_block_code(an_object, obj_type_status);
continue;
@@ -535,15 +555,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["section"] == status.sect.bibliography
+ || (track_state["section"] == eN.sect.bibliography
&& ((!(line.matchFirst(rgx.heading_glossary)))
&& (!(line.matchFirst(rgx.heading_blurb)))
&& (!(line.matchFirst(rgx.heading)))
&& (!(line.matchFirst(rgx.comment)))))
) {
- track["section"] = status.sect.bibliography;
+ track_state["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);
+ line.flow_txt_block_biblio(obj_type_status, bib_entry, biblio_entry_str_json, biblio_arr_json, track_state);
debug(bibliobuild) {
writeln("- ", biblio_entry_str_json);
writeln("-> ", biblio_arr_json.length);
@@ -551,7 +571,7 @@ template docAbstraction() {
}
continue;
} else if (line.matchFirst(rgx.heading_glossary)
- || (track["section"] == status.sect.glossary
+ || (track_state["section"] == eN.sect.glossary
&& ((!(line.matchFirst(rgx.heading_biblio)))
&& (!(line.matchFirst(rgx.heading_blurb)))
&& (!(line.matchFirst(rgx.heading)))
@@ -562,15 +582,15 @@ template docAbstraction() {
writeln(__LINE__);
writeln(line);
}
- track["section"] = status.sect.glossary;
+ track_state["section"] = eN.sect.glossary;
if (opt_action.backmatter && opt_action.section_glossary) {
indent=[
"hang_position" : 0,
"base_position" : 0,
];
bullet = false;
- obj_type_status["para"] = State.on;
- line_occur["para"] = State.off;
+ obj_type_status["para"] = eN.bi.on;
+ line_occur["para"] = eN.bi.off;
an_object_key="glossary_nugget"; //
if (line.matchFirst(rgx.heading_glossary)) {
{
@@ -646,13 +666,13 @@ template docAbstraction() {
}
continue;
} else if (line.matchFirst(rgx.heading_blurb)
- || (track["section"] == status.sect.blurb
+ || (track_state["section"] == eN.sect.blurb
&& ((!(line.matchFirst(rgx.heading_glossary)))
&& (!(line.matchFirst(rgx.heading_biblio)))
&& (!(line.matchFirst(rgx.heading)))
&& (!(line.matchFirst(rgx.comment)))))
) {
- track["section"] = status.sect.blurb;
+ track_state["section"] = eN.sect.blurb;
debug(blurb) {
writeln(__LINE__);
writeln(line);
@@ -692,8 +712,8 @@ template docAbstraction() {
];
bullet = true;
}
- obj_type_status["para"] = State.on;
- line_occur["para"] = State.off;
+ obj_type_status["para"] = eN.bi.on;
+ line_occur["para"] = eN.bi.off;
an_object_key="blurb_nugget";
if (line.matchFirst(rgx.heading_blurb)) {
{
@@ -792,21 +812,21 @@ template docAbstraction() {
obj_type_status["ocn_status"] = OCNstatus.on;
}
continue;
- } else if (obj_type_status["quote"] == TriState.on) { /+ within block object: quote +/
+ } else if (obj_type_status["quote"] == eN.tri.on) { /+ within block object: quote +/
line = line
._doc_header_and_make_substitutions_(conf_make_meta)
._doc_header_and_make_substitutions_fontface_(conf_make_meta);
an_object = line.flow_txt_block_quote(an_object, obj_type_status);
continue;
/+ within block object: group +/
- } else if (obj_type_status["group"] == TriState.on) { /+ within block object: group +/
+ } else if (obj_type_status["group"] == eN.tri.on) { /+ within block object: group +/
line = line
._doc_header_and_make_substitutions_(conf_make_meta)
._doc_header_and_make_substitutions_fontface_(conf_make_meta)
.replaceAll(rgx.para_delimiter, mkup.br_paragraph ~ "$1");
an_object = line.flow_txt_block_group(an_object, obj_type_status);
continue;
- } else if (obj_type_status["block"] == TriState.on) { /+ within block object: block +/
+ } else if (obj_type_status["block"] == eN.tri.on) { /+ within block object: block +/
line = line
._doc_header_and_make_substitutions_(conf_make_meta)
._doc_header_and_make_substitutions_fontface_(conf_make_meta);
@@ -816,16 +836,16 @@ template docAbstraction() {
}
an_object = line.flow_txt_block_block(an_object, obj_type_status);
continue;
- } else if (obj_type_status["poem"] == TriState.on) { /+ within block object: poem +/
+ } 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);
continue;
- } else if (obj_type_status["table"] == TriState.on) { /+ within block object: table +/
+ } 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);
continue;
} else { /+ not within a block group +/
assert(
- (obj_type_status["blocks"] == TriState.off)
- || (obj_type_status["blocks"] == TriState.closing),
+ (obj_type_status["blocks"] == eN.tri.off)
+ || (obj_type_status["blocks"] == eN.tri.closing),
"block status: none or closed"
);
assertions_flag_types_block_status_none_or_closed(obj_type_status);
@@ -844,11 +864,11 @@ template docAbstraction() {
"line tested, line not empty surely:\n \"" ~ line ~ "\""
);
assert(
- (obj_type_status["blocks"] == TriState.off)
- || (obj_type_status["blocks"] == TriState.closing),
+ (obj_type_status["blocks"] == eN.tri.off)
+ || (obj_type_status["blocks"] == eN.tri.closing),
"code block status: none or closed"
);
- if (obj_type_status["blocks"] == TriState.closing) {
+ if (obj_type_status["blocks"] == eN.tri.closing) {
debug(check) {
writeln(__LINE__);
writeln(line);
@@ -856,15 +876,15 @@ template docAbstraction() {
assert(
line.matchFirst(rgx.book_index_item)
|| line.matchFirst(rgx.book_index_item_open)
- || track["section"] == status.sect.book_index,
+ || track_state["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["section"] == status.sect.book_index) { /+ book_index +/
- an_object = line.flow_book_index_(an_object, book_idx_tmp, obj_type_status, track, opt_action);
+ || 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);
} else { /+ not book_index +/
an_object_key="body_nugget";
if (auto m = line.matchFirst(rgx.comment)) { /+ matched comment +/
@@ -882,19 +902,19 @@ template docAbstraction() {
flow_common_reset_(line_occur, an_object, obj_type_status);
processing.remove("verse");
++cntr;
- } else if (((line_occur["para"] == State.off)
- && (line_occur["heading"] == State.off))
- && ((obj_type_status["para"] == State.off)
- && (obj_type_status["heading"] == State.off))) { /+ heading or para but neither flag nor line exists +/
+ } else if (((line_occur["para"] == eN.bi.off)
+ && (line_occur["heading"] == eN.bi.off))
+ && ((obj_type_status["para"] == eN.bi.off)
+ && (obj_type_status["heading"] == eN.bi.off))) { /+ heading or para but neither flag nor line exists +/
if ((conf_make_meta.make.headings.length > 2)
- && (obj_type_status["make_headings"] == State.off)) { /+ heading found +/
+ && (obj_type_status["make_headings"] == eN.bi.off)) { /+ heading found +/
heading_match_str = line.flow_heading_found_(heading_match_str, conf_make_meta.make.headings, heading_match_rgx, obj_type_status);
}
- if ((obj_type_status["make_headings"] == State.on)
- && ((line_occur["para"] == State.off)
- && (line_occur["heading"] == State.off))
- && ((obj_type_status["para"] == State.off)
- && (obj_type_status["heading"] == State.off))) { /+ heading make set +/
+ if ((obj_type_status["make_headings"] == eN.bi.on)
+ && ((line_occur["para"] == eN.bi.off)
+ && (line_occur["heading"] == eN.bi.off))
+ && ((obj_type_status["para"] == eN.bi.off)
+ && (obj_type_status["heading"] == eN.bi.off))) { /+ heading make set +/
line = line.flow_heading_make_set_(line_occur, heading_match_rgx, obj_type_status);
}
/+ TODO node info: all headings identified at this point,
@@ -913,22 +933,22 @@ template docAbstraction() {
collapsed_lev,
obj_type_status,
conf_make_meta,
- track,
+ track_state,
);
- } else if (line_occur["para"] == State.off) { /+ para match +/
+ } else if (line_occur["para"] == eN.bi.off) { /+ para match +/
an_object_key="body_nugget";
line = line
._doc_header_and_make_substitutions_(conf_make_meta)
._doc_header_and_make_substitutions_fontface_(conf_make_meta);
an_object = line.flow_para_match_(an_object, an_object_key, indent, bullet, obj_type_status, line_occur);
}
- } else if (line_occur["heading"] > State.off) { /+ heading +/
+ } else if (line_occur["heading"] > eN.bi.off) { /+ heading +/
debug(heading) {
writeln(line);
}
an_object[an_object_key] ~= line ~= "\n";
++line_occur["heading"];
- } else if (line_occur["para"] > State.off) { /+ paragraph +/
+ } else if (line_occur["para"] > eN.bi.off) { /+ paragraph +/
debug(para) {
writeln(an_object_key, "-> ", line);
}
@@ -939,7 +959,7 @@ template docAbstraction() {
++line_occur["para"];
}
}
- } else if (obj_type_status["blocks"] == TriState.closing) { /+ line empty, with blocks flag +/
+ } else if (obj_type_status["blocks"] == eN.tri.closing) { /+ line empty, with blocks flag +/
an_object = line.flow_block_flag_line_empty_(
an_object,
bookindex_extract_hash,
@@ -960,7 +980,7 @@ template docAbstraction() {
~ line ~ "\""
);
assert(
- (obj_type_status["blocks"] == State.off),
+ (obj_type_status["blocks"] == eN.bi.off),
"code block status: none"
);
if (_new_doc) {
@@ -968,8 +988,8 @@ template docAbstraction() {
lv0_to_3_tags = lv0_to_3_tags.init;
tag_in_seg = tag_in_seg.init;
}
- if ((obj_type_status["heading"] == State.on)
- && (line_occur["heading"] > State.off)) { /+ heading object (current line empty) +/
+ 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"]);
@@ -1090,8 +1110,8 @@ template docAbstraction() {
an_object.remove("lev_markup_number");
processing.remove("verse");
++cntr;
- } else if ((obj_type_status["para"] == State.on)
- && (line_occur["para"] > State.off)) {
+ } else if ((obj_type_status["para"] == eN.bi.on)
+ && (line_occur["para"] > eN.bi.off)) {
/+ paragraph object (current line empty) +/
/+ repeated character paragraph separator +/
if ((an_object[an_object_key].to!string).matchFirst(rgx.repeated_character_line_separator)) {
@@ -1166,7 +1186,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["section"] = status.sect.unset;
+ track_state["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) {
@@ -2439,10 +2459,10 @@ template docAbstraction() {
return ref string[string] an_object,
return ref int[string] obj_type_status,
) {
- line_occur["heading"] = State.off;
- line_occur["para"] = State.off;
- obj_type_status["heading"] = State.off;
- obj_type_status["para"] = State.off;
+ line_occur["heading"] = eN.bi.off;
+ line_occur["para"] = eN.bi.off;
+ obj_type_status["heading"] = eN.bi.off;
+ obj_type_status["para"] = eN.bi.off;
an_object = an_object.object_reset;
}
@safe static int[string] _check_ocn_status_()(
@@ -2464,7 +2484,7 @@ template docAbstraction() {
}
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"] = Status.on;
+ obj_type_status["heading_off_for_multiple_objects"] = eN.bi.on;
obj_type_status["ocn_status"] = OCNstatus.off;
debug(ocnoff) {
writeln(line);
@@ -2472,18 +2492,18 @@ template docAbstraction() {
}
} else {
if (obj_type_status["ocn_status_off_for_multiple_objects"] == OCN_off_block_status.off) {
- obj_type_status["dummy_heading_status"] = 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"] = Status.on;
+ obj_type_status["dummy_heading_status"] = eN.bi.on;
}
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"] = Status.on;
+ obj_type_status["dummy_heading_status"] = eN.bi.on;
} else {
obj_type_status["ocn_status"] = OCNstatus.on;
- obj_type_status["dummy_heading_status"] = Status.off;
+ obj_type_status["dummy_heading_status"] = eN.bi.off;
}
} else {
obj_type_status["ocn_status"] = obj_type_status["ocn_status_off_for_multiple_objects"];
@@ -2496,7 +2516,7 @@ template docAbstraction() {
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"] = Status.off;
+ obj_type_status["dummy_heading_status"] = eN.bi.off;
debug(ocnoff) {
writeln(line);
}
@@ -2562,9 +2582,9 @@ template docAbstraction() {
line
);
}
- obj_type_status["blocks"] = TriState.on;
- obj_type_status["code"] = TriState.on;
- obj_type_status["curly_code"] = TriState.on;
+ obj_type_status["blocks"] = eN.tri.on;
+ obj_type_status["code"] = eN.tri.on;
+ obj_type_status["curly_code"] = eN.tri.on;
} else if (auto m = line.matchFirst(rgx.block_curly_poem_open)) {
dochas["poem"]++;
an_object["syntax"] = "";
@@ -2577,10 +2597,10 @@ template docAbstraction() {
);
}
object_number_poem["start"] = obj_cite_digits.object_number.to!string;
- obj_type_status["blocks"] = TriState.on;
- obj_type_status["verse_new"] = State.on;
- obj_type_status["poem"] = TriState.on;
- obj_type_status["curly_poem"] = TriState.on;
+ obj_type_status["blocks"] = eN.tri.on;
+ obj_type_status["verse_new"] = eN.bi.on;
+ obj_type_status["poem"] = eN.tri.on;
+ obj_type_status["curly_poem"] = eN.tri.on;
} else if (auto m = line.matchFirst(rgx.block_curly_group_open)) {
dochas["group"]++;
an_object["syntax"] = "";
@@ -2592,9 +2612,9 @@ template docAbstraction() {
line
);
}
- obj_type_status["blocks"] = TriState.on;
- obj_type_status["group"] = TriState.on;
- obj_type_status["curly_group"] = TriState.on;
+ obj_type_status["blocks"] = eN.tri.on;
+ obj_type_status["group"] = eN.tri.on;
+ obj_type_status["curly_group"] = eN.tri.on;
} else if (auto m = line.matchFirst(rgx.block_curly_block_open)) {
dochas["block"]++;
an_object["syntax"] = "";
@@ -2606,9 +2626,9 @@ template docAbstraction() {
line
);
}
- obj_type_status["blocks"] = TriState.on;
- obj_type_status["block"] = TriState.on;
- obj_type_status["curly_block"] = TriState.on;
+ obj_type_status["blocks"] = eN.tri.on;
+ obj_type_status["block"] = eN.tri.on;
+ obj_type_status["curly_block"] = eN.tri.on;
} else if (auto m = line.matchFirst(rgx.block_curly_quote_open)) {
dochas["quote"]++;
an_object["syntax"] = "";
@@ -2620,9 +2640,9 @@ template docAbstraction() {
line
);
}
- obj_type_status["blocks"] = TriState.on;
- obj_type_status["quote"] = TriState.on;
- obj_type_status["curly_quote"] = TriState.on;
+ obj_type_status["blocks"] = eN.tri.on;
+ obj_type_status["quote"] = eN.tri.on;
+ obj_type_status["curly_quote"] = eN.tri.on;
} else if (auto m = line.matchFirst(rgx.block_curly_table_open)) { /+ curly table open +/
debug(table) { // table (curly) open
writefln(
@@ -2633,16 +2653,16 @@ template docAbstraction() {
dochas["table"] ++;
an_object["table_head"] = m["attrib"].to!string;
an_object["block_type"] = "curly";
- obj_type_status["blocks"] = TriState.on;
- obj_type_status["table"] = TriState.on;
- obj_type_status["curly_table"] = TriState.on;
+ obj_type_status["blocks"] = eN.tri.on;
+ obj_type_status["table"] = eN.tri.on;
+ obj_type_status["curly_table"] = eN.tri.on;
} else if (auto m = line.matchFirst(rgx.block_curly_table_special_markup)) { /+ table: special table block markup syntax! +/
dochas["table"]++;
an_object["table_head"] = m["attrib"].to!string;
an_object["block_type"] = "special";
- obj_type_status["blocks"] = TriState.on;
- obj_type_status["table"] = TriState.on;
- obj_type_status["curly_table_special_markup"] = TriState.on;
+ obj_type_status["blocks"] = eN.tri.on;
+ obj_type_status["table"] = eN.tri.on;
+ obj_type_status["curly_table_special_markup"] = eN.tri.on;
} else if (auto m = line.matchFirst(rgx.block_tic_code_open)) {
dochas["codeblock"]++;
an_object["lang"] = "";
@@ -2654,9 +2674,9 @@ template docAbstraction() {
line
);
}
- obj_type_status["blocks"] = TriState.on;
- obj_type_status["code"] = TriState.on;
- obj_type_status["tic_code"] = TriState.on;
+ obj_type_status["blocks"] = eN.tri.on;
+ obj_type_status["code"] = eN.tri.on;
+ obj_type_status["tic_code"] = eN.tri.on;
} else if (auto m = line.matchFirst(rgx.block_tic_poem_open)) {
dochas["poem"]++;
an_object["syntax"] = "";
@@ -2669,10 +2689,10 @@ template docAbstraction() {
);
}
object_number_poem["start"] = obj_cite_digits.object_number.to!string;
- obj_type_status["blocks"] = TriState.on;
- obj_type_status["verse_new"] = State.on;
- obj_type_status["poem"] = TriState.on;
- obj_type_status["tic_poem"] = TriState.on;
+ obj_type_status["blocks"] = eN.tri.on;
+ obj_type_status["verse_new"] = eN.bi.on;
+ obj_type_status["poem"] = eN.tri.on;
+ obj_type_status["tic_poem"] = eN.tri.on;
} else if (auto m = line.matchFirst(rgx.block_tic_group_open)) {
dochas["group"]++;
an_object["syntax"] = "";
@@ -2684,9 +2704,9 @@ template docAbstraction() {
line
);
}
- obj_type_status["blocks"] = TriState.on;
- obj_type_status["group"] = TriState.on;
- obj_type_status["tic_group"] = TriState.on;
+ obj_type_status["blocks"] = eN.tri.on;
+ obj_type_status["group"] = eN.tri.on;
+ obj_type_status["tic_group"] = eN.tri.on;
} else if (auto m = line.matchFirst(rgx.block_tic_block_open)) {
dochas["block"]++;
an_object["syntax"] = "";
@@ -2698,9 +2718,9 @@ template docAbstraction() {
line
);
}
- obj_type_status["blocks"] = TriState.on;
- obj_type_status["block"] = TriState.on;
- obj_type_status["tic_block"] = TriState.on;
+ obj_type_status["blocks"] = eN.tri.on;
+ obj_type_status["block"] = eN.tri.on;
+ obj_type_status["tic_block"] = eN.tri.on;
} else if (auto m = line.matchFirst(rgx.block_tic_quote_open)) {
dochas["quote"]++;
an_object["syntax"] = "";
@@ -2712,9 +2732,9 @@ template docAbstraction() {
line
);
}
- obj_type_status["blocks"] = TriState.on;
- obj_type_status["quote"] = TriState.on;
- obj_type_status["tic_quote"] = TriState.on;
+ obj_type_status["blocks"] = eN.tri.on;
+ obj_type_status["quote"] = eN.tri.on;
+ obj_type_status["tic_quote"] = eN.tri.on;
} else if (auto m = line.matchFirst(rgx.block_tic_table_open)) { /+ tic table open +/
debug(table) { // table (tic) open
writefln(
@@ -2725,9 +2745,9 @@ template docAbstraction() {
dochas["table"] ++;
an_object["table_head"] = m["attrib"].to!string;
an_object["block_type"] = "tic";
- obj_type_status["blocks"] = TriState.on;
- obj_type_status["table"] = TriState.on;
- obj_type_status["tic_table"] = TriState.on;
+ obj_type_status["blocks"] = eN.tri.on;
+ obj_type_status["table"] = eN.tri.on;
+ obj_type_status["tic_table"] = eN.tri.on;
}
}
@safe string[string] flow_txt_block_quote()(
@@ -2736,30 +2756,30 @@ template docAbstraction() {
return ref int[string] obj_type_status
) {
static auto rgx = RgxI();
- if (obj_type_status["curly_quote"] == TriState.on) {
+ if (obj_type_status["curly_quote"] == eN.tri.on) {
if (line.matchFirst(rgx.block_curly_quote_close)) {
debug(quote) { // quote (curly) close
writeln(line);
}
an_object[an_object_key] = an_object[an_object_key].stripRight;
- obj_type_status["blocks"] = TriState.closing;
- obj_type_status["quote"] = TriState.closing;
- obj_type_status["curly_quote"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.closing;
+ obj_type_status["quote"] = eN.tri.closing;
+ obj_type_status["curly_quote"] = eN.tri.off;
} else {
debug(quote) {
writeln(line);
}
an_object[an_object_key] ~= line ~= "\n"; // build quote array (or string)
}
- } else if (obj_type_status["tic_quote"] == TriState.on) {
+ } else if (obj_type_status["tic_quote"] == eN.tri.on) {
if (line.matchFirst(rgx.block_tic_close)) {
debug(quote) { // quote (tic) close
writeln(line);
}
an_object[an_object_key] = an_object[an_object_key].stripRight;
- obj_type_status["blocks"] = TriState.closing;
- obj_type_status["quote"] = TriState.closing;
- obj_type_status["tic_quote"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.closing;
+ obj_type_status["quote"] = eN.tri.closing;
+ obj_type_status["tic_quote"] = eN.tri.off;
} else {
debug(quote) {
writeln(line);
@@ -2775,30 +2795,30 @@ template docAbstraction() {
return ref int[string] obj_type_status
) {
static auto rgx = RgxI();
- if (obj_type_status["curly_group"] == State.on) {
+ if (obj_type_status["curly_group"] == eN.bi.on) {
if (line.matchFirst(rgx.block_curly_group_close)) {
debug(group) {
writeln(line);
}
an_object[an_object_key] = an_object[an_object_key].stripRight;
- obj_type_status["blocks"] = TriState.closing;
- obj_type_status["group"] = TriState.closing;
- obj_type_status["curly_group"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.closing;
+ obj_type_status["group"] = eN.tri.closing;
+ obj_type_status["curly_group"] = eN.tri.off;
} else {
debug(group) {
writeln(line);
}
an_object[an_object_key] ~= line ~= "\n"; // build group array (or string)
}
- } else if (obj_type_status["tic_group"] == TriState.on) {
+ } else if (obj_type_status["tic_group"] == eN.tri.on) {
if (line.matchFirst(rgx.block_tic_close)) {
debug(group) {
writeln(line);
}
an_object[an_object_key] = an_object[an_object_key].stripRight;
- obj_type_status["blocks"] = TriState.closing;
- obj_type_status["group"] = TriState.closing;
- obj_type_status["tic_group"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.closing;
+ obj_type_status["group"] = eN.tri.closing;
+ obj_type_status["tic_group"] = eN.tri.off;
} else {
debug(group) {
writeln(line);
@@ -2814,30 +2834,30 @@ template docAbstraction() {
return ref int[string] obj_type_status
) {
static auto rgx = RgxI();
- if (obj_type_status["curly_block"] == TriState.on) {
+ if (obj_type_status["curly_block"] == eN.tri.on) {
if (line.matchFirst(rgx.block_curly_block_close)) {
debug(block) { // block (curly) close
writeln(line);
}
an_object[an_object_key] = an_object[an_object_key].stripRight;
- obj_type_status["blocks"] = TriState.closing;
- obj_type_status["block"] = TriState.closing;
- obj_type_status["curly_block"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.closing;
+ obj_type_status["block"] = eN.tri.closing;
+ obj_type_status["curly_block"] = eN.tri.off;
} else {
debug(block) {
writeln(line);
}
an_object[an_object_key] ~= line ~= "\n"; // build block array (or string)
}
- } else if (obj_type_status["tic_block"] == TriState.on) {
+ } else if (obj_type_status["tic_block"] == eN.tri.on) {
if (line.matchFirst(rgx.block_tic_close)) {
debug(block) {
writeln(line);
}
an_object[an_object_key] = an_object[an_object_key].stripRight;
- obj_type_status["blocks"] = TriState.closing;
- obj_type_status["block"] = TriState.closing;
- obj_type_status["tic_block"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.closing;
+ obj_type_status["block"] = eN.tri.closing;
+ obj_type_status["tic_block"] = eN.tri.off;
} else {
debug(block) {
writeln(line);
@@ -2857,7 +2877,7 @@ template docAbstraction() {
string[string] tag_in_seg,
) {
static auto rgx = RgxI();
- if (obj_type_status["curly_poem"] == TriState.on) {
+ if (obj_type_status["curly_poem"] == eN.tri.on) {
if (line.matchFirst(rgx.block_curly_poem_close)) {
if (an_object_key in an_object
|| processing.length > 0) {
@@ -2915,20 +2935,20 @@ template docAbstraction() {
++cntr;
}
object_number_poem["end"] = obj_cite_digits.object_number.to!string;
- obj_type_status["blocks"] = TriState.closing;
- obj_type_status["poem"] = TriState.closing;
- obj_type_status["curly_poem"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.closing;
+ obj_type_status["poem"] = eN.tri.closing;
+ obj_type_status["curly_poem"] = eN.tri.off;
} else {
processing["verse"] ~= line ~= "\n";
- if (obj_type_status["verse_new"] == State.on) {
+ if (obj_type_status["verse_new"] == eN.bi.on) {
obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]);
- obj_type_status["verse_new"] = State.off;
+ obj_type_status["verse_new"] = eN.bi.off;
} else if (line.matchFirst(rgx.newline_eol_delimiter_only)) {
processing["verse"] = processing["verse"].stripRight;
- verse_line = TriState.off;
- obj_type_status["verse_new"] = State.on;
+ verse_line = eN.tri.off;
+ obj_type_status["verse_new"] = eN.bi.on;
}
- if (obj_type_status["verse_new"] == State.on) {
+ if (obj_type_status["verse_new"] == eN.bi.on) {
verse_line=1;
an_object[an_object_key] = processing["verse"];
debug(poem) { // poem verse
@@ -2977,7 +2997,7 @@ template docAbstraction() {
++cntr;
}
}
- } else if (obj_type_status["tic_poem"] == TriState.on) {
+ } else if (obj_type_status["tic_poem"] == eN.tri.on) {
if (auto m = line.matchFirst(rgx.block_tic_close)) { // tic_poem_close
an_object[an_object_key]="verse";
debug(poem) {
@@ -3023,20 +3043,20 @@ template docAbstraction() {
processing.remove("verse");
++cntr;
}
- obj_type_status["blocks"] = TriState.closing;
- obj_type_status["poem"] = TriState.closing;
- obj_type_status["tic_poem"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.closing;
+ obj_type_status["poem"] = eN.tri.closing;
+ obj_type_status["tic_poem"] = eN.tri.off;
} else {
processing["verse"] ~= line ~= "\n";
- if (obj_type_status["verse_new"] == State.on) {
+ if (obj_type_status["verse_new"] == eN.bi.on) {
obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]);
- obj_type_status["verse_new"] = State.off;
+ obj_type_status["verse_new"] = eN.bi.off;
} else if (line.matchFirst(rgx.newline_eol_delimiter_only)) {
processing["verse"] = processing["verse"].stripRight;
- obj_type_status["verse_new"] = State.on;
- verse_line = TriState.off;
+ obj_type_status["verse_new"] = eN.bi.on;
+ verse_line = eN.tri.off;
}
- if (obj_type_status["verse_new"] == State.on) {
+ if (obj_type_status["verse_new"] == eN.bi.on) {
verse_line=1;
an_object[an_object_key] = processing["verse"];
debug(poem) { // poem (tic) close
@@ -3095,7 +3115,7 @@ template docAbstraction() {
return ref int[string] obj_type_status
) {
static auto rgx = RgxI();
- if (obj_type_status["curly_code"] == TriState.on) {
+ if (obj_type_status["curly_code"] == eN.tri.on) {
if (line.matchFirst(rgx.block_curly_code_close)) {
debug(codecurly) { // code (curly) close
writeln(line);
@@ -3103,16 +3123,16 @@ template docAbstraction() {
an_object[an_object_key] = an_object[an_object_key]
.replaceFirst(rgx.newline_eol_delimiter_only, "")
.stripRight;
- obj_type_status["blocks"] = TriState.closing;
- obj_type_status["code"] = TriState.closing;
- obj_type_status["curly_code"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.closing;
+ obj_type_status["code"] = eN.tri.closing;
+ obj_type_status["curly_code"] = eN.tri.off;
} else {
debug(codecurly) { // code (curly) line
writeln(line);
}
an_object[an_object_key] ~= line ~= "\n"; // code (curly) line
}
- } else if (obj_type_status["tic_code"] == TriState.on) {
+ } else if (obj_type_status["tic_code"] == eN.tri.on) {
if (line.matchFirst(rgx.block_tic_close)) {
debug(codetic) { // code (tic) close
writeln(line);
@@ -3120,9 +3140,9 @@ template docAbstraction() {
an_object[an_object_key] = an_object[an_object_key]
.replaceFirst(rgx.newline_eol_delimiter_only, "")
.stripRight;
- obj_type_status["blocks"] = TriState.closing;
- obj_type_status["code"] = TriState.closing;
- obj_type_status["tic_code"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.closing;
+ obj_type_status["code"] = eN.tri.closing;
+ obj_type_status["tic_code"] = eN.tri.off;
} else {
debug(codetic) { // code (tic) line
writeln(line);
@@ -3138,25 +3158,25 @@ template docAbstraction() {
return ref CMM conf_make_meta,
) {
static auto rgx = RgxI();
- if (obj_type_status["curly_table"] == TriState.on) {
+ if (obj_type_status["curly_table"] == eN.tri.on) {
if (line.matchFirst(rgx.block_curly_table_close)) {
debug(table) { // table (curly) close
writeln(line);
}
- obj_type_status["blocks"] = TriState.closing;
- obj_type_status["table"] = TriState.closing;
- obj_type_status["curly_table"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.closing;
+ obj_type_status["table"] = eN.tri.closing;
+ obj_type_status["curly_table"] = eN.tri.off;
} else {
debug(table) { // table
writeln(line);
}
an_object[an_object_key] ~= line ~= "\n"; // build table array (or string)
}
- } else if (obj_type_status["curly_table_special_markup"] == TriState.on) {
+ } else if (obj_type_status["curly_table_special_markup"] == eN.tri.on) {
if (line.empty) {
- obj_type_status["blocks"] = TriState.off;
- obj_type_status["table"] = TriState.off;
- obj_type_status["curly_table_special_markup"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.off;
+ obj_type_status["table"] = eN.tri.off;
+ obj_type_status["curly_table_special_markup"] = eN.tri.off;
line.flow_table_closed_make_special_notation_table_(
an_object,
the_document_body_section,
@@ -3172,14 +3192,14 @@ template docAbstraction() {
}
an_object[an_object_key] ~= line ~= "\n";
}
- } else if (obj_type_status["tic_table"] == TriState.on) {
+ } else if (obj_type_status["tic_table"] == eN.tri.on) {
if (line.matchFirst(rgx.block_tic_close)) {
debug(table) { // table (tic) close
writeln(line);
}
- obj_type_status["blocks"] = TriState.closing;
- obj_type_status["table"] = TriState.closing;
- obj_type_status["tic_table"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.closing;
+ obj_type_status["table"] = eN.tri.closing;
+ obj_type_status["tic_table"] = eN.tri.off;
} else {
debug(table) { // table
writeln(line);
@@ -3214,14 +3234,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,
+ return ref int[string] track_state,
) {
mixin spineBiblio;
- mixin spineDocStatus;
auto jsn = BibJsnStr();
static auto rgx = RgxI();
if (line.matchFirst(rgx.heading_biblio)) {
- track["section"] = status.sect.bibliography;
+ track_state["section"] = eN.sect.bibliography;
}
if (line.empty) {
debug {
@@ -3232,12 +3251,12 @@ template docAbstraction() {
writeln(biblio_entry_str_json.length);
}
}
- if ((bib_entry == State.off)
+ if ((bib_entry == eN.bi.off)
&& (biblio_entry_str_json.empty)) {
- bib_entry = State.on;
+ bib_entry = eN.bi.on;
biblio_entry_str_json = jsn.biblio_entry_tags_jsonstr;
} else if (!(biblio_entry_str_json.empty)) {
- bib_entry = State.off;
+ bib_entry = eN.bi.off;
if (!(biblio_entry_str_json == jsn.biblio_entry_tags_jsonstr)) {
auto biblio_entry = parseJSON(biblio_entry_str_json);
if (biblio_entry["fulltitle"].str.empty) {
@@ -3258,7 +3277,7 @@ template docAbstraction() {
writeln(line);
}
auto bt = line.match(rgx.biblio_tags);
- bib_entry = State.off;
+ bib_entry = eN.bi.off;
st = bt.captures[1].to!string;
auto header_tag_value=(bt.captures[2]).to!string;
JSONValue j = parseJSON(biblio_entry_str_json);
@@ -3391,12 +3410,12 @@ template docAbstraction() {
~ line ~ "\""
);
assert(
- (obj_type_status["blocks"] == TriState.closing),
+ (obj_type_status["blocks"] == eN.tri.closing),
"code block status: closed"
);
assertions_flag_types_block_status_none_or_closed(obj_type_status);
static auto rgx = RgxI();
- if (obj_type_status["quote"] == TriState.closing) {
+ if (obj_type_status["quote"] == eN.tri.closing) {
obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]);
an_object["bookindex_nugget"]
= ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
@@ -3442,12 +3461,12 @@ template docAbstraction() {
comp_obj_block.has.inline_links = substantive_obj_misc_tuple[sObj.links];
the_document_body_section ~= comp_obj_block;
tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc);
- obj_type_status["blocks"] = TriState.off;
- obj_type_status["quote"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.off;
+ obj_type_status["quote"] = eN.tri.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
- } else if (obj_type_status["group"] == TriState.closing) {
+ } else if (obj_type_status["group"] == eN.tri.closing) {
obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]);
an_object["bookindex_nugget"]
= ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
@@ -3493,12 +3512,12 @@ template docAbstraction() {
comp_obj_block.has.inline_links = substantive_obj_misc_tuple[sObj.links];
the_document_body_section ~= comp_obj_block;
tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc);
- obj_type_status["blocks"] = TriState.off;
- obj_type_status["group"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.off;
+ obj_type_status["group"] = eN.tri.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
- } else if (obj_type_status["block"] == TriState.closing) {
+ } else if (obj_type_status["block"] == eN.tri.closing) {
obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]);
an_object["bookindex_nugget"]
= ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
@@ -3543,12 +3562,12 @@ template docAbstraction() {
comp_obj_block.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
comp_obj_block.has.inline_links = substantive_obj_misc_tuple[sObj.links];
the_document_body_section ~= comp_obj_block;
- obj_type_status["blocks"] = TriState.off;
- obj_type_status["block"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.off;
+ obj_type_status["block"] = eN.tri.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
- } else if (obj_type_status["poem"] == TriState.closing) {
+ } else if (obj_type_status["poem"] == eN.tri.closing) {
an_object["bookindex_nugget"]
= ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes
@@ -3581,11 +3600,11 @@ template docAbstraction() {
comp_obj_poem_ocn.metainfo.object_number_type = obj_cite_digits.type;
comp_obj_poem_ocn.text = "";
the_document_body_section ~= comp_obj_poem_ocn;
- obj_type_status["blocks"] = TriState.off;
- obj_type_status["poem"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.off;
+ obj_type_status["poem"] = eN.tri.off;
object_reset(an_object);
processing.remove("verse");
- } else if (obj_type_status["code"] == TriState.closing) {
+ } else if (obj_type_status["code"] == eN.tri.closing) {
obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]);
an_object["bookindex_nugget"]
= ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
@@ -3631,12 +3650,12 @@ template docAbstraction() {
comp_obj_code.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
comp_obj_code.has.inline_links = substantive_obj_misc_tuple[sObj.links];
the_document_body_section ~= comp_obj_code;
- obj_type_status["blocks"] = TriState.off;
- obj_type_status["code"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.off;
+ obj_type_status["code"] = eN.tri.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
- } else if (obj_type_status["table"] == TriState.closing) {
+ } 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"]);
an_object["bookindex_nugget"]
@@ -3673,8 +3692,8 @@ template docAbstraction() {
comp_obj_block = comp_obj_block.flow_table_instructions(an_object["table_head"]);
comp_obj_block = comp_obj_block.flow_table_substantive_munge(an_object["substantive"]);
the_document_body_section ~= comp_obj_block;
- obj_type_status["blocks"] = TriState.off;
- obj_type_status["table"] = TriState.off;
+ obj_type_status["blocks"] = eN.tri.off;
+ obj_type_status["table"] = eN.tri.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -3686,10 +3705,9 @@ template docAbstraction() {
string[string] an_object,
return ref string book_idx_tmp,
return ref int[string] obj_type_status,
- return ref int[string] track,
+ return ref int[string] track_state,
B opt_action,
) {
- mixin spineDocStatus;
static auto rgx = RgxI();
if (auto m = line.match(rgx.book_index_item)) { /+ match book_index +/
debug(bookindexmatch) {
@@ -3700,7 +3718,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["section"] = status.sect.book_index;
+ track_state["section"] = eN.sect.book_index;
if (opt_action.backmatter && opt_action.section_bookindex) {
book_idx_tmp = m.captures[1].to!string;
debug(bookindexmatch) {
@@ -3710,9 +3728,9 @@ template docAbstraction() {
);
}
}
- } else if (track["section"] == status.sect.book_index) { /+ book_index flag set +/
+ } else if (track_state["section"] == eN.sect.book_index) { /+ book_index flag set +/
if (auto m = line.match(rgx.book_index_item_close)) {
- track["section"] = status.sect.unset;
+ track_state["section"] = eN.sect.unset;
if (opt_action.backmatter
&& opt_action.section_bookindex) {
an_object["bookindex_nugget"] = book_idx_tmp ~ m.captures[1].to!string;
@@ -3742,7 +3760,7 @@ template docAbstraction() {
) {
static auto rgx = RgxI();
if ((_make_unmarked_headings.length > 2)
- && (obj_type_status["make_headings"] == State.off)) { /+ headings found +/
+ && (obj_type_status["make_headings"] == eN.bi.off)) { /+ headings found +/
debug(headingsfound) {
writeln(_make_unmarked_headings);
}
@@ -3810,7 +3828,7 @@ template docAbstraction() {
default:
break;
}
- obj_type_status["make_headings"] = State.on;
+ obj_type_status["make_headings"] = eN.bi.on;
}
return heading_match_str;
}
@@ -3820,11 +3838,11 @@ template docAbstraction() {
return ref Regex!(char)[string] heading_match_rgx,
return ref int[string] obj_type_status
) {
- if ((obj_type_status["make_headings"] == State.on)
- && ((line_occur["para"] == State.off)
- && (line_occur["heading"] == State.off))
- && ((obj_type_status["para"] == State.off)
- && (obj_type_status["heading"] == State.off))) { /+ heading make set +/
+ if ((obj_type_status["make_headings"] == eN.bi.on)
+ && ((line_occur["para"] == eN.bi.off)
+ && (line_occur["heading"] == eN.bi.off))
+ && ((obj_type_status["para"] == eN.bi.off)
+ && (obj_type_status["heading"] == eN.bi.off))) { /+ heading make set +/
if (line.matchFirst(heading_match_rgx["h_B"])) {
line = "B~ " ~ line;
debug(headingsfound) {
@@ -3879,16 +3897,15 @@ 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,
+ return ref int[string] track_state,
) {
- mixin spineDocStatus;
static auto rgx = RgxI();
if (auto m = line.match(rgx.headings)) { /+ heading match +/
++line_occur["heading"];
- obj_type_status["heading"] = State.on;
- obj_type_status["para"] = State.off;
+ obj_type_status["heading"] = eN.bi.on;
+ obj_type_status["para"] = eN.bi.off;
if (line.match(rgx.heading_seg_and_above)) {
- track["section"] = status.sect.unset;
+ track_state["section"] = eN.sect.unset;
}
an_object[an_object_key] ~= line ~= "\n";
an_object["lev"] ~= m.captures[1];
@@ -3912,13 +3929,13 @@ template docAbstraction() {
= collapsed_lev["h0"].to!string;
lv["lv"] = DocStructMarkupHeading.h_sect_A;
++lv["h0"];
- lv["h1"] = State.off;
- lv["h2"] = State.off;
- lv["h3"] = State.off;
- lv["h4"] = State.off;
- lv["h5"] = State.off;
- lv["h6"] = State.off;
- lv["h7"] = State.off;
+ lv["h1"] = eN.bi.off;
+ lv["h2"] = eN.bi.off;
+ lv["h3"] = eN.bi.off;
+ lv["h4"] = eN.bi.off;
+ lv["h5"] = eN.bi.off;
+ lv["h6"] = eN.bi.off;
+ lv["h7"] = eN.bi.off;
goto default;
case "B":
collapsed_lev["h1"] = collapsed_lev["h0"] + 1;
@@ -3926,12 +3943,12 @@ template docAbstraction() {
= collapsed_lev["h1"].to!string;
lv["lv"] = DocStructMarkupHeading.h_sect_B;
++lv["h1"];
- lv["h2"] = State.off;
- lv["h3"] = State.off;
- lv["h4"] = State.off;
- lv["h5"] = State.off;
- lv["h6"] = State.off;
- lv["h7"] = State.off;
+ lv["h2"] = eN.bi.off;
+ lv["h3"] = eN.bi.off;
+ lv["h4"] = eN.bi.off;
+ lv["h5"] = eN.bi.off;
+ lv["h6"] = eN.bi.off;
+ lv["h7"] = eN.bi.off;
goto default;
case "C":
collapsed_lev["h2"] = collapsed_lev["h1"] + 1;
@@ -3939,11 +3956,11 @@ template docAbstraction() {
= collapsed_lev["h2"].to!string;
lv["lv"] = DocStructMarkupHeading.h_sect_C;
++lv["h2"];
- lv["h3"] = State.off;
- lv["h4"] = State.off;
- lv["h5"] = State.off;
- lv["h6"] = State.off;
- lv["h7"] = State.off;
+ lv["h3"] = eN.bi.off;
+ lv["h4"] = eN.bi.off;
+ lv["h5"] = eN.bi.off;
+ lv["h6"] = eN.bi.off;
+ lv["h7"] = eN.bi.off;
goto default;
case "D":
collapsed_lev["h3"] = collapsed_lev["h2"] + 1;
@@ -3951,61 +3968,61 @@ template docAbstraction() {
= collapsed_lev["h3"].to!string;
lv["lv"] = DocStructMarkupHeading.h_sect_D;
++lv["h3"];
- lv["h4"] = State.off;
- lv["h5"] = State.off;
- lv["h6"] = State.off;
- lv["h7"] = State.off;
+ lv["h4"] = eN.bi.off;
+ lv["h5"] = eN.bi.off;
+ lv["h6"] = eN.bi.off;
+ lv["h7"] = eN.bi.off;
goto default;
case "1":
- if (lv["h3"] > State.off) {
+ if (lv["h3"] > eN.bi.off) {
collapsed_lev["h4"] = collapsed_lev["h3"] + 1;
- } else if (lv["h2"] > State.off) {
+ } else if (lv["h2"] > eN.bi.off) {
collapsed_lev["h4"] = collapsed_lev["h2"] + 1;
- } else if (lv["h1"] > State.off) {
+ } else if (lv["h1"] > eN.bi.off) {
collapsed_lev["h4"] = collapsed_lev["h1"] + 1;
- } else if (lv["h0"] > State.off) {
+ } else if (lv["h0"] > eN.bi.off) {
collapsed_lev["h4"] = collapsed_lev["h0"] + 1;
}
an_object["lev_collapsed_number"]
= collapsed_lev["h4"].to!string;
lv["lv"] = DocStructMarkupHeading.h_text_1;
++lv["h4"];
- lv["h5"] = State.off;
- lv["h6"] = State.off;
- lv["h7"] = State.off;
+ lv["h5"] = eN.bi.off;
+ lv["h6"] = eN.bi.off;
+ lv["h7"] = eN.bi.off;
goto default;
case "2":
- if (lv["h5"] > State.off) {
+ if (lv["h5"] > eN.bi.off) {
an_object["lev_collapsed_number"]
= collapsed_lev["h5"].to!string;
- } else if (lv["h4"] > State.off) {
+ } else if (lv["h4"] > eN.bi.off) {
collapsed_lev["h5"] = collapsed_lev["h4"] + 1;
an_object["lev_collapsed_number"]
= collapsed_lev["h5"].to!string;
}
lv["lv"] = DocStructMarkupHeading.h_text_2;
++lv["h5"];
- lv["h6"] = State.off;
- lv["h7"] = State.off;
+ lv["h6"] = eN.bi.off;
+ lv["h7"] = eN.bi.off;
goto default;
case "3":
- if (lv["h6"] > State.off) {
+ if (lv["h6"] > eN.bi.off) {
an_object["lev_collapsed_number"]
= collapsed_lev["h6"].to!string;
- } else if (lv["h5"] > State.off) {
+ } else if (lv["h5"] > eN.bi.off) {
collapsed_lev["h6"] = collapsed_lev["h5"] + 1;
an_object["lev_collapsed_number"]
= collapsed_lev["h6"].to!string;
}
lv["lv"] = DocStructMarkupHeading.h_text_3;
++lv["h6"];
- lv["h7"] = State.off;
+ lv["h7"] = eN.bi.off;
goto default;
case "4":
- if (lv["h7"] > State.off) {
+ if (lv["h7"] > eN.bi.off) {
an_object["lev_collapsed_number"]
= collapsed_lev["h7"].to!string;
- } else if (lv["h6"] > State.off) {
+ } else if (lv["h6"] > eN.bi.off) {
collapsed_lev["h7"] = collapsed_lev["h6"] + 1;
an_object["lev_collapsed_number"]
= collapsed_lev["h7"].to!string;
@@ -4016,7 +4033,7 @@ template docAbstraction() {
default:
an_object["lev_markup_number"] = lv["lv"].to!string;
}
- an_object["dummy_heading_status"] = (obj_type_status["dummy_heading_status"] == State.off) ? "f" : "t";
+ an_object["dummy_heading_status"] = (obj_type_status["dummy_heading_status"] == eN.bi.off) ? "f" : "t";
debug(heading) {
writeln(line.strip);
}
@@ -4033,10 +4050,10 @@ template docAbstraction() {
return ref int[string] line_occur,
) {
static auto rgx = RgxI();
- if (line_occur["para"] == State.off) {
+ if (line_occur["para"] == eN.bi.off) {
line = font_faces_line(line);
/+ para matches +/
- obj_type_status["para"] = State.on;
+ obj_type_status["para"] = eN.bi.on;
an_object[an_object_key] ~= line;
indent=[
"hang_position" : 0,
@@ -5748,13 +5765,13 @@ template docAbstraction() {
assert(obj_cite_digits.object_number.to!int >= 0);
assert(is_ != "heading"); // should not be necessary
assert(obj_cite_digits.object_number.to!int >= 0); // should not be necessary
- if (lv7 > State.off) {
+ if (lv7 > eN.bi.off) {
p_["lev_markup_number"] = DocStructMarkupHeading.h_text_4;
p_["object_number"] = lv7;
- } else if (lv6 > State.off) {
+ } else if (lv6 > eN.bi.off) {
p_["lev_markup_number"] = DocStructMarkupHeading.h_text_3;
p_["object_number"] = lv6;
- } else if (lv5 > State.off) {
+ } else if (lv5 > eN.bi.off) {
p_["lev_markup_number"] = DocStructMarkupHeading.h_text_2;
p_["object_number"] = lv5;
} else {
@@ -5861,15 +5878,15 @@ template docAbstraction() {
lv = DocStructMarkupHeading.h_text_1;
lv4 = obj_cite_digit;
lv5=0; lv6=0; lv7=0;
- if (lv3 > State.off) {
+ if (lv3 > eN.bi.off) {
p_["lev_markup_number"]
= DocStructMarkupHeading.h_sect_D;
p_["object_number"] = lv3;
- } else if (lv2 > State.off) {
+ } else if (lv2 > eN.bi.off) {
p_["lev_markup_number"]
= DocStructMarkupHeading.h_sect_C;
p_["object_number"] = lv2;
- } else if (lv1 > State.off) {
+ } else if (lv1 > eN.bi.off) {
p_["lev_markup_number"]
= DocStructMarkupHeading.h_sect_B;
p_["object_number"] = lv1;
@@ -5988,171 +6005,171 @@ template docAbstraction() {
string[string] an_object,
int[string] lv
) {
- if (lv["h3"] > State.off) {
- assert(lv["h0"] > State.off);
- assert(lv["h1"] > State.off);
- assert(lv["h2"] > State.off);
- } else if (lv["h2"] > State.off) {
- assert(lv["h0"] > State.off);
- assert(lv["h1"] > State.off);
- assert(lv["h3"] == State.off);
- } else if (lv["h1"] > State.off) {
- assert(lv["h0"] > State.off);
- assert(lv["h2"] == State.off);
- assert(lv["h3"] == State.off);
- } else if (lv["h0"] > State.off) {
- assert(lv["h1"] == State.off);
- assert(lv["h2"] == State.off);
- assert(lv["h3"] == State.off);
+ if (lv["h3"] > eN.bi.off) {
+ assert(lv["h0"] > eN.bi.off);
+ assert(lv["h1"] > eN.bi.off);
+ assert(lv["h2"] > eN.bi.off);
+ } else if (lv["h2"] > eN.bi.off) {
+ assert(lv["h0"] > eN.bi.off);
+ assert(lv["h1"] > eN.bi.off);
+ assert(lv["h3"] == eN.bi.off);
+ } else if (lv["h1"] > eN.bi.off) {
+ assert(lv["h0"] > eN.bi.off);
+ assert(lv["h2"] == eN.bi.off);
+ assert(lv["h3"] == eN.bi.off);
+ } else if (lv["h0"] > eN.bi.off) {
+ assert(lv["h1"] == eN.bi.off);
+ assert(lv["h2"] == eN.bi.off);
+ assert(lv["h3"] == eN.bi.off);
} else {
- assert(lv["h0"] == State.off);
- assert(lv["h1"] == State.off);
- assert(lv["h2"] == State.off);
- assert(lv["h3"] == State.off);
- }
- if (lv["h7"] > State.off) {
- assert(lv["h4"] > State.off);
- assert(lv["h5"] > State.off);
- assert(lv["h6"] > State.off);
- } else if (lv["h6"] > State.off) {
- assert(lv["h4"] > State.off);
- assert(lv["h5"] > State.off);
- assert(lv["h7"] == State.off);
- } else if (lv["h5"] > State.off) {
- assert(lv["h4"] > State.off);
- assert(lv["h6"] == State.off);
- assert(lv["h7"] == State.off);
- } else if (lv["h4"] > State.off) {
- assert(lv["h5"] == State.off);
- assert(lv["h6"] == State.off);
- assert(lv["h7"] == State.off);
+ assert(lv["h0"] == eN.bi.off);
+ assert(lv["h1"] == eN.bi.off);
+ assert(lv["h2"] == eN.bi.off);
+ assert(lv["h3"] == eN.bi.off);
+ }
+ if (lv["h7"] > eN.bi.off) {
+ assert(lv["h4"] > eN.bi.off);
+ assert(lv["h5"] > eN.bi.off);
+ assert(lv["h6"] > eN.bi.off);
+ } else if (lv["h6"] > eN.bi.off) {
+ assert(lv["h4"] > eN.bi.off);
+ assert(lv["h5"] > eN.bi.off);
+ assert(lv["h7"] == eN.bi.off);
+ } else if (lv["h5"] > eN.bi.off) {
+ assert(lv["h4"] > eN.bi.off);
+ assert(lv["h6"] == eN.bi.off);
+ assert(lv["h7"] == eN.bi.off);
+ } else if (lv["h4"] > eN.bi.off) {
+ assert(lv["h5"] == eN.bi.off);
+ assert(lv["h6"] == eN.bi.off);
+ assert(lv["h7"] == eN.bi.off);
} else {
- assert(lv["h4"] == State.off);
- assert(lv["h5"] == State.off);
- assert(lv["h6"] == State.off);
- assert(lv["h7"] == State.off);
+ assert(lv["h4"] == eN.bi.off);
+ assert(lv["h5"] == eN.bi.off);
+ assert(lv["h6"] == eN.bi.off);
+ assert(lv["h7"] == eN.bi.off);
}
- if (lv["h0"] == State.off) {
- assert(lv["h1"] == State.off);
- assert(lv["h2"] == State.off);
- assert(lv["h3"] == State.off);
- assert(lv["h4"] == State.off);
- assert(lv["h5"] == State.off);
- assert(lv["h6"] == State.off);
- assert(lv["h7"] == State.off);
+ if (lv["h0"] == eN.bi.off) {
+ assert(lv["h1"] == eN.bi.off);
+ assert(lv["h2"] == eN.bi.off);
+ assert(lv["h3"] == eN.bi.off);
+ assert(lv["h4"] == eN.bi.off);
+ assert(lv["h5"] == eN.bi.off);
+ assert(lv["h6"] == eN.bi.off);
+ assert(lv["h7"] == eN.bi.off);
}
- if (lv["h1"] == State.off) {
- assert(lv["h2"] == State.off);
- assert(lv["h3"] == State.off);
+ if (lv["h1"] == eN.bi.off) {
+ assert(lv["h2"] == eN.bi.off);
+ assert(lv["h3"] == eN.bi.off);
}
- if (lv["h2"] == State.off) {
- assert(lv["h3"] == State.off);
+ if (lv["h2"] == eN.bi.off) {
+ assert(lv["h3"] == eN.bi.off);
}
- if (lv["h3"] == State.off) {
+ if (lv["h3"] == eN.bi.off) {
}
- if (lv["h4"] == State.off) {
- assert(lv["h5"] == State.off);
- assert(lv["h6"] == State.off);
- assert(lv["h7"] == State.off);
+ if (lv["h4"] == eN.bi.off) {
+ assert(lv["h5"] == eN.bi.off);
+ assert(lv["h6"] == eN.bi.off);
+ assert(lv["h7"] == eN.bi.off);
}
- if (lv["h5"] == State.off) {
- assert(lv["h6"] == State.off);
- assert(lv["h7"] == State.off);
+ if (lv["h5"] == eN.bi.off) {
+ assert(lv["h6"] == eN.bi.off);
+ assert(lv["h7"] == eN.bi.off);
}
- if (lv["h6"] == State.off) {
- assert(lv["h7"] == State.off);
+ if (lv["h6"] == eN.bi.off) {
+ assert(lv["h7"] == eN.bi.off);
}
- if (lv["h7"] == State.off) {
+ if (lv["h7"] == eN.bi.off) {
}
switch ((an_object["lev"]).to!string) {
case "A":
- if (lv["h0"] == State.off) {
- assert(lv["h1"] == State.off);
- assert(lv["h2"] == State.off);
- assert(lv["h3"] == State.off);
- assert(lv["h4"] == State.off);
- assert(lv["h5"] == State.off);
- assert(lv["h6"] == State.off);
- assert(lv["h7"] == State.off);
- } else { // (lv["h0"] > State.off)
- assert(lv["h0"] == State.off,"error should not enter level A a second time");
+ if (lv["h0"] == eN.bi.off) {
+ assert(lv["h1"] == eN.bi.off);
+ assert(lv["h2"] == eN.bi.off);
+ assert(lv["h3"] == eN.bi.off);
+ assert(lv["h4"] == eN.bi.off);
+ assert(lv["h5"] == eN.bi.off);
+ assert(lv["h6"] == eN.bi.off);
+ assert(lv["h7"] == eN.bi.off);
+ } else { // (lv["h0"] > eN.bi.off)
+ assert(lv["h0"] == eN.bi.off,"error should not enter level A a second time");
}
break;
case "B":
- if (lv["h1"] == State.off) {
- assert(lv["h0"] > State.off);
- assert(lv["h2"] == State.off);
- assert(lv["h3"] == State.off);
- } else { // (lv["h1"] > State.off)
- assert(lv["h0"] > State.off);
- assert(lv["h1"] > State.off);
+ if (lv["h1"] == eN.bi.off) {
+ assert(lv["h0"] > eN.bi.off);
+ assert(lv["h2"] == eN.bi.off);
+ assert(lv["h3"] == eN.bi.off);
+ } else { // (lv["h1"] > eN.bi.off)
+ assert(lv["h0"] > eN.bi.off);
+ assert(lv["h1"] > eN.bi.off);
}
break;
case "C":
- if (lv["h2"] == State.off) {
- assert(lv["h0"] > State.off);
- assert(lv["h1"] > State.off);
- assert(lv["h3"] == State.off);
- } else { // (lv["h2"] > State.off)
- assert(lv["h0"] > State.off);
- assert(lv["h1"] > State.off);
- assert(lv["h2"] > State.off);
+ if (lv["h2"] == eN.bi.off) {
+ assert(lv["h0"] > eN.bi.off);
+ assert(lv["h1"] > eN.bi.off);
+ assert(lv["h3"] == eN.bi.off);
+ } else { // (lv["h2"] > eN.bi.off)
+ assert(lv["h0"] > eN.bi.off);
+ assert(lv["h1"] > eN.bi.off);
+ assert(lv["h2"] > eN.bi.off);
}
break;
case "D":
- if (lv["h3"] == State.off) {
- assert(lv["h0"] > State.off);
- assert(lv["h1"] > State.off);
- assert(lv["h2"] > State.off);
- } else { // (lv["h3"] > State.off)
- assert(lv["h0"] > State.off);
- assert(lv["h1"] > State.off);
- assert(lv["h2"] > State.off);
- assert(lv["h3"] > State.off);
+ if (lv["h3"] == eN.bi.off) {
+ assert(lv["h0"] > eN.bi.off);
+ assert(lv["h1"] > eN.bi.off);
+ assert(lv["h2"] > eN.bi.off);
+ } else { // (lv["h3"] > eN.bi.off)
+ assert(lv["h0"] > eN.bi.off);
+ assert(lv["h1"] > eN.bi.off);
+ assert(lv["h2"] > eN.bi.off);
+ assert(lv["h3"] > eN.bi.off);
}
break;
case "1":
- if (lv["h4"] == State.off) {
- assert(lv["h0"] > State.off);
- } else { // (lv["h4"] > State.off)
- assert(lv["h0"] > State.off);
- assert(lv["h4"] > State.off);
+ if (lv["h4"] == eN.bi.off) {
+ assert(lv["h0"] > eN.bi.off);
+ } else { // (lv["h4"] > eN.bi.off)
+ assert(lv["h0"] > eN.bi.off);
+ assert(lv["h4"] > eN.bi.off);
}
break;
case "2":
- if (lv["h5"] == State.off) {
- assert(lv["h0"] > State.off);
- assert(lv["h4"] > State.off);
- } else { // (lv["h5"] > State.off)
- assert(lv["h0"] > State.off);
- assert(lv["h4"] > State.off);
- assert(lv["h5"] > State.off);
+ if (lv["h5"] == eN.bi.off) {
+ assert(lv["h0"] > eN.bi.off);
+ assert(lv["h4"] > eN.bi.off);
+ } else { // (lv["h5"] > eN.bi.off)
+ assert(lv["h0"] > eN.bi.off);
+ assert(lv["h4"] > eN.bi.off);
+ assert(lv["h5"] > eN.bi.off);
}
break;
case "3":
- if (lv["h6"] == State.off) {
- assert(lv["h0"] > State.off);
- assert(lv["h4"] > State.off);
- assert(lv["h5"] > State.off);
- } else { // (lv["h6"] > State.off)
- assert(lv["h0"] > State.off);
- assert(lv["h4"] > State.off);
- assert(lv["h5"] > State.off);
- assert(lv["h6"] > State.off);
+ if (lv["h6"] == eN.bi.off) {
+ assert(lv["h0"] > eN.bi.off);
+ assert(lv["h4"] > eN.bi.off);
+ assert(lv["h5"] > eN.bi.off);
+ } else { // (lv["h6"] > eN.bi.off)
+ assert(lv["h0"] > eN.bi.off);
+ assert(lv["h4"] > eN.bi.off);
+ assert(lv["h5"] > eN.bi.off);
+ assert(lv["h6"] > eN.bi.off);
}
break;
case "4":
- if (lv["h7"] == State.off) {
- assert(lv["h0"] > State.off);
- assert(lv["h4"] > State.off);
- assert(lv["h5"] > State.off);
- assert(lv["h6"] > State.off);
- } else { // (lv["h7"] > State.off)
- assert(lv["h0"] > State.off);
- assert(lv["h4"] > State.off);
- assert(lv["h5"] > State.off);
- assert(lv["h6"] > State.off);
- assert(lv["h7"] > State.off);
+ if (lv["h7"] == eN.bi.off) {
+ assert(lv["h0"] > eN.bi.off);
+ assert(lv["h4"] > eN.bi.off);
+ assert(lv["h5"] > eN.bi.off);
+ assert(lv["h6"] > eN.bi.off);
+ } else { // (lv["h7"] > eN.bi.off)
+ assert(lv["h0"] > eN.bi.off);
+ assert(lv["h4"] > eN.bi.off);
+ assert(lv["h5"] > eN.bi.off);
+ assert(lv["h6"] > eN.bi.off);
+ assert(lv["h7"] > eN.bi.off);
}
break;
default:
@@ -6161,24 +6178,24 @@ template docAbstraction() {
}
@safe pure void assertions_flag_types_block_status_none_or_closed()(int[string] obj_type_status) {
assert(
- (obj_type_status["code"] == TriState.off)
- || (obj_type_status["code"] == TriState.closing),
+ (obj_type_status["code"] == eN.tri.off)
+ || (obj_type_status["code"] == eN.tri.closing),
"code block status: off or closing");
assert(
- (obj_type_status["poem"] == TriState.off)
- || (obj_type_status["poem"] == TriState.closing),
+ (obj_type_status["poem"] == eN.tri.off)
+ || (obj_type_status["poem"] == eN.tri.closing),
"poem status: off or closing");
assert(
- (obj_type_status["table"] == TriState.off)
- || (obj_type_status["table"] == TriState.closing),
+ (obj_type_status["table"] == eN.tri.off)
+ || (obj_type_status["table"] == eN.tri.closing),
"table status: off or closing");
assert(
- (obj_type_status["group"] == TriState.off)
- || (obj_type_status["group"] == TriState.closing),
+ (obj_type_status["group"] == eN.tri.off)
+ || (obj_type_status["group"] == eN.tri.closing),
"group block status: off or closing");
assert(
- (obj_type_status["block"] == TriState.off)
- || (obj_type_status["block"] == TriState.closing),
+ (obj_type_status["block"] == eN.tri.off)
+ || (obj_type_status["block"] == eN.tri.closing),
"block status: off or closing");
}
/+ abstraction functions assertions ↑ +/