diff options
author | Ralph Amissah <ralph@amissah.com> | 2017-07-27 04:38:26 -0400 |
---|---|---|
committer | Ralph Amissah <ralph@amissah.com> | 2019-04-10 15:14:14 -0400 |
commit | d56624bce222d870298d937e634fe01aef5c39e4 (patch) | |
tree | fda4da44a0fdddda9e99202ad69ebce9193c55ba /src/sdp/meta | |
parent | meta_abstraction, mark some functions pure (diff) |
static, liberal use of keyword
Diffstat (limited to 'src/sdp/meta')
-rw-r--r-- | src/sdp/meta/composite_make.d | 4 | ||||
-rw-r--r-- | src/sdp/meta/conf_make_meta.d | 2 | ||||
-rw-r--r-- | src/sdp/meta/conf_make_meta_native.d | 2 | ||||
-rw-r--r-- | src/sdp/meta/conf_make_meta_sdlang.d | 2 | ||||
-rw-r--r-- | src/sdp/meta/defaults.d | 54 | ||||
-rw-r--r-- | src/sdp/meta/doc_debugs.d | 2 | ||||
-rw-r--r-- | src/sdp/meta/metadoc.d | 2 | ||||
-rw-r--r-- | src/sdp/meta/metadoc_from_src.d | 106 | ||||
-rw-r--r-- | src/sdp/meta/read_source_files.d | 4 | ||||
-rw-r--r-- | src/sdp/meta/rgx.d | 8 |
10 files changed, 94 insertions, 92 deletions
diff --git a/src/sdp/meta/composite_make.d b/src/sdp/meta/composite_make.d index dc28206..bcbe20c 100644 --- a/src/sdp/meta/composite_make.d +++ b/src/sdp/meta/composite_make.d @@ -13,8 +13,8 @@ template compositeMkCnf() { string _italics; string _emphasis; auto compositeMkCnf(Mks...)(Mks makes) { + static auto rgx = Rgx(); foreach (make; makes) { - auto rgx = Rgx(); if (auto z = "make" in make) { if (auto x = "substitute" in *z) { foreach (m; (*x).matchAll(rgx.make_simple_substitutions_d)) { @@ -78,7 +78,7 @@ template compositeMkCnfAA() { mixin SiSUrgxInit; string[] _substitutions; string[string][] _sub; - auto rgx = Rgx(); + static auto rgx = Rgx(); auto compositeMkCnfAA(Mks...)(Mks makes) { /+ - skip.first_make which is the "composite make output" diff --git a/src/sdp/meta/conf_make_meta.d b/src/sdp/meta/conf_make_meta.d index 5beeae2..140b6ba 100644 --- a/src/sdp/meta/conf_make_meta.d +++ b/src/sdp/meta/conf_make_meta.d @@ -26,7 +26,7 @@ template docHeaderMakeAndMetaTupExtractAndConvertToAA() { mixin SiSUrgxInit; mixin SiSUheaderExtractNative; mixin SiSUextractSDLang; - auto rgx = Rgx(); + static auto rgx = Rgx(); auto docHeaderMakeAndMetaTupExtractAndConvertToAA(DocMake, Src)( DocMake conf_doc_make_aa, Src header_src, diff --git a/src/sdp/meta/conf_make_meta_native.d b/src/sdp/meta/conf_make_meta_native.d index fc7912f..39e40b0 100644 --- a/src/sdp/meta/conf_make_meta_native.d +++ b/src/sdp/meta/conf_make_meta_native.d @@ -20,7 +20,7 @@ template SiSUheaderExtractNative() { mixin SiSUregisters; mixin SiSUrgxInitFlags; mixin SiSUrgxInit; - auto rgx = Rgx(); + static auto rgx = Rgx(); enum State { off, on } string hm, hs; auto header_metadata_and_make_aa(H,Me,Ma)( diff --git a/src/sdp/meta/conf_make_meta_sdlang.d b/src/sdp/meta/conf_make_meta_sdlang.d index f4af643..480a8fe 100644 --- a/src/sdp/meta/conf_make_meta_sdlang.d +++ b/src/sdp/meta/conf_make_meta_sdlang.d @@ -19,7 +19,7 @@ template SiSUextractSDLang() { struct extractSDL { mixin SiSUregisters; mixin SiSUrgxInit; - auto rgx = Rgx(); + static auto rgx = Rgx(); private auto docHeaderSDLtagGet(Hs)(Hs src_header) { debug(asserts){ static assert(is(typeof(src_header) == char[])); diff --git a/src/sdp/meta/defaults.d b/src/sdp/meta/defaults.d index fb95e3a..ecc558b 100644 --- a/src/sdp/meta/defaults.d +++ b/src/sdp/meta/defaults.d @@ -22,7 +22,7 @@ template SiSUregisters() { std.uni, std.utf, std.conv : to; - string[string][string] conf_aa_empty() { + static string[string][string] conf_aa_empty() { auto conf_ = [ "webserv": [ "url_root" : "", @@ -97,7 +97,7 @@ template SiSUregisters() { ]; return conf_; } - string[string][string] meta_aa_empty() { + static string[string][string] meta_aa_empty() { auto meta_ = [ "classify": [ "dewey" : "", @@ -159,7 +159,7 @@ template SiSUregisters() { ]; return meta_; } - auto ptr_head_main = + static auto ptr_head_main = [ "classify", "creator", @@ -172,7 +172,7 @@ template SiSUregisters() { "rights", "title" ]; - auto ptr_head_sub_classify = + static auto ptr_head_sub_classify = [ "dewey", "keywords", @@ -180,7 +180,7 @@ template SiSUregisters() { "subject", "topic_register" ]; - auto ptr_head_sub_creator = + static auto ptr_head_sub_creator = [ "author", "author_email", @@ -188,7 +188,7 @@ template SiSUregisters() { "illustrator", "translator" ]; - auto ptr_head_sub_date = + static auto ptr_head_sub_date = [ "added_to_site", "available", @@ -198,14 +198,14 @@ template SiSUregisters() { "published", "valid" ]; - auto ptr_head_sub_identifier = + static auto ptr_head_sub_identifier = [ "isbn", "oclc", "pg" ]; /+ make +/ - auto ptr_head_sub_make = + static auto ptr_head_sub_make = [ "cover_image", "home_button_image", @@ -220,27 +220,27 @@ template SiSUregisters() { "texpdf_font", "css" ]; - auto ptr_head_sub_notes = + static auto ptr_head_sub_notes = [ "abstract", "description" ]; - auto ptr_head_sub_original = + static auto ptr_head_sub_original = [ "language", "source", "title" ]; - auto ptr_head_sub_publisher = + static auto ptr_head_sub_publisher = [ "name" ]; - auto ptr_head_sub_rights = + static auto ptr_head_sub_rights = [ "copyright", "cover", "illustrations", "license" ]; - auto ptr_head_sub_title = + static auto ptr_head_sub_title = [ "edition", "full", @@ -254,7 +254,7 @@ template SiSUregisters() { } template SiSUrgxInitFlags() { /+ regex flags +/ - int[string] flags_type_init() { + static int[string] flags_type_init() { int[string] flags_type_init = [ "make_headings" : 0, "header_make" : 0, @@ -293,7 +293,7 @@ template SiSUrgxInitFlags() { } } template SiSUnode() { - string[string] node_metadata_heading_str() { + static string[string] node_metadata_heading_str() { auto _node = [ "is" : "", "ocn" : "", @@ -303,7 +303,7 @@ template SiSUnode() { ]; return _node; } - int[string] node_metadata_heading_int() { + static int[string] node_metadata_heading_int() { auto _node = [ "ocn" : 0, // decide whether to use or keep? "ptr_doc_object" : 0, @@ -316,7 +316,7 @@ template SiSUnode() { ]; return _node; } - string[string] node_metadata_para_str() { + static string[string] node_metadata_para_str() { auto _node = [ "is" : "", "ocn" : "", @@ -324,7 +324,7 @@ template SiSUnode() { ]; return _node; } - int[string] node_metadata_para_int() { + static int[string] node_metadata_para_int() { auto _node = [ "ocn" : 0, "indent_base" : 0, @@ -337,7 +337,7 @@ template SiSUnode() { template SiSUbiblio() { // required: deemed_author (author || editor); year; fulltitle; struct BibJsnStr { - auto biblio_entry_tags_jsonstr() { + static auto biblio_entry_tags_jsonstr() { string x = `{ "is" : "", "sortby_deemed_author_year_title" : "", @@ -372,7 +372,7 @@ template SiSUbiblio() { } } template InternalMarkup() { - struct InlineMarkup { + static struct InlineMarkup { auto en_a_o = "【"; auto en_a_c = "】"; auto en_b_o = "〖"; auto en_b_c = "〗"; auto lnk_o = "┥"; auto lnk_c = "┝"; @@ -391,11 +391,11 @@ template InternalMarkup() { auto tc_c = "┚"; auto tc_p = "┆"; auto mono = "■"; - string indent_by_spaces_provided(int indent, string _indent_spaces ="░░") { + static string indent_by_spaces_provided(int indent, string _indent_spaces ="░░") { _indent_spaces = replicate(_indent_spaces, indent); return _indent_spaces; } - string repeat_character_by_number_provided(C,N)(C _character ="-", N number=10) { + static string repeat_character_by_number_provided(C,N)(C _character ="-", N number=10) { _character = replicate(_character, number); return _character; } @@ -404,7 +404,7 @@ template InternalMarkup() { template SiSUlanguageCodes() { /+ language codes +/ struct Lang { - string[string][string] codes() { + static string[string][string] codes() { auto _lang_codes = [ "am": [ "c": "am", "n": "Amharic", "t": "Amharic", "xlp": "amharic" ], "bg": [ "c": "bg", "n": "Bulgarian", "t": "Български (Bəlgarski)", "xlp": "bulgarian" ], @@ -471,18 +471,18 @@ template SiSUlanguageCodes() { ]; return _lang_codes; } - string[] code_arr_ptr() { + static string[] code_arr_ptr() { auto _lang_codes = ["am", "bg", "bn", "br", "ca", "cs", "cy", "da", "de", "el", "en", "eo", "es", "et", "eu", "fi", "fr", "ga", "gl", "he", "hi", "hr", "hy", "ia", "is", "it", "ja", "ko", "la", "lo", "lt", "lv", "ml", "mr", "nl", "no", "nn", "oc", "pl", "pt", "pt_BR", "ro", "ru", "sa", "se", "sk", "sl", "sq", "sr", "sv", "ta", "te", "th", "tk", "tr", "uk", "ur", "us", "vi", "zh", "en", "xx",]; return _lang_codes; } - string[] code_arr() { + static string[] code_arr() { auto _lang_codes = ["am", "bg", "bn", "br", "ca", "cs", "cy", "da", "de", "el", "en", "eo", "es", "et", "eu", "fi", "fr", "ga", "gl", "he", "hi", "hr", "hy", "ia", "is", "it", "ja", "ko", "la", "lo", "lt", "lv", "ml", "mr", "nl", "no", "nn", "oc", "pl", "pt", "pt_BR", "ro", "ru", "sa", "se", "sk", "sl", "sq", "sr", "sv", "ta", "te", "th", "tk", "tr", "uk", "ur", "vi", "zh"]; return _lang_codes; } - auto codes_() { + static auto codes_() { return "(" ~ join(code_arr,"|") ~ ")"; } - auto codes_regex() { + static auto codes_regex() { return regex(codes_); } } diff --git a/src/sdp/meta/doc_debugs.d b/src/sdp/meta/doc_debugs.d index 6d94b05..19cd4b1 100644 --- a/src/sdp/meta/doc_debugs.d +++ b/src/sdp/meta/doc_debugs.d @@ -28,7 +28,7 @@ template SiSUdebugs() { ) { mixin SiSUrgxInit; mixin InternalMarkup; - auto rgx = Rgx(); + static auto rgx = Rgx(); auto markup = InlineMarkup(); string key; debug(parent) { diff --git a/src/sdp/meta/metadoc.d b/src/sdp/meta/metadoc.d index 4174b67..243da9d 100644 --- a/src/sdp/meta/metadoc.d +++ b/src/sdp/meta/metadoc.d @@ -29,7 +29,7 @@ template SiSUabstraction() { enum headBody { header, body_content, insert_filelist } enum makeMeta { make, meta } enum docAbst { doc_abstraction, section_keys, segnames, segnames_0_4, images } - auto rgx = Rgx(); + static auto rgx = Rgx(); auto SiSUabstraction(Fn,O,E)(Fn fn_src, O opts, E env){ auto sdl_root_config_share = configRead!()("config_local", env); auto sdl_root_config_local = configRead!()("config_share", env); diff --git a/src/sdp/meta/metadoc_from_src.d b/src/sdp/meta/metadoc_from_src.d index 0484cae..ebcfe71 100644 --- a/src/sdp/meta/metadoc_from_src.d +++ b/src/sdp/meta/metadoc_from_src.d @@ -1,7 +1,7 @@ /++ document abstraction: abstraction of sisu markup for downstream processing - meta_metadoc_from_src.d + metadoc_from_src.d +/ module sdp.meta.metadoc_from_src; template SiSUdocAbstraction() { @@ -64,8 +64,8 @@ template SiSUdocAbstraction() { int[string] indent; bool bullet = true; string content_non_header = "8"; - auto obj_im = ObjInlineMarkup(); - auto obj_att = ObjAttributes(); + static auto obj_im = ObjInlineMarkup(); + static auto obj_att = ObjAttributes(); /+ ocn +/ int obj_cite_number, obj_cite_number_; auto object_citation_number = OCNemitter(); @@ -232,7 +232,7 @@ template SiSUdocAbstraction() { Meta dochead_meta_aa, Opt opt_action, ) { - auto rgx = Rgx(); + static auto rgx = Rgx(); debug(asserts) { static assert(is(typeof(markup_sourcefile_content) == char[][])); static assert(is(typeof(dochead_make_aa) == string[string][string])); @@ -341,8 +341,8 @@ template SiSUdocAbstraction() { "seg": [toc_head], "scroll": [toc_head], ]; - auto mkup = InlineMarkup(); - auto munge = ObjInlineMarkupMunge(); + static auto mkup = InlineMarkup(); + static auto munge = ObjInlineMarkupMunge(); auto note_section = NotesSection(); auto bookindex_extract_hash = BookIndexNuggetHash(); string[][string] lev4_subtoc; @@ -380,7 +380,7 @@ template SiSUdocAbstraction() { } } if (!line.empty) { - _check_ocn_status_(line, type); + type = _check_ocn_status_(line, type); } if (type["code"] == TriState.on) { /+ block object: code +/ @@ -1715,7 +1715,7 @@ template SiSUdocAbstraction() { /+ post loop markup document/text ↑ +/ } /+ ← closed: abstract doc source +/ /+ ↓ abstraction functions +/ - auto object_reset(O)(ref O an_object) { + static auto object_reset(O)(O an_object) { debug(asserts) { static assert(is(typeof(an_object) == string[string])); } @@ -1724,6 +1724,7 @@ template SiSUdocAbstraction() { an_object.remove("is"); an_object.remove("attrib"); an_object.remove("bookindex_nugget"); + return an_object; } auto _common_reset_(L,O,T)( return ref L line_occur, @@ -1739,17 +1740,17 @@ template SiSUdocAbstraction() { line_occur["para"] = State.off; type["heading"] = State.off; type["para"] = State.off; - object_reset(an_object); + an_object = object_reset(an_object); } - void _check_ocn_status_(L,T)( + static auto _check_ocn_status_(L,T)( L line, - return ref T type + T type ) { debug(asserts) { static assert(is(typeof(line) == char[])); static assert(is(typeof(type) == int[string])); } - auto rgx = Rgx(); + static auto rgx = Rgx(); if ((!line.empty) && (type["ocn_status_multi_obj"] == TriState.off)) { /+ not multi-line object, check whether obj_cite_number is on or turned off +/ if (line.matchFirst(rgx.obj_cite_number_block_marks)) { @@ -1789,6 +1790,7 @@ template SiSUdocAbstraction() { } } } + return type; } void _start_block_(L,T,N)( L line, @@ -1800,7 +1802,7 @@ template SiSUdocAbstraction() { static assert(is(typeof(type) == int[string])); static assert(is(typeof(obj_cite_number_poem) == string[string])); } - auto rgx = Rgx(); + static auto rgx = Rgx(); string code_block_syntax = ""; bool code_block_numbered = false; if (auto m = line.matchFirst(rgx.block_curly_code_open)) { @@ -1967,7 +1969,7 @@ template SiSUdocAbstraction() { static assert(is(typeof(an_object) == string[string])); static assert(is(typeof(type) == int[string])); } - auto rgx = Rgx(); + static auto rgx = Rgx(); if (type["curly_quote"] == TriState.on) { if (line.matchFirst(rgx.block_curly_quote_close)) { debug(quote) { // quote (curly) close @@ -2010,7 +2012,7 @@ template SiSUdocAbstraction() { static assert(is(typeof(an_object) == string[string])); static assert(is(typeof(type) == int[string])); } - auto rgx = Rgx(); + static auto rgx = Rgx(); if (type["curly_group"] == State.on) { if (line.matchFirst(rgx.block_curly_group_close)) { debug(group) { @@ -2053,7 +2055,7 @@ template SiSUdocAbstraction() { static assert(is(typeof(an_object) == string[string])); static assert(is(typeof(type) == int[string])); } - auto rgx = Rgx(); + static auto rgx = Rgx(); if (type["curly_block"] == TriState.on) { if (line.matchFirst(rgx.block_curly_block_close)) { debug(block) { // block (curly) close @@ -2102,7 +2104,7 @@ template SiSUdocAbstraction() { static assert(is(typeof(obj_cite_number_poem) == string[string])); static assert(is(typeof(dochead_make_aa) == string[string][string])); } - auto rgx = Rgx(); + static auto rgx = Rgx(); if (type["curly_poem"] == TriState.on) { if (line.matchFirst(rgx.block_curly_poem_close)) { if (an_object_key in an_object @@ -2315,7 +2317,7 @@ template SiSUdocAbstraction() { static assert(is(typeof(an_object) == string[string])); static assert(is(typeof(type) == int[string])); } - auto rgx = Rgx(); + static auto rgx = Rgx(); if (type["curly_code"] == TriState.on) { if (line.matchFirst(rgx.block_curly_code_close)) { debug(code) { // code (curly) close @@ -2363,7 +2365,7 @@ template SiSUdocAbstraction() { static assert(is(typeof(an_object) == string[string])); static assert(is(typeof(type) == int[string])); } - auto rgx = Rgx(); + static auto rgx = Rgx(); if (type["curly_table"] == TriState.on) { if (line.matchFirst(rgx.block_curly_table_close)) { debug(table) { // table (curly) close @@ -2446,7 +2448,7 @@ template SiSUdocAbstraction() { ) { mixin SiSUbiblio; auto jsn = BibJsnStr(); - auto rgx = Rgx(); + static auto rgx = Rgx(); if (line.matchFirst(rgx.heading_biblio)) { type["biblio_section"] = TriState.on; type["blurb_section"] = State.off; @@ -2862,7 +2864,7 @@ template SiSUdocAbstraction() { static assert(is(typeof(type) == int[string])); static assert(is(typeof(opt_action) == bool[string])); } - auto rgx = Rgx(); + static auto rgx = Rgx(); if (auto m = line.match(rgx.book_index)) { /+ match book_index +/ debug(bookindexmatch) { // book index @@ -2921,7 +2923,7 @@ template SiSUdocAbstraction() { static assert(is(typeof(heading_match_rgx) == Regex!(char)[string])); static assert(is(typeof(type) == int[string])); } - auto rgx = Rgx(); + static auto rgx = Rgx(); if ((dochead_make_identify_unmarked_headings.length > 2) && (type["make_headings"] == State.off)) { /+ headings found +/ @@ -3081,7 +3083,7 @@ template SiSUdocAbstraction() { static assert(is(typeof(type) == int[string])); static assert(is(typeof(dochead_meta_aa) == string[string][string])); } - auto rgx = Rgx(); + static auto rgx = Rgx(); if (auto m = line.match(rgx.heading)) { /+ heading match +/ type["heading"] = State.on; @@ -3234,7 +3236,7 @@ template SiSUdocAbstraction() { static assert(is(typeof(type) == int[string])); static assert(is(typeof(line_occur) == int[string])); } - auto rgx = Rgx(); + static auto rgx = Rgx(); if (line_occur["para"] == State.off) { line = font_faces_line(line); /+ para matches +/ @@ -3278,9 +3280,9 @@ template SiSUdocAbstraction() { } } auto font_faces_line(T)( - return ref T textline, + T textline, ) { - auto rgx = Rgx(); + static auto rgx = Rgx(); if (textline.match(rgx.inline_faces_line)) { textline = (textline) .replaceFirst(rgx.inline_emphasis_line, ("*{$1}*$2")) @@ -3294,7 +3296,7 @@ template SiSUdocAbstraction() { return ref O table_object, return ref H table_head, ) { - auto rgx = Rgx(); + static auto rgx = Rgx(); table_object.use = "body"; table_object.is_of = "block"; table_object.is_a = "table"; @@ -3316,8 +3318,8 @@ template SiSUdocAbstraction() { return ref O table_object, return ref T table_array, ) { - auto rgx = Rgx(); - auto mng = InlineMarkup(); + static auto rgx = Rgx(); + static auto mng = InlineMarkup(); string _table_substantive; ulong col_num; ulong col_num_; @@ -3440,8 +3442,8 @@ template SiSUdocAbstraction() { return ref O table_object, return ref T table_array, ) { - auto rgx = Rgx(); - auto mng = InlineMarkup(); + static auto rgx = Rgx(); + static auto mng = InlineMarkup(); string _table_substantive; foreach(row; table_array) { foreach(col; row) { @@ -3459,8 +3461,8 @@ template SiSUdocAbstraction() { return ref O table_object, return ref T table_substantive, ) { - auto rgx = Rgx(); - auto munge = ObjInlineMarkupMunge(); + static auto rgx = Rgx(); + static auto munge = ObjInlineMarkupMunge(); string[] _table_rows = (table_substantive).split(rgx.table_row_delimiter); string[] _table_cols; string[][] _table; @@ -3475,8 +3477,8 @@ template SiSUdocAbstraction() { return ref O table_object, return ref T table_substantive, ) { - auto rgx = Rgx(); - auto munge = ObjInlineMarkupMunge(); + static auto rgx = Rgx(); + static auto munge = ObjInlineMarkupMunge(); string[] _table_rows = (table_substantive).split(rgx.table_row_delimiter_special); string[] _table_cols; string[][] _table; @@ -3508,13 +3510,13 @@ template SiSUdocAbstraction() { } } /+ +/ - struct ObjInlineMarkupMunge { + static struct ObjInlineMarkupMunge { string[string] obj_txt; int n_foot, n_foot_reg, n_foot_sp_asterisk, n_foot_sp_plus; string asterisks_; string obj_txt_out, tail, note; - auto rgx = Rgx(); - auto mkup = InlineMarkup(); + static auto rgx = Rgx(); + static auto mkup = InlineMarkup(); int stage_reset_note_numbers = true; private auto initialize_note_numbers() { n_foot = 0; @@ -3522,11 +3524,11 @@ template SiSUdocAbstraction() { n_foot_sp_asterisk = 0; n_foot_sp_plus = 0; } - string url_links(Ot)(Ot obj_txt_in) { + static string url_links(Ot)(Ot obj_txt_in) { debug(asserts) { static assert(is(typeof(obj_txt_in) == string)); } - auto mng = InlineMarkup(); + static auto mng = InlineMarkup(); obj_txt_in = obj_txt_in.replaceAll(rgx.inline_mono, (mng.mono ~ "{$1}" ~ mng.mono)); /+ url matched +/ if (obj_txt_in.match(rgx.inline_url_generic)) { @@ -3815,9 +3817,9 @@ template SiSUdocAbstraction() { invariant() { } } - struct ObjInlineMarkup { - auto rgx = Rgx(); - auto munge = ObjInlineMarkupMunge(); + static struct ObjInlineMarkup { + static auto rgx = Rgx(); + static auto munge = ObjInlineMarkupMunge(); string[string] obj_txt; auto obj_inline_markup_and_anchor_tags_and_misc(O,K,Ma)( O obj_, @@ -3936,7 +3938,7 @@ template SiSUdocAbstraction() { body { ObjGenericComposite comp_obj_toc; mixin InternalMarkup; - auto mkup = InlineMarkup(); + static auto mkup = InlineMarkup(); char[] heading_toc_ = (obj_["substantive"].dup.strip.to!(char[])).replaceAll(rgx.inline_notes_al, ""); heading_toc_ = _clean_heading_toc_(heading_toc_); auto attrib=""; @@ -4571,7 +4573,7 @@ template SiSUdocAbstraction() { } } body { - auto rgx = Rgx(); + static auto rgx = Rgx(); if (!bookindex_section.empty) { auto bi_main_terms_split_arr = bookindex_section.split(rgx.bi_main_terms_split); @@ -4655,8 +4657,8 @@ template SiSUdocAbstraction() { } struct BookIndexReportSection { int mkn, skn; - auto rgx = Rgx(); - auto munge = ObjInlineMarkupMunge(); + static auto rgx = Rgx(); + static auto munge = ObjInlineMarkupMunge(); auto bookindex_write_section(BI)( BI bookindex_unordered_hashes ) { @@ -4698,7 +4700,7 @@ template SiSUdocAbstraction() { } mixin SiSUnode; mixin InternalMarkup; - auto mkup = InlineMarkup(); + static auto mkup = InlineMarkup(); string type_is; string lev; int heading_lev_markup, heading_lev_collapsed; @@ -4849,7 +4851,7 @@ template SiSUdocAbstraction() { string[string] object_notes; int previous_count; int mkn; - auto rgx = Rgx(); + static auto rgx = Rgx(); private auto gather_notes_for_endnote_section( ObjGenericComposite[] contents_am, string segment_anchor_tag_that_object_belongs_to, @@ -4871,8 +4873,8 @@ template SiSUdocAbstraction() { } body { mixin InternalMarkup; - auto mkup = InlineMarkup(); - auto munge = ObjInlineMarkupMunge(); + static auto mkup = InlineMarkup(); + static auto munge = ObjInlineMarkupMunge(); foreach( m; (contents_am[cntr].text).matchAll( @@ -5115,7 +5117,7 @@ template SiSUdocAbstraction() { int lv, lv0, lv1, lv2, lv3, lv4, lv5, lv6, lv7; int obj_cite_number; int[string] p_; // p_ parent_ - auto rgx = Rgx(); + static auto rgx = Rgx(); ObjGenericComposite node_location_emitter(Lv,Ta,N,C,P,I)( Lv lev_markup_number, Ta segment_anchor_tag, diff --git a/src/sdp/meta/read_source_files.d b/src/sdp/meta/read_source_files.d index 60f0777..482b587 100644 --- a/src/sdp/meta/read_source_files.d +++ b/src/sdp/meta/read_source_files.d @@ -12,7 +12,7 @@ template SiSUrawMarkupContent() { std.file, std.path; mixin SiSUrgxInit; - auto rgx = Rgx(); + static auto rgx = Rgx(); auto rawsrc = RawMarkupContent(); auto SiSUrawMarkupContent(Fn)(Fn fn_src) { auto _0_header_1_body_content_2_insert_filelist_tuple = @@ -93,7 +93,7 @@ template SiSUrawMarkupContent() { return source_line_arr; } auto markupSourceReadIn(in string fn_src) { - auto rgx = Rgx(); + static auto rgx = Rgx(); enforce( fn_src.match(rgx.src_pth), "not a sisu markup filename" diff --git a/src/sdp/meta/rgx.d b/src/sdp/meta/rgx.d index 854e9cc..135f923 100644 --- a/src/sdp/meta/rgx.d +++ b/src/sdp/meta/rgx.d @@ -2,9 +2,9 @@ regex: regular expressions used in sisu document parser +/ module sdp.meta.rgx; -template SiSUrgxInit() { +static template SiSUrgxInit() { import sdp.meta.defaults; - struct Rgx { + static struct Rgx { /+ misc +/ static true_dollar = ctRegex!(`\$`, "gm"); static flag_action = ctRegex!(`^(--[a-z][a-z0-9-]+)$`); @@ -38,8 +38,8 @@ template SiSUrgxInit() { static comment = ctRegex!(`^%+ `); static comments = ctRegex!(`^%+ |^%+$`); /+ header +/ - static make_simple_substitutions_rb = ctRegex!(`(?P<substitution>/(?P<match>.+?)/,[ ]*['"](?P<replace>.+?)['"])`); - static make_simple_substitutions_d = ctRegex!(`(?P<substitution>``(?P<match>.+?)``,[ ]*['"](?P<replace>.+?)['"])`); + static make_simple_substitutions_rb = ctRegex!(`(?P<substitution>/(?P<match>.+?)/,[ ]*['"](?P<replace>.+?)['"])`); + static make_simple_substitutions_d = ctRegex!(`(?P<substitution>``(?P<match>.+?)``,[ ]*['"](?P<replace>.+?)['"])`); /+ header +/ static main_headers = ctRegex!(`^(?:creator|title|rights|date|original|classify|identifier|notes|publisher|make|links)$`, "m"); |