aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sdp.d
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sdp.d')
-rwxr-xr-xlib/sdp.d119
1 files changed, 77 insertions, 42 deletions
diff --git a/lib/sdp.d b/lib/sdp.d
index 268031d..0835623 100755
--- a/lib/sdp.d
+++ b/lib/sdp.d
@@ -1,8 +1,8 @@
#!/usr/bin/env rdmd
-/*
+/+
sdp
sdp.d
-*/
++/
/+ sdp sisu document parser +/
import
std.algorithm,
@@ -21,21 +21,28 @@ import
std.typecons,
std.utf,
// std.variant,
+ std.conv : to;
+/+ sdp sisu document parser +/
+import
+ lib.sdp.compile_time_info, // sdp/compile_time_info.d
lib.sdp.ao_abstract_doc_source, // sdp/ao_abstract_doc_source.d
lib.sdp.ao_assertions, // sdp/ao_assertions.d
lib.sdp.ao_defaults, // sdp/ao_defaults.d
lib.sdp.ao_emitter, // sdp/ao_emitter.d
- lib.sdp.ao_interface, // sdp/ao_interface.d
- lib.sdp.ao_read_markup_source, // sdp/ao_read_markup_source.d
+ lib.sdp.ao_read_markup_source, // sdp/ao_read_markup_source.d
lib.sdp.ao_object_setter, // sdp/ao_object_setter.d
lib.sdp.ao_output_debugs, // sdp/ao_output_debugs.d
lib.sdp.ao_rgx, // sdp/ao_rgx.d
lib.sdp.ao_scan_inserts, // sdp/ao_scan_inserts.d
+ lib.sdp.ao_structs, // sdp/ao_structs.d
lib.sdp.ao_utils; // sdp/ao_utils.d
// std.conv;
-import std.conv : to;
-mixin RgxInit; mixin Interfaces; mixin Emitters;
+// import std.stdio;
+mixin(import("version.txt"));
+mixin CompileTimeInfo;
+mixin RgxInit; mixin Emitters;
void main(string[] argv) {
+
mixin SiSUheader;
mixin SiSUbiblio;
mixin SiSUrgxInitFlags;
@@ -44,10 +51,10 @@ void main(string[] argv) {
mixin SiSUdocAbstraction;
mixin SiSUoutputDebugs;
mixin ScreenTxtColors;
- auto cli = new CLI();
- auto raw = new MarkupRaw();
- auto abs = new Abstraction();
- auto dbg = new SDPoutputDebugs();
+ auto cli = CLI();
+ auto raw = MarkupRaw();
+ auto abs = Abstraction();
+ auto dbg = SDPoutputDebugs();
// struct DocumentParts {
// string[string][] contents;
// JSONValue[string] metadata_json;
@@ -55,67 +62,89 @@ void main(string[] argv) {
// string[][string][string] bookindex_unordered_hashes;
// JSONValue[] biblio;
// }
- char[][] msc;
- string[1000] fns_src;
+ string[] fns_src;
string flag_action;
string[string] actions;
- int file_count;
actions = [
"assert" : "yes",
];
- auto rgx = new Rgx();
+ auto rgx = Rgx();
scope(success) {
debug(checkdoc) {
- writeln(
+ writefln(
+ "%s~ run complete, ok ~ %s (sdp-%s.%s.%s, %s v%s, %s %s)",
scr_txt_color["cyan"],
- "~ run complete, ok ~ ",
scr_txt_color["off"],
+ ver.major,
+ ver.minor,
+ ver.patch,
+ __VENDOR__,
+ __VERSION__,
+ bits,
+ os,
);
}
- // writeln("0");
+ // stderr.writeln("0");
}
scope(failure) {
- debug(checkdoc) {
- writeln(
+ debug(checkdoc) {
+ writefln(
+ "%s~ run failure ~%s",
scr_txt_color["fuchsia"],
- "~ run failure ~",
scr_txt_color["off"],
+ );
+ }
+ // stderr.writeln("1");
+ }
+ scope(exit) {
+ debug(checkdoc) {
+ writefln(
+ "(%s v%s)",
+ __VENDOR__,
+ __VERSION__,
);
}
- // writeln("1");
}
foreach(cmdlnins; argv) {
if (match(cmdlnins, rgx.flag_action)) {
flag_action ~= " " ~ cmdlnins;
actions = cli.extract_actions(cmdlnins, actions);
} else if (match(cmdlnins, rgx.src_pth)) {
- fns_src[file_count] = cmdlnins;
- file_count++;
+ fns_src ~= cmdlnins;
}
}
foreach(fn_src; fns_src) {
if (!empty(fn_src)) {
scope(success) {
debug(checkdoc) {
- writeln(
+ writefln(
+ "%s~ document complete, ok ~%s %s",
scr_txt_color["green"],
- "~ document complete, ok ~ ",
scr_txt_color["off"],
fn_src
);
}
- // writeln("0");
+ // stderr.writeln("0");
}
scope(failure) {
debug(checkdoc) {
- writeln(
+ writefln(
+ "%s~ document run failure ~%s (%s v%s)\n\t%s",
scr_txt_color["red"],
- "~ document run failure ~",
scr_txt_color["off"],
+ __VENDOR__,
+ __VERSION__,
+ fn_src
+ );
+ }
+ // stderr.writeln("1");
+ }
+ scope(exit) {
+ debug(checkdoc) {
+ writeln(
fn_src
);
}
- // writeln("1");
}
enforce(
match(fn_src, rgx.src_pth),
@@ -131,28 +160,34 @@ void main(string[] argv) {
auto m = match(fn_src, rgx.src_pth);
// auto m = match(fn_src, rgx.src_pth);
auto markup_src_file_path = m.captures[1];
- writeln("markup source file path: ", markup_src_file_path); // writeln(m.captures[1]);
+ writefln(
+ "markup source file path: %s",
+ markup_src_file_path
+ ); // writeln(m.captures[1]);
writeln(m.captures[2]);
}
if (match(fn_src, rgx.src_fn_master)) {
- /+ if master file scan document source for document imports (inserted sub-documents) +/
- auto ins = new Inserts();
- auto markup_master_sourcefile_content =
+ /+ if master file .ssm
+ scan document source for document imports
+ (inserted sub-documents)
+ +/
+ auto ins = Inserts();
+ markup_sourcefile_content =
ins.scan_doc_source(markup_sourcefile_content, fn_src);
- msc = markup_master_sourcefile_content;
- } else if (match(fn_src, rgx.src_fn)) {
- msc = markup_sourcefile_content;
- } else {
+ } else if (!match(fn_src, rgx.src_fn)) {
writeln("not a recognized filename");
}
debug(raw) {
- foreach (line; msc) {
+ foreach (line; markup_sourcefile_content) {
writeln(line);
}
}
- /+ process document ao_abstract_doc_source SiSUdocAbstraction::Abstraction return abstraction as tuple +/
+ /+ process document ao_abstract_doc_source
+ SiSUdocAbstraction::Abstraction
+ return abstraction as tuple
+ +/
auto t =
- abs.abstract_doc_source(msc);
+ abs.abstract_doc_source(markup_sourcefile_content);
static assert(!isTypeTuple!(t));
auto contents = t[0];
// static assert(!isIterable!(contents));
@@ -176,7 +211,7 @@ void main(string[] argv) {
// compose abstract document markup state
// append book index
scope(exit) {
- destroy(msc);
+ destroy(markup_sourcefile_content);
destroy(t);
destroy(contents);
destroy(make_json);
@@ -186,7 +221,7 @@ void main(string[] argv) {
destroy(biblio);
}
} else {
- /* no recognized filename provided */
+ /+ no recognized filename provided +/
writeln("no recognized filename");
break;
// terminate, stop