From 334bb9c301bb72d5331a2e9e067211c18e5f7c69 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Mon, 23 Jan 2017 17:17:47 -0500 Subject: templates --- org/ao_conf_make_meta.org | 82 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 59 insertions(+), 23 deletions(-) (limited to 'org/ao_conf_make_meta.org') 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; -- cgit v1.2.3