aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2016-04-24 22:50:48 -0400
committerRalph Amissah <ralph@amissah.com>2016-04-25 22:59:38 -0400
commitd90d65ba5b5c2c0854a328a0560b207453389477 (patch)
treead14a2553e5ea0c4ecd6fbe4133fa63fa47ae4f3
parentstep2 (diff)
step3
-rw-r--r--lib/sdp/ao_abstract_doc_source.d75
-rw-r--r--lib/sdp/ao_object_setter.d138
-rw-r--r--lib/sdp/ao_output_debugs.d60
-rw-r--r--makefile2
-rw-r--r--maker.org6
-rw-r--r--org/ao_abstract_doc_source.org219
-rw-r--r--org/ao_output_debugs.org60
-rw-r--r--org/sdp.org7
8 files changed, 304 insertions, 263 deletions
diff --git a/lib/sdp/ao_abstract_doc_source.d b/lib/sdp/ao_abstract_doc_source.d
index 74d1baa..00cff5c 100644
--- a/lib/sdp/ao_abstract_doc_source.d
+++ b/lib/sdp/ao_abstract_doc_source.d
@@ -25,7 +25,8 @@ template SiSUdocAbstraction() {
/+ initialize +/
auto rgx = Rgx();
- string[string][] contents_the_objects;
+ ObjComposite[] contents_the_objects;
+
string[string] an_object, processing;
auto set_abstract_object = ObjectAbstractSet();
auto set_header = HeaderDocMetadataMakeJson();
@@ -212,7 +213,8 @@ template SiSUdocAbstraction() {
}
scope(failure) {
stderr.writefln(
- "%s:%s failed here:\n line: %s",
+ "%s\n%s\n%s:%s failed here:\n line: %s",
+ __MODULE__, __FUNCTION__,
__FILE__, __LINE__,
line,
);
@@ -458,12 +460,11 @@ template SiSUdocAbstraction() {
++heading_pointer;
contents_the_objects ~=
set_abstract_object.contents_heading(
- type["obj_cite_number_status"],
an_object["substantive"],
an_object["attrib"],
- obj_cite_number, an_object["lev"],
- an_object["lev_markup_number"],
- an_object["lev_collapsed_number"]
+ obj_cite_number,
+ to!int(an_object["lev_markup_number"]),
+ to!int(an_object["lev_collapsed_number"])
);
// track previous heading and make assertions
debug(objectrelated1) { // check
@@ -534,10 +535,10 @@ template SiSUdocAbstraction() {
} // close else for line empty
} // close else for not the above
} // close after non code, other blocks or regular text
- if (((contents_the_objects[$-1]["is"] == "para")
- || (contents_the_objects[$-1]["is"] == "heading"))
+ if (((contents_the_objects[$-1].is_a == "para")
+ || (contents_the_objects[$-1].is_a == "heading"))
&& (counter-1 > previous_count)) {
- if (match(contents_the_objects[$-1]["obj"],
+ if (match(contents_the_objects[$-1].object,
rgx.inline_notes_delimiter_al_regular_number_note)) {
// endnotes/ footnotes for
// doc objects other than paragraphs & headings
@@ -1408,7 +1409,7 @@ template SiSUdocAbstraction() {
auto block_flag_line_empty(
char[] line,
ref string[string] an_object,
- ref string[string][] contents_the_objects,
+ ref ObjComposite[] contents_the_objects,
ref string[][string][string] bookindex_unordered_hashes,
ref int obj_cite_number,
ref string node,
@@ -2948,7 +2949,6 @@ template SiSUdocAbstraction() {
}
}
struct BookIndexReportSection {
- mixin ObjectSetter;
int mkn, skn;
auto rgx = Rgx();
auto bookindex_write_section(
@@ -2982,7 +2982,6 @@ template SiSUdocAbstraction() {
int obj_cite_number
) {
string type;
- int type_heading;
string lev, lev_markup_number, lev_collapsed_number;
string attrib;
string[string] indent;
@@ -2990,43 +2989,35 @@ template SiSUdocAbstraction() {
auto mainkeys =
bookindex_unordered_hashes.byKey.array.sort().release;
string bi_tmp;
- string[string][] bookindex_section;
+ ObjComposite[] bookindex_section;
// writeln(mainkeys.length);
// B~ Book Index
- type_heading=1;
- bi_tmp = "Book Index";
attrib="";
lev="B";
lev_markup_number="1";
lev_collapsed_number="1";
bookindex_section ~=
set_abstract_object.contents_heading(
- type_heading,
- bi_tmp,
+ "Book Index",
attrib,
obj_cite_number,
- lev,
- lev_markup_number,
- lev_collapsed_number
+ to!int(lev_markup_number),
+ to!int(lev_collapsed_number)
);
++obj_cite_number;
++mkn;
// 1~ Index
- type_heading=1;
- bi_tmp = "Index";
attrib="";
lev="1";
lev_markup_number="4";
lev_collapsed_number="2";
bookindex_section ~=
set_abstract_object.contents_heading(
- type_heading,
- bi_tmp,
+ "Index",
attrib,
obj_cite_number,
- lev,
- lev_markup_number,
- lev_collapsed_number
+ to!int(lev_markup_number),
+ to!int(lev_collapsed_number)
);
++obj_cite_number;
++mkn;
@@ -3115,31 +3106,30 @@ template SiSUdocAbstraction() {
}
}
struct NotesSection {
- mixin ObjectSetter;
string object_notes;
long previous_count;
int mkn;
auto rgx = Rgx();
private auto gather_notes_for_endnote_section(
- string[string][] contents_am,
- long counter
+ ObjComposite[] contents_am,
+ ulong counter
)
in {
// endnotes/ footnotes for
// doc objects other than paragraphs & headings
// various forms of grouped text
- assert((contents_am[counter]["is"] == "para")
- || (contents_am[counter]["is"] == "heading"));
+ assert((contents_am[counter].is_a == "para")
+ || (contents_am[counter].is_a == "heading"));
assert(counter > previous_count);
previous_count=counter;
assert(
- match(contents_am[counter]["obj"],
+ match(contents_am[counter].object,
rgx.inline_notes_delimiter_al_regular_number_note)
);
}
body {
foreach(m;
- matchAll(contents_am[counter]["obj"],
+ matchAll(contents_am[counter].object,
rgx.inline_notes_delimiter_al_regular_number_note)) {
debug(endnotes_build) {
writeln(
@@ -3168,47 +3158,40 @@ template SiSUdocAbstraction() {
}
body {
auto set_abstract_object = ObjectAbstractSet();
- string[string][] endnotes_section;
+ ObjComposite[] endnotes_section;
auto endnotes_ = gathered_notes();
// auto endnotes_ = (split(object_notes, rgx.break_string))[0..$-1];
string type;
- int type_heading;
string lev, lev_markup_number, lev_collapsed_number;
string attrib;
string[string] indent;
// B~ Endnotes
- type_heading=1;
attrib="";
lev="B";
lev_markup_number="1";
lev_collapsed_number="1";
endnotes_section ~=
set_abstract_object.contents_heading(
- type_heading,
"Endnotes",
attrib,
obj_cite_number,
- lev,
- lev_markup_number,
- lev_collapsed_number
+ to!int(lev_markup_number),
+ to!int(lev_collapsed_number)
);
++obj_cite_number;
++mkn;
// 1~ Endnotes
- type_heading=1;
attrib="";
lev="1";
lev_markup_number="4";
lev_collapsed_number="2";
endnotes_section ~=
set_abstract_object.contents_heading(
- type_heading,
"Endnotes",
attrib,
obj_cite_number,
- lev,
- lev_markup_number,
- lev_collapsed_number
+ to!int(lev_markup_number),
+ to!int(lev_collapsed_number)
);
++obj_cite_number;
++mkn;
diff --git a/lib/sdp/ao_object_setter.d b/lib/sdp/ao_object_setter.d
index a44aeb0..4492e8a 100644
--- a/lib/sdp/ao_object_setter.d
+++ b/lib/sdp/ao_object_setter.d
@@ -3,42 +3,74 @@
ao_object_setter.d
+/
template ObjectSetter() {
+ /+ structs +/
+ struct HeadingAttrib {
+ int lev = 9; // use of enum should make this redundant, remove
+ int lev_markup_number = 9;
+ int lev_collapsed_number = 9;
+ }
+ struct ParaAttrib {
+ int indent_first = 0;
+ int indent_second = 0;
+ bool bullet = false;
+ }
+ struct BlockAttrib {
+ }
+ struct Comment {
+ // no .attrib and no .obj_cite_number
+ }
+ struct Node {
+ int ocn = 0;
+ int parent_lev = 0;
+ int parent_ocn = 0;
+ string node = "";
+ }
+ struct ObjComposite {
+ // size_t id;
+ string use = "";
+ string of = "";
+ string is_a = "";
+ string object = "";
+ string obj_cite_number = ""; // not used for calculations? output only? else int
+ HeadingAttrib heading_attrib;
+ ParaAttrib para_attrib;
+ BlockAttrib block_attrib;
+ Node node_structure;
+ }
+ struct ObjCompositeArr {
+ ObjComposite[] oca;
+ }
+
+ /+ structs setter +/
struct ObjectAbstractSet {
import std.conv : to;
- string[string] contents_comment(in string object) {
- string[string] object_set;
- object_set["use"] = "comment";
- object_set["of"] = "comment";
- object_set["is"] = "comment";
- object_set["obj"] = object;
- // object_set["attrib"] = attrib;
+ auto contents_comment(in string object) {
+ ObjComposite object_set;
+ object_set.use = "comment";
+ object_set.of = "comment";
+ object_set.is_a = "comment";
+ object_set.object = object;
return object_set;
}
- string[string] contents_heading(
- in int type,
+ auto contents_heading(
in string object,
in string attrib,
in int obj_cite_number,
- in string lev,
- in string lev_markup_number,
- in string lev_collapsed_number,
+ in int lev_markup_number,
+ in int lev_collapsed_number,
) {
- string[string] object_set;
- object_set["use"] = "content";
- object_set["of"] = "para";
- object_set["is"] = "heading";
- object_set["type"] = to!string(type);
- // object_set["is"] = type; // "heading" "heading_dummy"
- object_set["obj"] = object;
- object_set["obj_cite_number"] = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
- object_set["lev"] = to!string(lev);
- object_set["lev_markup_number"] = to!string(lev_markup_number);
- object_set["lev_collapsed_number"] = to!string(lev_collapsed_number);
- object_set["attrib"] = attrib;
- // object_set["children"] = children;
+ ObjComposite object_set;
+ object_set.use = "content";
+ object_set.of = "para";
+ object_set.is_a = "heading";
+ object_set.object = object;
+ object_set.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ object_set.heading_attrib.lev_markup_number = lev_markup_number;
+ object_set.heading_attrib.lev_collapsed_number = lev_collapsed_number;
+ // object_set.node_structure.node = node;
return object_set;
}
- string[string] contents_para(
+ auto contents_para(
in string is_a,
in string object,
in string attrib,
@@ -46,48 +78,46 @@ template ObjectSetter() {
in string[string] indent,
in bool bullet
) {
- string[string] object_set;
- object_set["use"] = "content";
- object_set["of"] = "para";
- object_set["is"] = is_a;
- // object_set["status"] = status;
- object_set["obj"] = object;
- object_set["obj_cite_number"] = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
- object_set["indent_first"] = indent["first"];
- object_set["indent_second"] = indent["second"];
- object_set["bullet"] = to!string(bullet);
- object_set["attrib"] = attrib;
+ ObjComposite object_set;
+ object_set.use = "content";
+ object_set.of = "para";
+ object_set.is_a = "para";
+ object_set.object = object;
+ object_set.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ object_set.para_attrib.indent_first = 0; // indent["first"];
+ object_set.para_attrib.indent_second = 0; // indent["second"];
+ object_set.para_attrib.bullet = false;
+ // object_set.node_structure.node = node;
return object_set;
}
- string[string] contents_block(
+ auto contents_block(
in string type,
in string object,
in string attrib,
in int obj_cite_number
) {
- string[string] object_set;
- object_set["use"] = "content";
- object_set["of"] = "block";
- object_set["is"] = type;
- object_set["obj"] = object;
- object_set["obj_cite_number"] = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
- object_set["attrib"] = attrib;
+ ObjComposite object_set;
+ object_set.use = "content";
+ object_set.of = "block";
+ object_set.is_a = type;
+ object_set.object = object;
+ object_set.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ // object_set.node_structure.node = node;
return object_set;
}
- string[string] contents_block_obj_cite_number_string(
+ auto contents_block_obj_cite_number_string(
in string type,
in string object,
in string obj_cite_number,
in string node
) {
- string[string] object_set;
- object_set["use"] = "content";
- object_set["of"] = "block";
- object_set["is"] = type;
- object_set["obj"] = object;
- object_set["obj_cite_number"] = obj_cite_number;
- object_set["node"] = node;
- // object_set["attrib"] = "";
+ ObjComposite object_set;
+ object_set.use = "content";
+ object_set.of = "block";
+ object_set.is_a = type;
+ object_set.object = object;
+ object_set.obj_cite_number = obj_cite_number;
+ object_set.node_structure.node = node;
return object_set;
}
}
diff --git a/lib/sdp/ao_output_debugs.d b/lib/sdp/ao_output_debugs.d
index 020474e..9c66312 100644
--- a/lib/sdp/ao_output_debugs.d
+++ b/lib/sdp/ao_output_debugs.d
@@ -4,14 +4,18 @@
+/
template SiSUoutputDebugs() {
struct SDPoutputDebugs {
- auto abstract_doc_source_debugs(
- string[string][] contents,
- JSONValue[string] docmake,
- JSONValue[string] dochead,
+ auto tst_debugs(S)(auto ref const S s) {
+ mixin RgxInit;
+ mixin ScreenTxtColors;
+ auto rgx = Rgx();
+ }
+ auto abstract_doc_source_debugs(S)(auto ref const S contents,
+ JSONValue[string] docmake,
+ JSONValue[string] dochead,
string[][string][string] bookindex_unordered_hashes,
- JSONValue[] biblio,
- string fn_src,
- bool[string] opt_action_bool
+ JSONValue[] biblio,
+ string fn_src,
+ bool[string] opt_action_bool
) {
mixin RgxInit;
mixin ScreenTxtColors;
@@ -23,15 +27,15 @@ template SiSUoutputDebugs() {
__LINE__,
);
foreach (obj; contents) {
- if (obj["use"] == "content") {
- if (obj["is"] == "heading") {
+ if (obj.use == "content") {
+ if (obj.is_a == "heading") {
writefln(
"%s%s node: %s heading: %s %s",
scr_txt_marker["cyan"],
- obj["obj_cite_number"],
- obj["node"],
- obj["lev_markup_number"],
- obj["obj"],
+ obj.obj_cite_number,
+ obj.node,
+ obj.lev_markup_number,
+ obj.object,
);
} else {
}
@@ -46,12 +50,12 @@ template SiSUoutputDebugs() {
__LINE__,
);
foreach (obj; contents) {
- if (obj["use"] == "content") {
+ if (obj.use == "content") {
writefln(
"[%s][%s]\n%s",
- obj["obj_cite_number"],
- obj["is"],
- obj["obj"]
+ obj.obj_cite_number,
+ obj.is_a,
+ obj.object
);
}
}
@@ -64,14 +68,14 @@ template SiSUoutputDebugs() {
__LINE__,
);
foreach (obj; contents) {
- if (obj["use"] == "content") {
+ if (obj.use == "content") {
writefln(
"%s* [%s][%s] %s%s",
scr_txt_color["green"],
- obj["obj_cite_number"],
- obj["is"],
+ obj.obj_cite_number,
+ obj.is_a,
scr_txt_color["off"],
- obj["obj"]
+ obj.object
);
}
}
@@ -240,9 +244,9 @@ template SiSUoutputDebugs() {
];
debug(checkdoc) {
foreach (obj; contents) {
- if (obj["use"] == "content") {
- if (!empty(obj["obj_cite_number"])) {
- check["last_obj_cite_number"] = obj["obj_cite_number"];
+ if (obj.use == "content") {
+ if (!empty(obj.obj_cite_number)) {
+ check["last_obj_cite_number"] = obj.obj_cite_number;
}
}
}
@@ -255,14 +259,14 @@ template SiSUoutputDebugs() {
__LINE__,
);
foreach (obj; contents) {
- if (obj["is"] == "heading") {
+ if (obj.is_a == "heading") {
writefln(
"%s%s~ [%s] %s",
scr_txt_marker["yellow"],
- obj["lev"],
- obj["obj_cite_number"],
+ obj.heading_attrib.lev,
+ obj.obj_cite_number,
// "[", obj["is"], "] ",
- obj["obj"]
+ obj.object
);
}
}
diff --git a/makefile b/makefile
index a066fba..430ca1a 100644
--- a/makefile
+++ b/makefile
@@ -15,7 +15,7 @@ GDC_FLAG_BINOF=-o
RDMD=rdmd
RDMD_FLAGS=--build-only --compiler=
# SET_D_COMPILER=(one of: DMD LDC or GDC):
-SET_D_COMPILER=LDC
+SET_D_COMPILER=DMD
SET_DC_FLAGS_DEBUG_EXTRA=-debug=dumpdoc
DC=$($(SET_D_COMPILER))
DC_FLAGS=$($(shell echo $(SET_D_COMPILER)_FLAGS))
diff --git a/maker.org b/maker.org
index 74b8291..b2b7ba0 100644
--- a/maker.org
+++ b/maker.org
@@ -61,10 +61,10 @@ RDMD_FLAGS=--build-only --compiler=
[[http://dlang.org/download.html][D Compilers download]]
Set D_COMPILER one of DMD, LDC or GDC e.g.: SET_D_COMPILER=DMD
-***** TODO set compiler
+***** TODO [#A] set compiler
#+BEGIN_SRC makefile :tangle makefile
# SET_D_COMPILER=(one of: DMD LDC or GDC):
-SET_D_COMPILER=LDC
+SET_D_COMPILER=DMD
#+END_SRC
***** +note+
@@ -78,7 +78,7 @@ Set debug flags using DMD standard flag -debug= e.g.:
SET_DC_FLAGS_DEBUG_EXTRA=-debug=headings -debug=bookindex
SET_DC_FLAGS_DEBUG_EXTRA=-debug=headings -debug=footnotes -debug=endnotes
-***** TODO set debug flags
+***** TODO [#A] set debug flags
#+BEGIN_SRC makefile :tangle makefile
SET_DC_FLAGS_DEBUG_EXTRA=-debug=dumpdoc
#+END_SRC
diff --git a/org/ao_abstract_doc_source.org b/org/ao_abstract_doc_source.org
index cf0efd2..cc4fd47 100644
--- a/org/ao_abstract_doc_source.org
+++ b/org/ao_abstract_doc_source.org
@@ -49,7 +49,8 @@ mixin InternalMarkup;
/+ initialize +/
auto rgx = Rgx();
-string[string][] contents_the_objects;
+ObjComposite[] contents_the_objects;
+
string[string] an_object, processing;
auto set_abstract_object = ObjectAbstractSet();
auto set_header = HeaderDocMetadataMakeJson();
@@ -235,7 +236,8 @@ scope(exit) {
}
scope(failure) {
stderr.writefln(
- "%s:%s failed here:\n line: %s",
+ "%s\n%s\n%s:%s failed here:\n line: %s",
+ __MODULE__, __FUNCTION__,
__FILE__, __LINE__,
line,
);
@@ -638,12 +640,11 @@ if ((type["header_make"] == State.on)
++heading_pointer;
contents_the_objects ~=
set_abstract_object.contents_heading(
- type["obj_cite_number_status"],
an_object["substantive"],
an_object["attrib"],
- obj_cite_number, an_object["lev"],
- an_object["lev_markup_number"],
- an_object["lev_collapsed_number"]
+ obj_cite_number,
+ to!int(an_object["lev_markup_number"]),
+ to!int(an_object["lev_collapsed_number"])
);
// track previous heading and make assertions
debug(objectrelated1) { // check
@@ -732,10 +733,10 @@ if ((type["header_make"] == State.on)
#+name: abs_in_loop_body_01
#+BEGIN_SRC d
-if (((contents_the_objects[$-1]["is"] == "para")
-|| (contents_the_objects[$-1]["is"] == "heading"))
+if (((contents_the_objects[$-1].is_a == "para")
+|| (contents_the_objects[$-1].is_a == "heading"))
&& (counter-1 > previous_count)) {
- if (match(contents_the_objects[$-1]["obj"],
+ if (match(contents_the_objects[$-1].object,
rgx.inline_notes_delimiter_al_regular_number_note)) {
// endnotes/ footnotes for
// doc objects other than paragraphs & headings
@@ -1805,7 +1806,7 @@ auto table_block(char[] line, ref string[string] an_object, ref int[string] type
auto block_flag_line_empty(
char[] line,
ref string[string] an_object,
- ref string[string][] contents_the_objects,
+ ref ObjComposite[] contents_the_objects,
ref string[][string][string] bookindex_unordered_hashes,
ref int obj_cite_number,
ref string node,
@@ -3449,7 +3450,6 @@ struct BookIndexReportIndent {
#+name: ao_emitters
#+BEGIN_SRC d
struct BookIndexReportSection {
- mixin ObjectSetter;
int mkn, skn;
auto rgx = Rgx();
auto bookindex_write_section(
@@ -3483,7 +3483,6 @@ struct BookIndexReportSection {
int obj_cite_number
) {
string type;
- int type_heading;
string lev, lev_markup_number, lev_collapsed_number;
string attrib;
string[string] indent;
@@ -3491,43 +3490,35 @@ struct BookIndexReportSection {
auto mainkeys =
bookindex_unordered_hashes.byKey.array.sort().release;
string bi_tmp;
- string[string][] bookindex_section;
+ ObjComposite[] bookindex_section;
// writeln(mainkeys.length);
// B~ Book Index
- type_heading=1;
- bi_tmp = "Book Index";
attrib="";
lev="B";
lev_markup_number="1";
lev_collapsed_number="1";
bookindex_section ~=
set_abstract_object.contents_heading(
- type_heading,
- bi_tmp,
+ "Book Index",
attrib,
obj_cite_number,
- lev,
- lev_markup_number,
- lev_collapsed_number
+ to!int(lev_markup_number),
+ to!int(lev_collapsed_number)
);
++obj_cite_number;
++mkn;
// 1~ Index
- type_heading=1;
- bi_tmp = "Index";
attrib="";
lev="1";
lev_markup_number="4";
lev_collapsed_number="2";
bookindex_section ~=
set_abstract_object.contents_heading(
- type_heading,
- bi_tmp,
+ "Index",
attrib,
obj_cite_number,
- lev,
- lev_markup_number,
- lev_collapsed_number
+ to!int(lev_markup_number),
+ to!int(lev_collapsed_number)
);
++obj_cite_number;
++mkn;
@@ -3622,31 +3613,30 @@ struct BookIndexReportSection {
#+name: ao_emitters
#+BEGIN_SRC d
struct NotesSection {
- mixin ObjectSetter;
string object_notes;
long previous_count;
int mkn;
auto rgx = Rgx();
private auto gather_notes_for_endnote_section(
- string[string][] contents_am,
- long counter
+ ObjComposite[] contents_am,
+ ulong counter
)
in {
// endnotes/ footnotes for
// doc objects other than paragraphs & headings
// various forms of grouped text
- assert((contents_am[counter]["is"] == "para")
- || (contents_am[counter]["is"] == "heading"));
+ assert((contents_am[counter].is_a == "para")
+ || (contents_am[counter].is_a == "heading"));
assert(counter > previous_count);
previous_count=counter;
assert(
- match(contents_am[counter]["obj"],
+ match(contents_am[counter].object,
rgx.inline_notes_delimiter_al_regular_number_note)
);
}
body {
foreach(m;
- matchAll(contents_am[counter]["obj"],
+ matchAll(contents_am[counter].object,
rgx.inline_notes_delimiter_al_regular_number_note)) {
debug(endnotes_build) {
writeln(
@@ -3675,47 +3665,40 @@ struct NotesSection {
}
body {
auto set_abstract_object = ObjectAbstractSet();
- string[string][] endnotes_section;
+ ObjComposite[] endnotes_section;
auto endnotes_ = gathered_notes();
// auto endnotes_ = (split(object_notes, rgx.break_string))[0..$-1];
string type;
- int type_heading;
string lev, lev_markup_number, lev_collapsed_number;
string attrib;
string[string] indent;
// B~ Endnotes
- type_heading=1;
attrib="";
lev="B";
lev_markup_number="1";
lev_collapsed_number="1";
endnotes_section ~=
set_abstract_object.contents_heading(
- type_heading,
"Endnotes",
attrib,
obj_cite_number,
- lev,
- lev_markup_number,
- lev_collapsed_number
+ to!int(lev_markup_number),
+ to!int(lev_collapsed_number)
);
++obj_cite_number;
++mkn;
// 1~ Endnotes
- type_heading=1;
attrib="";
lev="1";
lev_markup_number="4";
lev_collapsed_number="2";
endnotes_section ~=
set_abstract_object.contents_heading(
- type_heading,
"Endnotes",
attrib,
obj_cite_number,
- lev,
- lev_markup_number,
- lev_collapsed_number
+ to!int(lev_markup_number),
+ to!int(lev_collapsed_number)
);
++obj_cite_number;
++mkn;
@@ -4293,19 +4276,59 @@ auto assertions_flag_types_block_status_none_or_closed(int[string] type) {
* object setter :abstract:object:
set abstracted objects for downstream processing
+** structs :struct:
+#+name: ao_structs
+#+BEGIN_SRC d
+struct HeadingAttrib {
+ int lev = 9; // use of enum should make this redundant, remove
+ int lev_markup_number = 9;
+ int lev_collapsed_number = 9;
+}
+struct ParaAttrib {
+ int indent_first = 0;
+ int indent_second = 0;
+ bool bullet = false;
+}
+struct BlockAttrib {
+}
+struct Comment {
+ // no .attrib and no .obj_cite_number
+}
+struct Node {
+ int ocn = 0;
+ int parent_lev = 0;
+ int parent_ocn = 0;
+ string node = "";
+}
+struct ObjComposite {
+ // size_t id;
+ string use = "";
+ string of = "";
+ string is_a = "";
+ string object = "";
+ string obj_cite_number = ""; // not used for calculations? output only? else int
+ HeadingAttrib heading_attrib;
+ ParaAttrib para_attrib;
+ BlockAttrib block_attrib;
+ Node node_structure;
+}
+struct ObjCompositeArr {
+ ObjComposite[] oca;
+}
+#+END_SRC
+
** object setter :set:
*** comment :comment:
#+name: ao_object_setter
#+BEGIN_SRC d
-string[string] contents_comment(in string object) {
- string[string] object_set;
- object_set["use"] = "comment";
- object_set["of"] = "comment";
- object_set["is"] = "comment";
- object_set["obj"] = object;
- // object_set["attrib"] = attrib;
+auto contents_comment(in string object) {
+ ObjComposite object_set;
+ object_set.use = "comment";
+ object_set.of = "comment";
+ object_set.is_a = "comment";
+ object_set.object = object;
return object_set;
}
#+END_SRC
@@ -4314,28 +4337,22 @@ string[string] contents_comment(in string object) {
#+name: ao_object_setter
#+BEGIN_SRC d
-string[string] contents_heading(
- in int type,
+auto contents_heading(
in string object,
in string attrib,
in int obj_cite_number,
- in string lev,
- in string lev_markup_number,
- in string lev_collapsed_number,
+ in int lev_markup_number,
+ in int lev_collapsed_number,
) {
- string[string] object_set;
- object_set["use"] = "content";
- object_set["of"] = "para";
- object_set["is"] = "heading";
- object_set["type"] = to!string(type);
- // object_set["is"] = type; // "heading" "heading_dummy"
- object_set["obj"] = object;
- object_set["obj_cite_number"] = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
- object_set["lev"] = to!string(lev);
- object_set["lev_markup_number"] = to!string(lev_markup_number);
- object_set["lev_collapsed_number"] = to!string(lev_collapsed_number);
- object_set["attrib"] = attrib;
- // object_set["children"] = children;
+ ObjComposite object_set;
+ object_set.use = "content";
+ object_set.of = "para";
+ object_set.is_a = "heading";
+ object_set.object = object;
+ object_set.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ object_set.heading_attrib.lev_markup_number = lev_markup_number;
+ object_set.heading_attrib.lev_collapsed_number = lev_collapsed_number;
+ // object_set.node_structure.node = node;
return object_set;
}
#+END_SRC
@@ -4344,7 +4361,7 @@ string[string] contents_heading(
#+name: ao_object_setter
#+BEGIN_SRC d
-string[string] contents_para(
+auto contents_para(
in string is_a,
in string object,
in string attrib,
@@ -4352,17 +4369,16 @@ string[string] contents_para(
in string[string] indent,
in bool bullet
) {
- string[string] object_set;
- object_set["use"] = "content";
- object_set["of"] = "para";
- object_set["is"] = is_a;
- // object_set["status"] = status;
- object_set["obj"] = object;
- object_set["obj_cite_number"] = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
- object_set["indent_first"] = indent["first"];
- object_set["indent_second"] = indent["second"];
- object_set["bullet"] = to!string(bullet);
- object_set["attrib"] = attrib;
+ ObjComposite object_set;
+ object_set.use = "content";
+ object_set.of = "para";
+ object_set.is_a = "para";
+ object_set.object = object;
+ object_set.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ object_set.para_attrib.indent_first = 0; // indent["first"];
+ object_set.para_attrib.indent_second = 0; // indent["second"];
+ object_set.para_attrib.bullet = false;
+ // object_set.node_structure.node = node;
return object_set;
}
#+END_SRC
@@ -4371,19 +4387,19 @@ string[string] contents_para(
#+name: ao_object_setter
#+BEGIN_SRC d
-string[string] contents_block(
+auto contents_block(
in string type,
in string object,
in string attrib,
in int obj_cite_number
) {
- string[string] object_set;
- object_set["use"] = "content";
- object_set["of"] = "block";
- object_set["is"] = type;
- object_set["obj"] = object;
- object_set["obj_cite_number"] = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
- object_set["attrib"] = attrib;
+ ObjComposite object_set;
+ object_set.use = "content";
+ object_set.of = "block";
+ object_set.is_a = type;
+ object_set.object = object;
+ object_set.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ // object_set.node_structure.node = node;
return object_set;
}
#+END_SRC
@@ -4392,20 +4408,19 @@ string[string] contents_block(
#+name: ao_object_setter
#+BEGIN_SRC d
-string[string] contents_block_obj_cite_number_string(
+auto contents_block_obj_cite_number_string(
in string type,
in string object,
in string obj_cite_number,
in string node
) {
- string[string] object_set;
- object_set["use"] = "content";
- object_set["of"] = "block";
- object_set["is"] = type;
- object_set["obj"] = object;
- object_set["obj_cite_number"] = obj_cite_number;
- object_set["node"] = node;
- // object_set["attrib"] = "";
+ ObjComposite object_set;
+ object_set.use = "content";
+ object_set.of = "block";
+ object_set.is_a = type;
+ object_set.object = object;
+ object_set.obj_cite_number = obj_cite_number;
+ object_set.node_structure.node = node;
return object_set;
}
#+END_SRC
@@ -4482,6 +4497,10 @@ template SiSUdocAbstraction() {
ao_object_setter.d
+/
template ObjectSetter() {
+ /+ structs +/
+ <<ao_structs>>
+
+ /+ structs setter +/
struct ObjectAbstractSet {
import std.conv : to;
<<ao_object_setter>>
diff --git a/org/ao_output_debugs.org b/org/ao_output_debugs.org
index c5f4482..72ca80e 100644
--- a/org/ao_output_debugs.org
+++ b/org/ao_output_debugs.org
@@ -24,15 +24,15 @@ debug(parent) {
__LINE__,
);
foreach (obj; contents) {
- if (obj["use"] == "content") {
- if (obj["is"] == "heading") {
+ if (obj.use == "content") {
+ if (obj.is_a == "heading") {
writefln(
"%s%s node: %s heading: %s %s",
scr_txt_marker["cyan"],
- obj["obj_cite_number"],
- obj["node"],
- obj["lev_markup_number"],
- obj["obj"],
+ obj.obj_cite_number,
+ obj.node,
+ obj.lev_markup_number,
+ obj.object,
);
} else {
}
@@ -51,12 +51,12 @@ debug(dumpdoc) {
__LINE__,
);
foreach (obj; contents) {
- if (obj["use"] == "content") {
+ if (obj.use == "content") {
writefln(
"[%s][%s]\n%s",
- obj["obj_cite_number"],
- obj["is"],
- obj["obj"]
+ obj.obj_cite_number,
+ obj.is_a,
+ obj.object
);
}
}
@@ -73,14 +73,14 @@ debug(objects) {
__LINE__,
);
foreach (obj; contents) {
- if (obj["use"] == "content") {
+ if (obj.use == "content") {
writefln(
"%s* [%s][%s] %s%s",
scr_txt_color["green"],
- obj["obj_cite_number"],
- obj["is"],
+ obj.obj_cite_number,
+ obj.is_a,
scr_txt_color["off"],
- obj["obj"]
+ obj.object
);
}
}
@@ -269,9 +269,9 @@ debug(summary) {
#+BEGIN_SRC d
debug(checkdoc) {
foreach (obj; contents) {
- if (obj["use"] == "content") {
- if (!empty(obj["obj_cite_number"])) {
- check["last_obj_cite_number"] = obj["obj_cite_number"];
+ if (obj.use == "content") {
+ if (!empty(obj.obj_cite_number)) {
+ check["last_obj_cite_number"] = obj.obj_cite_number;
}
}
}
@@ -288,14 +288,14 @@ debug(headings) {
__LINE__,
);
foreach (obj; contents) {
- if (obj["is"] == "heading") {
+ if (obj.is_a == "heading") {
writefln(
"%s%s~ [%s] %s",
scr_txt_marker["yellow"],
- obj["lev"],
- obj["obj_cite_number"],
+ obj.heading_attrib.lev,
+ obj.obj_cite_number,
// "[", obj["is"], "] ",
- obj["obj"]
+ obj.object
);
}
}
@@ -456,14 +456,18 @@ debug(checkdoc) {
+/
template SiSUoutputDebugs() {
struct SDPoutputDebugs {
- auto abstract_doc_source_debugs(
- string[string][] contents,
- JSONValue[string] docmake,
- JSONValue[string] dochead,
+ auto tst_debugs(S)(auto ref const S s) {
+ mixin RgxInit;
+ mixin ScreenTxtColors;
+ auto rgx = Rgx();
+ }
+ auto abstract_doc_source_debugs(S)(auto ref const S contents,
+ JSONValue[string] docmake,
+ JSONValue[string] dochead,
string[][string][string] bookindex_unordered_hashes,
- JSONValue[] biblio,
- string fn_src,
- bool[string] opt_action_bool
+ JSONValue[] biblio,
+ string fn_src,
+ bool[string] opt_action_bool
) {
mixin RgxInit;
mixin ScreenTxtColors;
diff --git a/org/sdp.org b/org/sdp.org
index e218b5c..a48fbfa 100644
--- a/org/sdp.org
+++ b/org/sdp.org
@@ -39,7 +39,7 @@ enum ver = Version(1, 0, 0);
[[./ao_output_debugs.org][ao_output_debugs]]
[[./ao_read_source_files.org][ao_read_source_files]]
-**** std :import:std:
+**** std :import:std:
#+NAME: sdp_imports
#+BEGIN_SRC d
/+ sdp sisu document parser +/
@@ -274,7 +274,8 @@ auto doc_ao_biblio = t[4];
// destroy(t);
#+END_SRC
-**** debug document parts (checkdoc) :debug:
+**** TODO debug :debug:
+***** [#A] debug document parts (checkdoc) :checkdoc:
#+NAME: sdp_each_file_do
#+BEGIN_SRC d
/+ ↓ document parts +/
@@ -424,7 +425,7 @@ void main(string[] args) {
| - metadata | | | |
| - make instructions | | | |
|---------------------+------------------------------------------+------------------------+--------|
-| table of contents | markup of headings | | output |
+| table of contents | markup of headings | (regular content) | output |
|---------------------+------------------------------------------+------------------------+--------|
| substantive content | sisu /content markup/ | markup | output |
| | headings (providing document structure), | (regular content) | |