aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sdp/ao_scan_inserts.d
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2016-04-24 22:08:24 -0400
committerRalph Amissah <ralph@amissah.com>2016-04-24 22:08:24 -0400
commited302d1be74d2b4e69ee4b6e3834637ed531eaea (patch)
tree0f605c3756788d2fda6fe0782a7a472172a285b9 /lib/sdp/ao_scan_inserts.d
parentbase ... tag (diff)
Diffstat (limited to 'lib/sdp/ao_scan_inserts.d')
-rw-r--r--lib/sdp/ao_scan_inserts.d124
1 files changed, 47 insertions, 77 deletions
diff --git a/lib/sdp/ao_scan_inserts.d b/lib/sdp/ao_scan_inserts.d
index 54abb8f..f70b2e7 100644
--- a/lib/sdp/ao_scan_inserts.d
+++ b/lib/sdp/ao_scan_inserts.d
@@ -3,20 +3,16 @@
ao_inserts.d
+/
mixin template SiSUdocInserts() {
- class Inserts {
+ private:
+ struct Inserts {
auto scan_subdoc_source(
- char[][] markup_sourcefile_insert_content, string fn_src, int add
+ char[][] markup_sourcefile_insert_content,
+ string fn_src
) {
- char[][100000] cont_arbitrary_max_length_set_;
- auto ft0 = flag_type.dup;
+ char[][] contents_insert;
auto ft1 = flag_type.dup;
- string[string] processing;
- uint[string] line_occur;
- auto obj_im = new ObjInlineMarkup();
- auto obj_att = new ObjAttrib();
- int[string] counter; counter["add"]=0;
mixin ScreenTxtColors;
- auto rgx = new Rgx();
+ auto rgx = Rgx();
int tell_l(string color, in char[] line) {
writeln(scr_txt_marker[color], line);
return 0;
@@ -30,44 +26,36 @@ mixin template SiSUdocInserts() {
if (auto m = match(line, rgx.block_curly_code_close)) {
ft1["curly_code"] = 0;
}
- cont_arbitrary_max_length_set_[counter["add"]] = line;
- ++counter["add"]; ++add;
+ contents_insert ~= line;
} else if (auto m = match(line, rgx.block_curly_code_open)) {
ft1["curly_code"] = 1;
ft1["header_make"] = 0;
ft1["header_metadata"] = 0;
- cont_arbitrary_max_length_set_[counter["add"]] = line;
- ++counter["add"]; ++add;
+ contents_insert ~= line;
} else if (ft1["tic_code"] == 1) {
ft1["header_make"] = 0;
ft1["header_metadata"] = 0;
if (auto m = match(line, rgx.block_tic_close)) {
ft1["tic_code"] = 0;
}
- cont_arbitrary_max_length_set_[counter["add"]] = line;
- ++counter["add"]; ++add;
+ contents_insert ~= line;
} else if (auto m = match(line, rgx.block_tic_code_open)) {
ft1["tic_code"] = 1;
ft1["header_make"] = 0;
ft1["header_metadata"] = 0;
- cont_arbitrary_max_length_set_[counter["add"]] = line;
- ++counter["add"]; ++add;
+ contents_insert ~= line;
} else if (
- (ft1["header_make"] == 1) && (line_occur["header_make"] > 0)
+ (ft1["header_make"] == 1)
&& match(line, rgx.header_sub)
) {
ft1["header_make"] = 1;
ft1["header_metadata"] = 0;
- ++line_occur["header_make"];
- ++counter["add"];
} else if (
- (ft1["header_metadata"] == 1) && (line_occur["header_metadata"] > 0)
+ (ft1["header_metadata"] == 1)
&& match(line, rgx.header_sub)
) {
ft1["header_metadata"] = 1;
ft1["header_make"] = 0;
- ++line_occur["header_metadata"];
- ++counter["add"];
} else if (auto m = match(line, rgx.insert_src_fn_ssi_or_sst)) {
ft1["header_make"] = 0;
ft1["header_metadata"] = 0;
@@ -75,7 +63,7 @@ mixin template SiSUdocInserts() {
auto insert_sub_pth = m.captures[1];
auto fn_src_insert =
(markup_src_file_path ~ insert_sub_pth ~ insert_fn);
- auto raw = new MarkupRaw();
+ auto raw = MarkupRaw();
auto markup_sourcesubfile_insert_content =
raw.markupInsertSourceContentRawLineArray(fn_src_insert);
debug(insert) { // insert file
@@ -87,7 +75,7 @@ mixin template SiSUdocInserts() {
markup_sourcesubfile_insert_content.length
);
}
- auto ins = new Inserts();
+ auto ins = Inserts();
/+
1. load file,
2. read lines;
@@ -100,24 +88,19 @@ mixin template SiSUdocInserts() {
} else {
ft1["header_make"] = 0;
ft1["header_metadata"] = 0;
- cont_arbitrary_max_length_set_[counter["add"]] = line;
- ++counter["add"]; ++add;
+ contents_insert ~= line;
}
} // end src subdoc (inserts) loop
- auto contents_ = cont_arbitrary_max_length_set_[0 .. counter["add"]].dup;
- auto t = tuple(contents_, add);
- return t;
+ return contents_insert;
}
- auto scan_doc_source(char[][] markup_sourcefile_content, string fn_src) {
- char[][100000] cont_arbitrary_max_length_set; // 2000 pg * 50 lines
- string[string] processing;
- uint[string] line_occur;
- auto obj_im = new ObjInlineMarkup();
- auto obj_att = new ObjAttrib();
+ auto scan_doc_source(
+ char[][] markup_sourcefile_content,
+ string fn_src
+ ) {
+ char[][] contents;
auto ft = flag_type.dup;
- int add;
mixin ScreenTxtColors;
- auto rgx = new Rgx();
+ auto rgx = Rgx();
int tell_l(string color, in char[] line) {
writeln(scr_txt_marker[color], line);
return 0;
@@ -131,49 +114,42 @@ mixin template SiSUdocInserts() {
if (auto m = match(line, rgx.block_curly_code_close)) {
ft["curly_code"] = 0;
}
- cont_arbitrary_max_length_set[add] = line;
- ++add;
+ contents ~= line;
} else if (auto m = match(line, rgx.block_curly_code_open)) {
ft["curly_code"] = 1;
ft["header_make"] = 0;
ft["header_metadata"] = 0;
- cont_arbitrary_max_length_set[add] = line;
- ++add;
+ contents ~= line;
} else if (ft["tic_code"] == 1) {
ft["header_make"] = 0;
ft["header_metadata"] = 0;
if (auto m = match(line, rgx.block_tic_close)) {
ft["tic_code"] = 0;
}
- cont_arbitrary_max_length_set[add] = line;
- ++add;
+ contents ~= line;
} else if (auto m = match(line, rgx.block_tic_code_open)) {
ft["tic_code"] = 1;
ft["header_make"] = 0;
ft["header_metadata"] = 0;
- cont_arbitrary_max_length_set[add] = line;
- } else if ((ft["header_make"] == 1)
- && (line_occur["header_make"] > 0)
- && match(line, rgx.header_sub)) {
- ++line_occur["header_make"];
- cont_arbitrary_max_length_set[add] = line;
- ++add;
- } else if ((ft["header_metadata"] == 1)
- && (line_occur["header_metadata"] > 0)
- && match(line, rgx.header_sub)) {
- ++line_occur["header_metadata"];
- cont_arbitrary_max_length_set[add] = line;
- ++add;
+ contents ~= line;
+ } else if (
+ (ft["header_make"] == 1)
+ && match(line, rgx.header_sub)
+ ) {
+ contents ~= line;
+ } else if (
+ (ft["header_metadata"] == 1)
+ && match(line, rgx.header_sub)
+ ) {
+ contents ~= line;
} else if (auto m = match(line, rgx.header_make)) {
ft["header_make"] = 1;
- ++line_occur["header_make"];
- cont_arbitrary_max_length_set[add] = line;
- ++add;
+ ft["header_metadata"] = 0;
+ contents ~= line;
} else if (auto m = match(line, rgx.header_metadata)) {
+ ft["header_make"] = 0;
ft["header_metadata"] = 1;
- ++line_occur["header_metadata"];
- cont_arbitrary_max_length_set[add] = line;
- ++add;
+ contents ~= line;
} else if (auto m = match(line, rgx.insert_src_fn_ssi_or_sst)) {
ft["header_make"] = 0;
ft["header_metadata"] = 0;
@@ -181,7 +157,7 @@ mixin template SiSUdocInserts() {
auto insert_sub_pth = m.captures[1];
auto fn_src_insert =
(markup_src_file_path ~ insert_sub_pth ~ insert_fn);
- auto raw = new MarkupRaw();
+ auto raw = MarkupRaw();
auto markup_sourcefile_insert_content =
raw.markupInsertSourceContentRawLineArray(fn_src_insert);
debug(insert) { // insert file
@@ -192,15 +168,12 @@ mixin template SiSUdocInserts() {
markup_sourcefile_insert_content.length
);
}
- auto ins = new Inserts();
- auto t = ins.scan_subdoc_source(
- markup_sourcefile_insert_content, to!string(fn_src_insert), add
+ auto ins = Inserts();
+ auto contents_insert = ins.scan_subdoc_source(
+ markup_sourcefile_insert_content,
+ to!string(fn_src_insert)
);
- static assert(!isTypeTuple!(t));
- auto tmparr = t[0];
- auto addsub = t[1];
- cont_arbitrary_max_length_set[add .. addsub-1] = tmparr[0 .. $-1];
- add=addsub;
+ contents ~= contents_insert;
/+
1. load file,
2. read lines;
@@ -213,15 +186,12 @@ mixin template SiSUdocInserts() {
} else {
ft["header_make"] = 0;
ft["header_metadata"] = 0;
- cont_arbitrary_max_length_set[add] = line;
- ++add;
+ contents ~= line;
}
} // end src doc loop
- auto contents = cont_arbitrary_max_length_set[0..add].dup;
debug(insert) { // insert file
writeln(__LINE__);
writeln(contents.length);
- writeln(add);
}
return contents;
}