aboutsummaryrefslogtreecommitdiffhomepage
path: root/org/ao_conf_make_meta.org
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2017-01-23 17:17:47 -0500
committerRalph Amissah <ralph@amissah.com>2019-04-10 15:14:14 -0400
commit334bb9c301bb72d5331a2e9e067211c18e5f7c69 (patch)
tree914d539ce4f228103da8bf465cbcf61a71f96498 /org/ao_conf_make_meta.org
parenttemplate, document head & body (diff)
templates
Diffstat (limited to 'org/ao_conf_make_meta.org')
-rw-r--r--org/ao_conf_make_meta.org82
1 files changed, 59 insertions, 23 deletions
diff --git a/org/ao_conf_make_meta.org b/org/ao_conf_make_meta.org
index eb39f73..df6d456 100644
--- a/org/ao_conf_make_meta.org
+++ b/org/ao_conf_make_meta.org
@@ -41,7 +41,7 @@ template SiSUheaderExtractHub() {
DocMake conf_doc_make_aa
) {
debug(asserts){
- static assert(is(typeof(header_src) == char[]));
+ static assert(is(typeof(header_src) == char[]));
static assert(is(typeof(conf_doc_make_aa) == string[string][string]));
}
auto head_native = HeaderDocMetadataAndMakeNativeToAA();
@@ -109,7 +109,10 @@ template SiSUheaderExtractSDLang() {
#+name: ao_conf_make_meta_sdl
#+BEGIN_SRC d
-private auto sdlangToAAmake(string[string][string] conf, Tag conf_sdlang) {
+private auto sdlangToAAmake(C,Tag)(C conf, Tag conf_sdlang) {
+ debug(asserts){
+ static assert(is(typeof(conf) == string[string][string]));
+ }
foreach (maintag, subtags; conf) {
foreach (subtag, content; subtags) {
if (!(conf_sdlang.maybe.tags[maintag].empty)) {
@@ -132,7 +135,7 @@ private auto sdlangToAAmake(string[string][string] conf, Tag conf_sdlang) {
#+name: ao_conf_make_meta_sdl
#+BEGIN_SRC d
-private auto configSettingsSDLangToAAmake(Tag conf_sdlang) {
+private auto configSettingsSDLangToAAmake(Tag)(Tag conf_sdlang) {
auto conf = sdlangToAAmake(conf_aa, conf_sdlang);
return conf;
}
@@ -142,7 +145,7 @@ private auto configSettingsSDLangToAAmake(Tag conf_sdlang) {
#+name: ao_conf_make_meta_sdl
#+BEGIN_SRC d
-private auto documentMakeSDLangToAAmake(Tag document_make_sdlang) {
+private auto documentMakeSDLangToAAmake(Tag)(Tag document_make_sdlang) {
auto dochead_make = sdlangToAAmake(make_aa, document_make_sdlang);
/+
/+ dochead +/
@@ -290,12 +293,18 @@ private auto documentMakeSDLangToAAmake(Tag document_make_sdlang) {
#+name: ao_markup_header_extract_native
#+BEGIN_SRC d
-auto header_metadata_and_make_aa(
- string header,
- string[string][string] dochead_meta,
- string[string][string] dochead_make
+auto header_metadata_and_make_aa(H,Me,Ma)(
+ H header,
+ Me dochead_meta,
+ Ma dochead_make
)
-in { }
+in {
+ debug(asserts){
+ static assert(is(typeof(header) == string));
+ static assert(is(typeof(dochead_meta) == string[string][string]));
+ static assert(is(typeof(dochead_make) == string[string][string]));
+ }
+}
body {
scope(exit) {
destroy(header);
@@ -482,12 +491,18 @@ body {
#+name: ao_markup_header_extract_native
#+BEGIN_SRC d
-private auto native_header_extract(
- char[] line,
- ref int[string] line_occur,
- ref string[string] an_object,
- ref int[string] type
+private auto native_header_extract(L,Lo,O,T)(
+ L line,
+ ref Lo line_occur,
+ ref O an_object,
+ ref T type
) {
+ debug(asserts){
+ static assert(is(typeof(line) == char[]));
+ static assert(is(typeof(line_occur) == int[string]));
+ static assert(is(typeof(an_object) == string[string]));
+ static assert(is(typeof(type) == int[string]));
+ }
if (matchFirst(line, rgx.native_header_make)) { /+ matched header_make +/
debug(header1) { /+ writeln(line); +/ }
type["header"] = State.on;
@@ -526,11 +541,16 @@ private auto native_header_extract(
#+name: ao_markup_header_extract_native
#+BEGIN_SRC d
-auto header_reset_states_common(
- ref int[string] line_occur,
- ref string[string] an_object,
- ref int[string] type
+auto header_reset_states_common(Lo,O,T)(
+ ref Lo line_occur,
+ ref O an_object,
+ ref T type
) {
+ 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]));
+ }
line_occur["header_make"] = State.off;
line_occur["header_meta"] = State.off;
type["header"] = State.off;
@@ -544,7 +564,10 @@ auto header_reset_states_common(
#+name: ao_markup_header_extract_native
#+BEGIN_SRC d
-private auto headerNativeToAA(in char[] src_header) {
+private auto headerNativeToAA(Hn)(Hn src_header) {
+ debug(asserts){
+ static assert(is(typeof(src_header) == char[]));
+ }
auto type = flags_type_init;
type = [
"header" : State.off,
@@ -600,7 +623,10 @@ private auto headerNativeToAA(in char[] src_header) {
#+name: ao_conf_make_meta_sdl
#+BEGIN_SRC d
-final private auto headerMakeSDLang(in string src_header) {
+final private auto headerMakeSDLang(Hs)(Hs src_header) {
+ debug(asserts){
+ static assert(is(typeof(src_header) == string));
+ }
scope(failure) {
stderr.writefln(
"%s\n%s\n%s:%s failed here:\n src_header: %s",
@@ -632,7 +658,10 @@ final private auto headerMakeSDLang(in string src_header) {
#+name: ao_conf_make_meta_sdl
#+BEGIN_SRC d
-private auto headerSDLangGet(in char[] src_header) {
+private auto headerSDLangGet(Hs)(Hs src_header) {
+ debug(asserts){
+ static assert(is(typeof(src_header) == char[]));
+ }
char[][] source_header_arr =
split(cast(char[]) src_header, rgx.newline_eol_delimiter);
char[] header_clean;
@@ -661,7 +690,10 @@ private auto headerSDLangGet(in char[] src_header) {
#+name: ao_conf_make_meta_sdl
#+BEGIN_SRC d
-private auto headerSDLangToAAmake(Tag header_sdlang, string[string][string] dochead_make) {
+private auto headerSDLangToAAmake(Tag,Ma)(Tag header_sdlang, Ma dochead_make) {
+ debug(asserts){
+ static assert(is(typeof(dochead_make) == string[string][string]));
+ }
dochead_make = sdlangToAAmake(dochead_make, header_sdlang);
auto dochead_meta = sdlangToAAmake(meta_aa, header_sdlang);
if (dochead_meta["title"]["main"].empty) {
@@ -699,7 +731,11 @@ private auto headerSDLangToAAmake(Tag header_sdlang, string[string][string] doch
#+name: ao_conf_make_meta_sdl
#+BEGIN_SRC d
-private auto headerSDLangToAA(char[] header_sdlang_src, string[string][string] conf_doc_make_aa) {
+private auto headerSDLangToAA(Hs,Ma)(Hs header_sdlang_src, Ma conf_doc_make_aa) {
+ debug(asserts){
+ static assert(is(typeof(header_sdlang_src) == char[]));
+ static assert(is(typeof(conf_doc_make_aa) == string[string][string]));
+ }
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;