aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sdp/ao_abstract_doc_source.d
diff options
context:
space:
mode:
Diffstat (limited to 'src/sdp/ao_abstract_doc_source.d')
-rw-r--r--src/sdp/ao_abstract_doc_source.d621
1 files changed, 323 insertions, 298 deletions
diff --git a/src/sdp/ao_abstract_doc_source.d b/src/sdp/ao_abstract_doc_source.d
index 066ef3a..82341cd 100644
--- a/src/sdp/ao_abstract_doc_source.d
+++ b/src/sdp/ao_abstract_doc_source.d
@@ -234,7 +234,7 @@ template SiSUdocAbstraction() {
Opt opt_action_bool,
) {
auto rgx = Rgx();
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(markup_sourcefile_content) == char[][]));
static assert(is(typeof(dochead_make_aa) == string[string][string]));
static assert(is(typeof(dochead_meta_aa) == string[string][string]));
@@ -386,6 +386,7 @@ template SiSUdocAbstraction() {
} else if (!matchFirst(line, rgx.skip_from_regular_parse)) {
/+ object other than "code block" object
(includes regular text paragraph, headings & blocks other than code) +/
+ /+ heading, glossary, blurb, poem, group, block, quote, table +/
if ((matchFirst(line, rgx.heading_biblio)
|| (type["biblio_section"] == State.on
&& (!matchFirst(line, rgx.heading_blurb_glossary))))
@@ -556,10 +557,6 @@ template SiSUdocAbstraction() {
type["ocn_status"] = TriState.off;
}
continue;
- } else if (type["poem"] == TriState.on) {
- /+ within block object: poem +/
- _poem_block_(line, an_object, type, cntr, obj_cite_number_poem, dochead_make_aa);
- continue;
/+ within block object: group +/
} else if (type["group"] == TriState.on) {
/+ within block object: group +/
@@ -569,6 +566,10 @@ template SiSUdocAbstraction() {
/+ within block object: block +/
_block_block_(line, an_object, type);
continue;
+ } else if (type["poem"] == TriState.on) {
+ /+ within block object: poem +/
+ _poem_block_(line, an_object, type, cntr, obj_cite_number_poem, dochead_make_aa);
+ continue;
} else if (type["quote"] == TriState.on) {
/+ within block object: quote +/
_quote_block_(line, an_object, type);
@@ -789,7 +790,8 @@ template SiSUdocAbstraction() {
an_object.remove("lev_markup_number");
processing.remove("verse");
++cntr;
- } else if ((type["para"] == State.on) && (line_occur["para"] > State.off)) {
+ } else if ((type["para"] == State.on)
+ && (line_occur["para"] > State.off)) {
/+ paragraph object (current line empty) +/
obj_cite_number = ocn_emit(type["ocn_status"]);
an_object["bookindex_nugget"] =
@@ -846,10 +848,9 @@ template SiSUdocAbstraction() {
/+ unless (the_document_body_section.length == 0) ? +/
if (the_document_body_section.length > 0) {
if (((the_document_body_section[$-1].is_a == "para")
- || (the_document_body_section[$-1].is_a == "heading")
- || (the_document_body_section[$-1].is_a == "group"))
- && (the_document_body_section.length > previous_length)
- ) {
+ || (the_document_body_section[$-1].is_a == "heading")
+ || (the_document_body_section[$-1].is_a == "group"))
+ && (the_document_body_section.length > previous_length)) {
if ((the_document_body_section[$-1].is_a == "heading")
&& (the_document_body_section[$-1].heading_lev_markup < 5)) {
type["biblio_section"] = State.off;
@@ -1603,7 +1604,7 @@ template SiSUdocAbstraction() {
} /+ ← closed: abstract doc source +/
/+ ↓ abstraction functions +/
auto object_reset(O)(ref O an_object) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(an_object) == string[string]));
}
an_object.remove("body_nugget");
@@ -1617,7 +1618,7 @@ template SiSUdocAbstraction() {
return ref O an_object,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line_occur) == int[string]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(type) == int[string]));
@@ -1632,7 +1633,7 @@ template SiSUdocAbstraction() {
L line,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(type) == int[string]));
}
@@ -1682,7 +1683,7 @@ template SiSUdocAbstraction() {
return ref T type,
N obj_cite_number_poem
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(type) == int[string]));
static assert(is(typeof(obj_cite_number_poem) == string[string]));
@@ -1754,8 +1755,8 @@ template SiSUdocAbstraction() {
line
);
}
- type["blocks"] = TriState.on;
- type["table"] = TriState.on;
+ type["blocks"] = TriState.on;
+ type["table"] = TriState.on;
type["curly_table"] = TriState.on;
} else if (matchFirst(line, rgx.block_tic_code_open)) {
/+ tic code open +/
@@ -1822,8 +1823,8 @@ template SiSUdocAbstraction() {
line
);
}
- type["blocks"] = TriState.on;
- type["table"] = TriState.on;
+ type["blocks"] = TriState.on;
+ type["table"] = TriState.on;
type["tic_table"] = TriState.on;
}
}
@@ -1832,7 +1833,7 @@ template SiSUdocAbstraction() {
return ref O an_object,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(type) == int[string]));
@@ -1869,7 +1870,7 @@ template SiSUdocAbstraction() {
}
}
final string biblio_tag_map(A)(A abr) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(abr) == string));
}
auto btm = [
@@ -2013,6 +2014,88 @@ template SiSUdocAbstraction() {
}
}
//
+ void _group_block_(L,O,T)(
+ return ref L line,
+ return ref O an_object,
+ return ref T type
+ ) {
+ debug(asserts) {
+ static assert(is(typeof(line) == char[]));
+ static assert(is(typeof(an_object) == string[string]));
+ static assert(is(typeof(type) == int[string]));
+ }
+ auto rgx = Rgx();
+ if (type["curly_group"] == State.on) {
+ if (matchFirst(line, rgx.block_curly_group_close)) {
+ debug(group) {
+ writeln(line);
+ }
+ type["blocks"] = TriState.closing;
+ type["group"] = TriState.closing;
+ type["curly_group"] = TriState.off;
+ } else {
+ debug(group) {
+ writeln(line);
+ }
+ an_object[an_object_key] ~= line ~= "\n"; // build group array (or string)
+ }
+ } else if (type["tic_group"] == TriState.on) {
+ if (matchFirst(line, rgx.block_tic_close)) {
+ debug(group) {
+ writeln(line);
+ }
+ type["blocks"] = TriState.closing;
+ type["group"] = TriState.closing;
+ type["tic_group"] = TriState.off;
+ } else {
+ debug(group) { // group
+ writeln(line);
+ }
+ an_object[an_object_key] ~= line ~= "\n"; // build group array (or string)
+ }
+ }
+ }
+ void _block_block_(L,O,T)(
+ return ref L line,
+ return ref O an_object,
+ return ref T type
+ ) {
+ debug(asserts) {
+ static assert(is(typeof(line) == char[]));
+ static assert(is(typeof(an_object) == string[string]));
+ static assert(is(typeof(type) == int[string]));
+ }
+ auto rgx = Rgx();
+ if (type["curly_block"] == TriState.on) {
+ if (matchFirst(line, rgx.block_curly_block_close)) {
+ debug(block) { // block (curly) close
+ writeln(line);
+ }
+ type["blocks"] = TriState.closing;
+ type["block"] = TriState.closing;
+ type["curly_block"] = TriState.off;
+ } else {
+ debug(block) {
+ writeln(line);
+ }
+ an_object[an_object_key] ~= line ~= "\n"; // build block array (or string)
+ }
+ } else if (type["tic_block"] == TriState.on) {
+ if (matchFirst(line, rgx.block_tic_close)) {
+ debug(block) {
+ writeln(line);
+ }
+ type["blocks"] = TriState.closing;
+ type["block"] = TriState.closing;
+ type["tic_block"] = TriState.off;
+ } else {
+ debug(block) {
+ writeln(line);
+ }
+ an_object[an_object_key] ~= line ~= "\n"; // build block array (or string)
+ }
+ }
+ }
void _poem_block_(L,O,T,C,N,Ma)(
L line,
return ref O an_object,
@@ -2021,7 +2104,7 @@ template SiSUdocAbstraction() {
N obj_cite_number_poem,
Ma dochead_make_aa,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(type) == int[string]));
@@ -2227,94 +2310,12 @@ template SiSUdocAbstraction() {
}
}
}
- void _group_block_(L,O,T)(
- return ref L line,
- return ref O an_object,
- return ref T type
- ) {
- debug(asserts){
- static assert(is(typeof(line) == char[]));
- static assert(is(typeof(an_object) == string[string]));
- static assert(is(typeof(type) == int[string]));
- }
- auto rgx = Rgx();
- if (type["curly_group"] == State.on) {
- if (matchFirst(line, rgx.block_curly_group_close)) {
- debug(group) { // group (curly) close
- writeln(line);
- }
- type["blocks"] = TriState.closing;
- type["group"] = TriState.closing;
- type["curly_group"] = TriState.off;
- } else {
- debug(group) { // group
- writeln(line);
- }
- an_object[an_object_key] ~= line ~= "\n"; // build group array (or string)
- }
- } else if (type["tic_group"] == TriState.on) {
- if (matchFirst(line, rgx.block_tic_close)) {
- debug(group) { // group (tic) close
- writeln(line);
- }
- type["blocks"] = TriState.closing;
- type["group"] = TriState.closing;
- type["tic_group"] = TriState.off;
- } else {
- debug(group) { // group
- writeln(line);
- }
- an_object[an_object_key] ~= line ~= "\n"; // build group array (or string)
- }
- }
- }
- void _block_block_(L,O,T)(
- return ref L line,
- return ref O an_object,
- return ref T type
- ) {
- debug(asserts){
- static assert(is(typeof(line) == char[]));
- static assert(is(typeof(an_object) == string[string]));
- static assert(is(typeof(type) == int[string]));
- }
- auto rgx = Rgx();
- if (type["curly_block"] == TriState.on) {
- if (matchFirst(line, rgx.block_curly_block_close)) {
- debug(block) { // block (curly) close
- writeln(line);
- }
- type["blocks"] = TriState.closing;
- type["block"] = TriState.closing;
- type["curly_block"] = TriState.off;
- } else {
- debug(block) { // block
- writeln(line);
- }
- an_object[an_object_key] ~= line ~= "\n"; // build block array (or string)
- }
- } else if (type["tic_block"] == TriState.on) {
- if (matchFirst(line, rgx.block_tic_close)) {
- debug(block) { // block (tic) close
- writeln(line);
- }
- type["blocks"] = TriState.closing;
- type["block"] = TriState.closing;
- type["tic_block"] = TriState.off;
- } else {
- debug(block) { // block
- writeln(line);
- }
- an_object[an_object_key] ~= line ~= "\n"; // build block array (or string)
- }
- }
- }
void _quote_block_(L,O,T)(
return ref L line,
return ref O an_object,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(type) == int[string]));
@@ -2325,8 +2326,8 @@ template SiSUdocAbstraction() {
debug(quote) { // quote (curly) close
writeln(line);
}
- type["blocks"] = TriState.closing;
- type["quote"] = TriState.closing;
+ type["blocks"] = TriState.closing;
+ type["quote"] = TriState.closing;
type["curly_quote"] = TriState.off;
} else {
debug(quote) {
@@ -2339,8 +2340,8 @@ template SiSUdocAbstraction() {
debug(quote) { // quote (tic) close
writeln(line);
}
- type["blocks"] = TriState.closing;
- type["quote"] = TriState.closing;
+ type["blocks"] = TriState.closing;
+ type["quote"] = TriState.closing;
type["tic_quote"] = TriState.off;
} else {
debug(quote) {
@@ -2355,7 +2356,7 @@ template SiSUdocAbstraction() {
return ref O an_object,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(type) == int[string]));
@@ -2392,8 +2393,8 @@ template SiSUdocAbstraction() {
}
}
void _block_flag_line_empty_(B)(
- B bookindex_extract_hash,
- char[] line,
+ B bookindex_extract_hash,
+ char[] line,
return ref string[string] an_object,
return ref ObjGenericComposite[] the_document_body_section,
return ref string[][string][string] bookindex_unordered_hashes,
@@ -2414,14 +2415,18 @@ template SiSUdocAbstraction() {
"code block status: closed"
);
assertions_flag_types_block_status_none_or_closed(type);
- if (type["code"] == TriState.closing) {
+ if (type["group"] == TriState.closing) {
obj_cite_number =
ocn_emit(type["ocn_status"]);
an_object["bookindex_nugget"] =
("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "code";
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
+ obj_cite_number,
+ segment_anchor_tag_that_object_belongs_to
+ );
+ an_object["is"] = "group";
auto comp_obj_location =
node_construct.node_location_emitter(
content_non_header,
@@ -2435,57 +2440,33 @@ template SiSUdocAbstraction() {
obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];
- comp_obj_code = comp_obj_code.init;
- comp_obj_code.use = "body";
- comp_obj_code.is_of = "block";
- comp_obj_code.is_a = "code";
- comp_obj_code.ocn = obj_cite_number;
- comp_obj_code.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
- comp_obj_code.text = an_object["substantive"];
- comp_obj_code.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
- comp_obj_code.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
- comp_obj_code.inline_links = substantive_obj_misc_tuple[sObj.links];
- the_document_body_section ~= comp_obj_code;
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.use = "body";
+ comp_obj_block.is_of = "block";
+ comp_obj_block.is_a = "group";
+ comp_obj_block.ocn = obj_cite_number;
+ comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ comp_obj_block.text = an_object["substantive"];
+ comp_obj_block.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
+ comp_obj_block.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
+ comp_obj_block.inline_links = substantive_obj_misc_tuple[sObj.links];
+ the_document_body_section ~= comp_obj_block;
+ type["blocks"] = TriState.off;
+ type["group"] = TriState.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
- type["blocks"] = TriState.off;
- type["code"] = TriState.off;
- } else if (type["poem"] == TriState.closing) {
+ } else if (type["block"] == TriState.closing) {
+ obj_cite_number = ocn_emit(type["ocn_status"]);
an_object["bookindex_nugget"] =
("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "verse"; // check also
- auto comp_obj_location =
- node_construct.node_location_emitter(
- content_non_header,
- segment_anchor_tag_that_object_belongs_to,
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
obj_cite_number,
- cntr,
- heading_ptr-1,
- an_object["is"]
+ segment_anchor_tag_that_object_belongs_to
);
- comp_obj_poem_ocn = comp_obj_poem_ocn.init;
- comp_obj_poem_ocn.use = "body";
- comp_obj_poem_ocn.is_of = "block";
- comp_obj_poem_ocn.is_a = "poem";
- comp_obj_poem_ocn.ocn = obj_cite_number;
- comp_obj_poem_ocn.obj_cite_number = (obj_cite_number_poem["start"], obj_cite_number_poem["end"]);
- comp_obj_poem_ocn.text = ""; // an_object["substantive"];
- the_document_body_section ~= comp_obj_poem_ocn;
- object_reset(an_object);
- processing.remove("verse");
- type["blocks"] = TriState.off;
- type["poem"] = TriState.off;
- } else if (type["table"] == TriState.closing) {
- obj_cite_number =
- ocn_emit(type["ocn_status"]);
- an_object["bookindex_nugget"] =
- ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
- bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "table";
+ an_object["is"] = "block";
auto comp_obj_location =
node_construct.node_location_emitter(
content_non_header,
@@ -2494,7 +2475,7 @@ template SiSUdocAbstraction() {
cntr,
heading_ptr-1,
an_object["is"]
- );
+ );
auto substantive_obj_misc_tuple =
obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
@@ -2502,7 +2483,7 @@ template SiSUdocAbstraction() {
comp_obj_block = comp_obj_block.init;
comp_obj_block.use = "body";
comp_obj_block.is_of = "block";
- comp_obj_block.is_a = "table";
+ comp_obj_block.is_a = "block";
comp_obj_block.ocn = obj_cite_number;
comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
comp_obj_block.text = an_object["substantive"];
@@ -2510,19 +2491,23 @@ template SiSUdocAbstraction() {
comp_obj_block.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
comp_obj_block.inline_links = substantive_obj_misc_tuple[sObj.links];
the_document_body_section ~= comp_obj_block;
+ type["blocks"] = TriState.off;
+ type["block"] = TriState.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
- type["blocks"] = TriState.off;
- type["table"] = TriState.off;
- } else if (type["group"] == TriState.closing) {
+ } else if (type["code"] == TriState.closing) {
obj_cite_number =
ocn_emit(type["ocn_status"]);
an_object["bookindex_nugget"] =
("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "group";
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
+ obj_cite_number,
+ segment_anchor_tag_that_object_belongs_to
+ );
+ an_object["is"] = "code";
auto comp_obj_location =
node_construct.node_location_emitter(
content_non_header,
@@ -2536,29 +2521,32 @@ template SiSUdocAbstraction() {
obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];
- comp_obj_block = comp_obj_block.init;
- comp_obj_block.use = "body";
- comp_obj_block.is_of = "block";
- comp_obj_block.is_a = "group";
- comp_obj_block.ocn = obj_cite_number;
- comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
- comp_obj_block.text = an_object["substantive"];
- comp_obj_block.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
- comp_obj_block.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
- comp_obj_block.inline_links = substantive_obj_misc_tuple[sObj.links];
- the_document_body_section ~= comp_obj_block;
+ comp_obj_code = comp_obj_code.init;
+ comp_obj_code.use = "body";
+ comp_obj_code.is_of = "block";
+ comp_obj_code.is_a = "code";
+ comp_obj_code.ocn = obj_cite_number;
+ comp_obj_code.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ comp_obj_code.text = an_object["substantive"];
+ comp_obj_code.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
+ comp_obj_code.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
+ comp_obj_code.inline_links = substantive_obj_misc_tuple[sObj.links];
+ the_document_body_section ~= comp_obj_code;
+ type["blocks"] = TriState.off;
+ type["code"] = TriState.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
- type["blocks"] = TriState.off;
- type["group"] = TriState.off;
- } else if (type["block"] == TriState.closing) {
- obj_cite_number = ocn_emit(type["ocn_status"]);
+ } else if (type["poem"] == TriState.closing) {
an_object["bookindex_nugget"] =
("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "block";
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
+ obj_cite_number,
+ segment_anchor_tag_that_object_belongs_to
+ );
+ an_object["is"] = "verse"; // check also
auto comp_obj_location =
node_construct.node_location_emitter(
content_non_header,
@@ -2567,15 +2555,48 @@ template SiSUdocAbstraction() {
cntr,
heading_ptr-1,
an_object["is"]
- );
+ );
+ comp_obj_poem_ocn = comp_obj_poem_ocn.init;
+ comp_obj_poem_ocn.use = "body";
+ comp_obj_poem_ocn.is_of = "block";
+ comp_obj_poem_ocn.is_a = "poem";
+ comp_obj_poem_ocn.ocn = obj_cite_number;
+ comp_obj_poem_ocn.obj_cite_number = (obj_cite_number_poem["start"], obj_cite_number_poem["end"]);
+ comp_obj_poem_ocn.text = ""; // an_object["substantive"];
+ the_document_body_section ~= comp_obj_poem_ocn;
+ type["blocks"] = TriState.off;
+ type["poem"] = TriState.off;
+ object_reset(an_object);
+ processing.remove("verse");
+ } else if (type["quote"] == TriState.closing) {
+ obj_cite_number =
+ ocn_emit(type["ocn_status"]);
+ an_object["bookindex_nugget"] =
+ ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
+ bookindex_unordered_hashes =
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
+ obj_cite_number,
+ segment_anchor_tag_that_object_belongs_to
+ );
+ an_object["is"] = "quote";
+ auto comp_obj_location =
+ node_construct.node_location_emitter(
+ content_non_header,
+ segment_anchor_tag_that_object_belongs_to,
+ obj_cite_number,
+ cntr,
+ heading_ptr-1,
+ an_object["is"]
+ );
auto substantive_obj_misc_tuple =
- obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
- an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
+ obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa); // ...
+ an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; // ...
anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];
comp_obj_block = comp_obj_block.init;
comp_obj_block.use = "body";
comp_obj_block.is_of = "block";
- comp_obj_block.is_a = "block";
+ comp_obj_block.is_a = "quote";
comp_obj_block.ocn = obj_cite_number;
comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
comp_obj_block.text = an_object["substantive"];
@@ -2587,15 +2608,19 @@ template SiSUdocAbstraction() {
processing.remove("verse");
++cntr;
type["blocks"] = TriState.off;
- type["block"] = TriState.off;
- } else if (type["quote"] == TriState.closing) {
+ type["quote"] = TriState.off;
+ } else if (type["table"] == TriState.closing) {
obj_cite_number =
ocn_emit(type["ocn_status"]);
an_object["bookindex_nugget"] =
("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "quote";
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
+ obj_cite_number,
+ segment_anchor_tag_that_object_belongs_to
+ );
+ an_object["is"] = "table";
auto comp_obj_location =
node_construct.node_location_emitter(
content_non_header,
@@ -2606,13 +2631,13 @@ template SiSUdocAbstraction() {
an_object["is"]
);
auto substantive_obj_misc_tuple =
- obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa); // ...
- an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; // ...
+ obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
+ an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];
comp_obj_block = comp_obj_block.init;
comp_obj_block.use = "body";
comp_obj_block.is_of = "block";
- comp_obj_block.is_a = "quote";
+ comp_obj_block.is_a = "table";
comp_obj_block.ocn = obj_cite_number;
comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
comp_obj_block.text = an_object["substantive"];
@@ -2620,11 +2645,11 @@ template SiSUdocAbstraction() {
comp_obj_block.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
comp_obj_block.inline_links = substantive_obj_misc_tuple[sObj.links];
the_document_body_section ~= comp_obj_block;
+ type["blocks"] = TriState.off;
+ type["table"] = TriState.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
- type["blocks"] = TriState.off;
- type["quote"] = TriState.off;
}
}
auto _book_index_(L,I,O,T,B)(
@@ -2634,7 +2659,7 @@ template SiSUdocAbstraction() {
return ref T type,
B opt_action_bool,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(book_idx_tmp) == string));
static assert(is(typeof(an_object) == string[string]));
@@ -2693,7 +2718,7 @@ template SiSUdocAbstraction() {
return ref R heading_match_rgx,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(dochead_make_identify_unmarked_headings) == string));
static assert(is(typeof(heading_match_str) == string[string]));
@@ -2784,7 +2809,7 @@ template SiSUdocAbstraction() {
return ref R heading_match_rgx,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(line_occur) == int[string]));
static assert(is(typeof(heading_match_rgx) == Regex!(char)[string]));
@@ -2850,7 +2875,7 @@ template SiSUdocAbstraction() {
return ref T type,
return ref Me dochead_meta_aa,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(line_occur) == int[string]));
static assert(is(typeof(an_object) == string[string]));
@@ -3004,7 +3029,7 @@ template SiSUdocAbstraction() {
return ref T type,
return ref C line_occur,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(an_object_key) == string));
@@ -3105,7 +3130,7 @@ template SiSUdocAbstraction() {
n_foot_sp_plus = 0;
}
string url_links(Ot)(Ot obj_txt_in) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
/+ url matched +/
@@ -3159,7 +3184,7 @@ template SiSUdocAbstraction() {
return obj_txt_in;
}
auto footnotes_endnotes_markup_and_number_or_stars(Ot)(Ot obj_txt_in, bool reset_note_numbers) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
/+ endnotes (regular) +/
@@ -3216,7 +3241,7 @@ template SiSUdocAbstraction() {
}
private auto object_notes_and_links_(Ot)(Ot obj_txt_in, bool reset_note_numbers=false)
in {
- debug(asserts){
+ debug(asserts) {
assert(is(typeof(obj_txt_in) == string));
}
}
@@ -3270,17 +3295,18 @@ template SiSUdocAbstraction() {
}
invariant() {
}
- auto para(Ot)(Ot obj_txt_in)
+ auto munge_heading(Ot)(Ot obj_txt_in, bool reset_note_numbers=false)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
obj_txt["munge"]=(obj_txt_in)
- .replaceFirst(rgx.para_attribs, "")
- .replaceFirst(rgx.obj_cite_number_off_all, "");
- auto t = object_notes_and_links_(obj_txt["munge"]);
+ .replaceFirst(rgx.heading, "")
+ .replaceFirst(rgx.obj_cite_number_off_all, "")
+ .strip;
+ auto t = object_notes_and_links_(obj_txt["munge"], reset_note_numbers);
debug(munge) {
writeln(__LINE__);
writeln(obj_txt_in);
@@ -3289,18 +3315,19 @@ template SiSUdocAbstraction() {
}
return t;
}
- auto heading(Ot)(Ot obj_txt_in, bool reset_note_numbers=false)
+ invariant() {
+ }
+ auto munge_para(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
obj_txt["munge"]=(obj_txt_in)
- .replaceFirst(rgx.heading, "")
- .replaceFirst(rgx.obj_cite_number_off_all, "")
- .strip;
- auto t = object_notes_and_links_(obj_txt["munge"], reset_note_numbers);
+ .replaceFirst(rgx.para_attribs, "")
+ .replaceFirst(rgx.obj_cite_number_off_all, "");
+ auto t = object_notes_and_links_(obj_txt["munge"]);
debug(munge) {
writeln(__LINE__);
writeln(obj_txt_in);
@@ -3309,22 +3336,7 @@ template SiSUdocAbstraction() {
}
return t;
}
- invariant() {
- }
- string code(Ot)(Ot obj_txt_in)
- in {
- debug(asserts){
- assert(is(typeof(obj_txt_in) == string));
- }
- }
- body {
- obj_txt_in = (obj_txt_in).replaceAll(rgx.two_spaces, mkup.nbsp ~ mkup.nbsp);
- obj_txt["munge"] = obj_txt_in;
- return obj_txt["munge"];
- }
- invariant() {
- }
- auto group(string obj_txt_in)
+ auto munge_group(string obj_txt_in)
in { }
body {
obj_txt["munge"]=obj_txt_in;
@@ -3333,9 +3345,9 @@ template SiSUdocAbstraction() {
}
invariant() {
}
- auto block(Ot)(Ot obj_txt_in)
+ auto munge_block(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -3346,9 +3358,9 @@ template SiSUdocAbstraction() {
}
invariant() {
}
- auto verse(Ot)(Ot obj_txt_in)
+ auto munge_verse(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -3359,9 +3371,22 @@ template SiSUdocAbstraction() {
}
invariant() {
}
- string quote(Ot)(Ot obj_txt_in)
+ string munge_code(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
+ assert(is(typeof(obj_txt_in) == string));
+ }
+ }
+ body {
+ obj_txt_in = (obj_txt_in).replaceAll(rgx.two_spaces, mkup.nbsp ~ mkup.nbsp);
+ obj_txt["munge"] = obj_txt_in;
+ return obj_txt["munge"];
+ }
+ invariant() {
+ }
+ string munge_table(Ot)(Ot obj_txt_in)
+ in {
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -3371,9 +3396,9 @@ template SiSUdocAbstraction() {
}
invariant() {
}
- string table(Ot)(Ot obj_txt_in)
+ string munge_quote(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -3383,9 +3408,9 @@ template SiSUdocAbstraction() {
}
invariant() {
}
- string comment(Ot)(Ot obj_txt_in)
+ string munge_comment(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -3406,15 +3431,15 @@ template SiSUdocAbstraction() {
Ma dochead_make_aa
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_) == string[string]));
static assert(is(typeof(obj_key_) == string));
static assert(is(typeof(dochead_make_aa) == string[string][string]));
}
}
body {
- obj_txt["munge"]=obj_[obj_key_].dup;
- obj_txt["munge"]=(match(obj_["is"], ctRegex!(`verse|code`)))
+ obj_txt["munge"] = obj_[obj_key_].dup;
+ obj_txt["munge"] = (match(obj_["is"], ctRegex!(`verse|code`)))
? obj_txt["munge"]
: strip(obj_txt["munge"]);
static __gshared string[] anchor_tags_ = [];
@@ -3435,37 +3460,38 @@ template SiSUdocAbstraction() {
} else if (obj_["lev"] == "1") {
writeln("heading anchor tag missing: ", obj_txt["munge"]);
}
- x =munge.heading(obj_txt["munge"], reset_note_numbers);
+ x =munge.munge_heading(obj_txt["munge"], reset_note_numbers);
reset_note_numbers=false;
goto default;
case "para":
- x = munge.para(obj_txt["munge"]);
+ x = munge.munge_para(obj_txt["munge"]);
goto default;
case "group":
- x = munge.group(obj_txt["munge"]);
+ x = munge.munge_group(obj_txt["munge"]);
goto default;
case "block":
- x = munge.block(obj_txt["munge"]);
+ x = munge.munge_block(obj_txt["munge"]);
goto default;
case "verse":
- x = munge.verse(obj_txt["munge"]);
+ x = munge.munge_verse(obj_txt["munge"]);
goto default;
case "code":
- obj_txt["munge"]=munge.code(obj_txt["munge"]);
- break;
- case "quote":
- obj_txt["munge"]=munge.quote(obj_txt["munge"]);
+ obj_txt["munge"] = munge.munge_code(obj_txt["munge"]);
break;
case "table":
- obj_txt["munge"]=munge.table(obj_txt["munge"]);
+ obj_txt["munge"] = munge.munge_table(obj_txt["munge"]);
+ break;
+ case "quote":
+ obj_txt["munge"] = munge.munge_quote(obj_txt["munge"]);
break;
case "comment":
- obj_txt["munge"]=munge.comment(obj_txt["munge"]);
+ obj_txt["munge"] = munge.munge_comment(obj_txt["munge"]);
break;
case "doc_end_reset":
munge.initialize_note_numbers();
break;
default:
+ /+ para, heading, group, block, verse +/
obj_txt["munge"]=x[0];
obj_notes_and_links["notes_reg"] = x[1];
obj_notes_and_links["notes_star"] = x[2];
@@ -3487,7 +3513,7 @@ template SiSUdocAbstraction() {
auto _clean_heading_toc_(Toc)(
Toc heading_toc_,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(heading_toc_) == char[]));
}
auto m = matchFirst(cast(char[]) heading_toc_, rgx.heading);
@@ -3505,7 +3531,7 @@ template SiSUdocAbstraction() {
Toc the_table_of_contents_section,
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_) == string[string]));
static assert(is(typeof(dochead_make_aa) == string[string][string]));
static assert(is(typeof(segment_anchor_tag_that_object_belongs_to) == string));
@@ -3662,13 +3688,12 @@ template SiSUdocAbstraction() {
O obj_,
Ma dochead_make_aa
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(munge_) == string));
static assert(is(typeof(obj_) == string[string]));
static assert(is(typeof(dochead_make_aa) == string[string][string]));
}
if (dochead_make_aa["make"]["num_top"].length > 0) {
- // if (!(match(munge_, rgx.heading_anchor_tag))) {
static __gshared int heading_num_top_level=9;
static __gshared int heading_num_depth=2;
static __gshared int heading_num_0 = 0;
@@ -3796,7 +3821,7 @@ template SiSUdocAbstraction() {
static string _make_segment_anchor_tags_if_none_provided(M,Lv)(M munge_, Lv lev_) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(munge_) == string));
static assert(is(typeof(lev_) == string));
}
@@ -3875,7 +3900,7 @@ template SiSUdocAbstraction() {
OH _comp_obj_heading,
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_is_) == string));
static assert(is(typeof(obj_raw) == string));
static assert(is(typeof(_comp_obj_heading) == ObjGenericComposite));
@@ -3942,7 +3967,7 @@ template SiSUdocAbstraction() {
string _obj_attributes;
string _para_and_blocks(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -3970,121 +3995,121 @@ template SiSUdocAbstraction() {
}
return _obj_attributes;
}
- string _para(Ot)(Ot obj_txt_in)
+ string _heading(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"para\","
- ~ " \"is\": \"para\"";
+ ~ " \"is\": \"heading\"";
return _obj_attributes;
}
invariant() {
}
- string _heading(Ot)(Ot obj_txt_in)
+ string _para(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"para\","
- ~ " \"is\": \"heading\"";
+ ~ " \"is\": \"para\"";
return _obj_attributes;
}
invariant() {
}
- string _code(Ot)(Ot obj_txt_in)
+ string _group(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"code\"";
+ ~ " \"is\": \"group\"";
return _obj_attributes;
}
invariant() {
}
- string _group(Ot)(Ot obj_txt_in)
+ string _block(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"group\"";
+ ~ " \"is\": \"block\"";
return _obj_attributes;
}
invariant() {
}
- string _block(Ot)(Ot obj_txt_in)
+ string _verse(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"block\"";
+ ~ " \"is\": \"verse\"";
return _obj_attributes;
}
invariant() {
}
- string _verse(Ot)(Ot obj_txt_in)
+ string _code(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"verse\"";
+ ~ " \"is\": \"code\"";
return _obj_attributes;
}
invariant() {
}
- string _quote(Ot)(Ot obj_txt_in)
+ string _table(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"quote\"";
+ ~ " \"is\": \"table\"";
return _obj_attributes;
}
invariant() {
}
- string _table(Ot)(Ot obj_txt_in)
+ string _quote(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"table\"";
+ ~ " \"is\": \"quote\"";
return _obj_attributes;
}
invariant() {
}
string _comment(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -4101,7 +4126,7 @@ template SiSUdocAbstraction() {
Oi obj_is_,
OH _comp_obj_heading,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(_obj_attrib) == string));
static assert(is(typeof(obj_is_) == string));
static assert(is(typeof(_comp_obj_heading) == ObjGenericComposite));
@@ -4139,7 +4164,7 @@ template SiSUdocAbstraction() {
S segment_anchor_tag,
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(bookindex_section) == string));
static assert(is(typeof(obj_cite_number) == int));
}
@@ -4213,7 +4238,7 @@ template SiSUdocAbstraction() {
auto bookindex_report_indented(BI)(
BI bookindex_unordered_hashes
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(bookindex_unordered_hashes) == string[][string][string]));
}
auto mainkeys=
@@ -4244,7 +4269,7 @@ template SiSUdocAbstraction() {
auto bookindex_write_section(BI)(
BI bookindex_unordered_hashes
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(bookindex_unordered_hashes) == string[][string][string]));
}
auto mainkeys=bookindex_unordered_hashes.byKey.array.sort().release;
@@ -4275,7 +4300,7 @@ template SiSUdocAbstraction() {
N obj_cite_number,
B opt_action_bool,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(bookindex_unordered_hashes) == string[][string][string]));
static assert(is(typeof(obj_cite_number) == int));
static assert(is(typeof(opt_action_bool) == bool[string]));
@@ -4597,7 +4622,7 @@ template SiSUdocAbstraction() {
return ref BJ bib_arr_json
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(biblio_unsorted_incomplete) == string[]));
static assert(is(typeof(bib_arr_json) == JSONValue[]));
}
@@ -4628,7 +4653,7 @@ template SiSUdocAbstraction() {
Bi biblio_unordered,
return ref BJ bib_arr_json
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(biblio_unordered) == string[]));
static assert(is(typeof(bib_arr_json) == JSONValue[]));
}
@@ -4659,7 +4684,7 @@ template SiSUdocAbstraction() {
return biblio_unsorted_array_of_json_objects;
}
final private JSONValue[] biblio_sort(BJ)(BJ biblio_unordered) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(biblio_unordered) == JSONValue[]));
}
JSONValue[] biblio_sorted_;
@@ -4677,7 +4702,7 @@ template SiSUdocAbstraction() {
return biblio_sorted_;
}
void biblio_debug(BJ)(BJ biblio_sorted) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(biblio_sorted) == JSONValue[]));
}
debug(biblio0) {
@@ -4704,7 +4729,7 @@ template SiSUdocAbstraction() {
I is_
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(lev_markup_number) == string));
static assert(is(typeof(segment_anchor_tag) == string));
static assert(is(typeof(obj_cite_number_) == int));
@@ -4770,7 +4795,7 @@ template SiSUdocAbstraction() {
fL flag_links,
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(_text) == string));
static assert(is(typeof(lev) == string));
static assert(is(typeof(lev_markup_number) == string));
@@ -4949,7 +4974,7 @@ template SiSUdocAbstraction() {
O an_object,
Lv lv
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(lv) == int[string]));
}
@@ -5125,7 +5150,7 @@ template SiSUdocAbstraction() {
}
}
auto assertions_flag_types_block_status_none_or_closed(T)(T type) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(type) == int[string]));
}
assert(