aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sdp/ao_header_extract_sdlang.d
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2016-07-02 00:22:17 -0400
committerRalph Amissah <ralph@amissah.com>2019-04-04 14:48:18 -0400
commit951d136957c14bed5581a11fe41bdebd174d5ce8 (patch)
treea1e89be8661bc35a53104a2428dbd95de9a970e2 /src/sdp/ao_header_extract_sdlang.d
parentrename files ao_conf_make_meta.d from ao_header_extract.d (org/ output) (diff)
file renaming, whitespace cleaning
Diffstat (limited to 'src/sdp/ao_header_extract_sdlang.d')
-rw-r--r--src/sdp/ao_header_extract_sdlang.d209
1 files changed, 0 insertions, 209 deletions
diff --git a/src/sdp/ao_header_extract_sdlang.d b/src/sdp/ao_header_extract_sdlang.d
deleted file mode 100644
index 16a36e9..0000000
--- a/src/sdp/ao_header_extract_sdlang.d
+++ /dev/null
@@ -1,209 +0,0 @@
-/+
- extract sdl header return sdl
-+/
-template SiSUheaderExtractSDLang() {
- private import
- std.regex;
- private import
- ao_rgx;
- struct HeaderExtractSDL {
- mixin SiSUregisters;
- mixin RgxInit;
- auto rgx = Rgx();
- private auto sdlangToAAmake(string[string][string] conf, Tag conf_sdlang) {
- foreach (maintag, subtags; conf) {
- foreach (subtag, content; subtags) {
- if (!(conf_sdlang.maybe.tags[maintag].empty)) {
- if (!(conf_sdlang.tags[maintag][0].maybe.attributes[subtag].empty)
- && (conf_sdlang.tags[maintag][0].attributes[subtag][0].value.length > 1)) {
- writeln(conf_sdlang.tags[maintag][0].attributes[subtag][0].value);
- conf[maintag][subtag] =
- to!string(conf_sdlang.tags[maintag][0].attributes[subtag][0].value);
- }
- }
- }
- }
- return conf;
- }
- private auto configSettingsSDLangToAAmake(Tag conf_sdlang) {
- auto conf = sdlangToAAmake(conf_aa, conf_sdlang);
- return conf;
- }
- private auto documentMakeSDLangToAAmake(Tag document_make_sdlang) {
- auto dochead_make = sdlangToAAmake(make_aa, document_make_sdlang);
- /+
- hm = "links";
- if (!(document_make_sdlang.maybe.tags[hm].empty)) {
- /+ TODO
- stuff to fix
- +/
- // hs = "link";
- // if (!(document_make_sdlang.tags[hm][0].maybe.attributes[hs].empty)
- // && (document_make_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) {
- // writeln(document_make_sdlang.tags[hm][0].attributes[hs][0].value);
- // dochead_meta[hm][hs] =
- // to!string(document_make_sdlang.tags[hm][0].attributes[hs][0].value);
- // }
- }
- +/
- // writeln(dochead_make);
- return dochead_make;
- }
- final private auto headerMakeSDLang(in string src_header) {
- scope(failure) {
- stderr.writefln(
- "%s\n%s\n%s:%s failed here:\n src_header: %s",
- __MODULE__, __FUNCTION__,
- __FILE__, __LINE__,
- src_header,
- );
- }
- Tag sdl_root_header;
- try {
- sdl_root_header = parseSource(src_header);
- }
- catch(SDLangParseException e) {
- stderr.writeln("SDLang problem with this document header:");
- stderr.writeln(src_header);
- // Error messages of the form:
- // myFile.sdl(5:28): Error: Invalid integer suffix.
- stderr.writeln(e.msg);
- }
- debug(sdlang) {
- writeln("header SDL:");
- writeln(sdl_root_header.toSDLDocument());
- }
- return sdl_root_header;
- }
- private auto headerSDLangGet(in char[] src_header) {
- char[][] source_header_arr =
- split(cast(char[]) src_header, rgx.line_delimiter);
- char[] header_clean;
- // TODO
- foreach(header_line; source_header_arr) {
- if (!match(header_line, rgx.comments)) {
- header_clean ~= header_line ~ "\n";
- // writeln(header_line);
- }
- }
- /+ get sdlang tags +/
- auto header_sdlang=headerMakeSDLang(to!string(header_clean));
- debug(sdlang) {
- writeln("--------------");
- stdout.rawWrite( header_sdlang.toSDLDocument() );
- writeln("--------------");
- Value test = header_sdlang.tags["title"][0].values[0];
- assert(test == typeid(string));
- writeln(header_sdlang.maybe.tags["title"]);
- writeln(header_sdlang.maybe.tags["title"][0].maybe.attributes["subtitle"]);
- }
- return header_sdlang; // sdlang.ast.Tag
- }
- private auto headerSDLangToAAmake(Tag header_sdlang, string[string][string] dochead_make) {
- dochead_make = sdlangToAAmake(dochead_make, header_sdlang);
- auto dochead_meta = sdlangToAAmake(meta_aa, header_sdlang);
- /+
- /+ dochead +/
- string hm;
- string hs;
- /+ meta +/
- auto dochead_meta = meta_aa;
- hm = "title";
- if (!(header_sdlang.maybe.tags[hm].empty)) {
- /+ TODO Title REQUIRED +/
- hs = "main";
- if (!(header_sdlang.tags[hm].empty)
- && (header_sdlang.tags[hm][0].values[0].length > 1)) {
- writeln(header_sdlang.tags[hm][0].values[0]);
- dochead_meta[hm][hs] =
- to!string(header_sdlang.tags[hm][0].values[0]);
- // to!string(header_sdlang.tags[hm][0].attributes[hs][0].value);
- } else if (!(header_sdlang.tags[hm][0].maybe.attributes[hs].empty)
- && (header_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) {
- writeln(header_sdlang.tags[hm][0].attributes[hs][0].value);
- dochead_meta[hm][hs] =
- to!string(header_sdlang.tags[hm][0].attributes[hs][0].value);
- } else {
- writeln("Required header metadata Title, missing");
- }
- hs = "sub";
- if (!(header_sdlang.tags[hm][0].maybe.attributes[hs].empty)
- && (header_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) {
- writeln(header_sdlang.tags[hm][0].attributes[hs][0].value);
- dochead_meta[hm][hs] =
- to!string(header_sdlang.tags[hm][0].attributes[hs][0].value);
- } else if (!(header_sdlang.tags[hm][0].maybe.attributes["subtitle"].empty)
- && (header_sdlang.tags[hm][0].attributes["subtitle"][0].value.length > 1)) {
- writeln(header_sdlang.tags[hm][0].attributes["subtitle"][0].value);
- dochead_meta[hm][hs] =
- to!string(header_sdlang.tags[hm][0].attributes["subtitle"][0].value);
- }
- // full title composite (main + sub)
- // hs = "full";
- // dochead_meta[hm][hs] = dochead_meta[hm]["main"] ~ dochead_meta[hm]["sub"];
- hs = "language";
- if (!(header_sdlang.tags[hm][0].maybe.attributes["lang"].empty)
- && (header_sdlang.tags[hm][0].attributes["lang"][0].value.length > 1)) {
- writeln(header_sdlang.tags[hm][0].attributes["lang"][0].value);
- dochead_meta[hm][hs] =
- to!string(header_sdlang.tags[hm][0].attributes["lang"][0].value);
- } else if (!(header_sdlang.tags[hm][0].maybe.attributes[hs].empty)
- && (header_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) {
- writeln(header_sdlang.tags[hm][0].attributes[hs][0].value);
- dochead_meta[hm][hs] =
- to!string(header_sdlang.tags[hm][0].attributes[hs][0].value);
- }
- }
- hm = "creator";
- if (!(header_sdlang.maybe.tags[hm].empty)) {
- /+ Creator / Author REQUIRED +/
- /+ TODO
- - decide on representation for & deal with multiple authors;
- - author(s) full name;
- - author(s) surname & other parts
- +/
- hs = "author";
- if (!(header_sdlang.tags[hm][0].maybe.attributes[hs].empty)
- && (header_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) {
- writeln(header_sdlang.tags[hm][0].attributes[hs][0].value);
- dochead_meta[hm][hs] =
- to!string(header_sdlang.tags[hm][0].attributes[hs][0].value);
- }
- }
- hm = "links";
- if (!(header_sdlang.maybe.tags[hm].empty)) {
- /+ TODO
- stuff to fix
- +/
- // hs = "link";
- // if (!(header_sdlang.tags[hm][0].maybe.attributes[hs].empty)
- // && (header_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) {
- // writeln(header_sdlang.tags[hm][0].attributes[hs][0].value);
- // dochead_meta[hm][hs] =
- // to!string(header_sdlang.tags[hm][0].attributes[hs][0].value);
- // }
- }
- hm = "publisher";
- if (!(header_sdlang.maybe.tags[hm].empty)) {
- hs = "name";
- if (!(header_sdlang.tags[hm][0].maybe.attributes[hs].empty)
- && (header_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) {
- writeln(header_sdlang.tags[hm][0].attributes[hs][0].value);
- dochead_meta[hm][hs] =
- to!string(header_sdlang.tags[hm][0].attributes[hs][0].value);
- }
- }
- }
- +/
- auto t = tuple(dochead_make, dochead_meta);
- static assert(!isTypeTuple!(t));
- return t;
- }
- private auto headerSDLangToAA(char[] header_sdlang_src, string[string][string] conf_doc_make_aa) {
- auto header_sdlang_tag = headerSDLangGet(header_sdlang_src); // sdlang.ast.Tag
- auto header_aa_tuple = headerSDLangToAAmake(header_sdlang_tag, conf_doc_make_aa);
- return header_aa_tuple;
- }
-
- }
-}