aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sdp/ao_rgx.d
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sdp/ao_rgx.d')
-rw-r--r--lib/sdp/ao_rgx.d84
1 files changed, 22 insertions, 62 deletions
diff --git a/lib/sdp/ao_rgx.d b/lib/sdp/ao_rgx.d
index d8df52c..21101b5 100644
--- a/lib/sdp/ao_rgx.d
+++ b/lib/sdp/ao_rgx.d
@@ -1,12 +1,10 @@
/*
-#+OPTIONS: ^:nil _:nil#+OPTIONS: ^:nil _:nil
-* sisu_rgx.d
+ regex
+ ao_rgx.d
*/
mixin template RgxInit() {
-/*
-** misc
-*/
class Rgx {
+ /* misc */
static flag_action = ctRegex!(`^(--[a-z][a-z0-9-]+)$`);
static flag_action_str = ctRegex!(` (--[a-z][a-z0-9-]+)`);
static src_pth = ctRegex!(`^([a-zA-Z0-9._-]+/)*([a-zA-Z0-9._-]+[.]ss[tm])$`);
@@ -27,13 +25,9 @@ mixin template RgxInit() {
static levels_markup = ctRegex!(`^[A-D1-4]$`);
static levels_numbered = ctRegex!(`^[0-9]$`);
static levels_numbered_headings = ctRegex!(`^[0-7]$`);
-/*
-** insert markup file
-*/
+ /* insert markup file */
static insert_src_fn_ssi_or_sst = ctRegex!(`^<<\s*(?P<path>[a-zA-Z0-9._-]+/)*(?P<filename>[a-zA-Z0-9._-]+[.]ss[ti])$`);
-/*
-** header & comments
-*/
+ /* header & comments */
static comment = ctRegex!(`^%+ `);
static header = ctRegex!(`^@([a-z_]+):(?:\s|$)`);
static header_make = ctRegex!(`^@(make):(?:\s|$)`);
@@ -41,9 +35,7 @@ mixin template RgxInit() {
static header_sub = ctRegex!(`^[ ]+:([a-z_]+):\s`);
static head_main = ctRegex!(`^@([a-z_]+):\s*(.*)`, "m");
static head_sub = ctRegex!(`^[ ]*:([a-z_]+):\s+(.+)`, "m");
-/*
-** heading & paragraph operators
-*/
+ /* heading & paragraph operators */
static heading = ctRegex!(`^:?([A-D1-4])[~]([a-z0-9_.-]*[?]?) `);
static heading_marker = ctRegex!(`^:?([A-D1-4])[~]`);
static heading_title = ctRegex!(`^:?[A-D1-4][~][a-z0-9_.-]*[?]?\s+(.+?)$`);
@@ -55,9 +47,7 @@ mixin template RgxInit() {
static para_indent = ctRegex!(`^_([1-9]) `);
static para_indent_hang = ctRegex!(`^_([0-9])_([0-9]) `);
static para_attribs = ctRegex!(`^_(([0-9])(_([0-9]))?|_([1-9])?[*]) `);
-/*
-** blocked markup tics
-*/
+ /* blocked markup tics */
static block_tic_code_open = ctRegex!("^`{3} (code)");
static block_tic_poem_open = ctRegex!("^`{3} (poem)");
static block_tic_group_open = ctRegex!("^`{3} (group)");
@@ -65,9 +55,7 @@ mixin template RgxInit() {
static block_tic_quote_open = ctRegex!("^`{3} (quote)");
static block_tic_table_open = ctRegex!("^`{3} (table)");
static block_tic_close = ctRegex!("^(`{3})$","m");
-/*
-** blocked markup curly
-*/
+ /* blocked markup curly */
static block_curly_code_open = ctRegex!(`^(code[{].*?$)`);
static block_curly_code_close = ctRegex!(`^([}]code)`);
static block_curly_poem_open = ctRegex!(`^(poem[{].*?$)`);
@@ -80,9 +68,7 @@ mixin template RgxInit() {
static block_curly_quote_close = ctRegex!(`^([}]quote)`);
static block_curly_table_open = ctRegex!(`^(table[{].*?$)`);
static block_curly_table_close = ctRegex!(`^([}]table)`);
-/*
-** inline markup font face mod
-*/
+ /* inline markup font face mod */
static inline_emphasis = ctRegex!(`\*\{(?P<text>.+?)\}\*`);
static inline_bold = ctRegex!(`!\{(?P<text>.+?)\}!`);
static inline_italics = ctRegex!(`/\{(?P<text>.+?)\}/`);
@@ -91,9 +77,7 @@ mixin template RgxInit() {
static inline_strike = ctRegex!(`-\{(?P<text>.+?)\}-`);
static inline_insert = ctRegex!(`\+\{(?P<text>.+?)\}\+`);
static inline_mono = ctRegex!(`#\{(?P<text>.+?)\}#`);
-/*
-** inline markup footnotes
-*/
+ /* inline markup footnotes */
static true_dollar = ctRegex!(`\$`, "gm");
static inline_notes_al = ctRegex!(`【(?:[*+]\s+|\s*)(.+?)】`, "mg");
static inline_notes_al_gen = ctRegex!(`【.+?】`, "m");
@@ -104,10 +88,8 @@ mixin template RgxInit() {
static inline_al_delimiter_open_and_close_regular = ctRegex!(`【|】`, "m");
static inline_notes_delimiter_al_regular = ctRegex!(`【(.+?)】`, "m");
static inline_notes_delimiter_al_regular_number_note = ctRegex!(`【(\d+)\s+(.+?)】`, "m");
-
static inline_al_delimiter_open_asterisk = ctRegex!(`【\*`, "m");
static inline_al_delimiter_open_plus = ctRegex!(`【\+`, "m");
-
static inline_curly_delimiter_open_regular = ctRegex!(`~\{\s*`, "m");
static inline_curly_delimiter_close_regular = ctRegex!(`\s*\}~`, "m");
static inline_curly_delimiter_open_and_close_regular = ctRegex!(`~\{\s*|\s*\}~`, "m");
@@ -122,47 +104,34 @@ mixin template RgxInit() {
static inline_text_and_note_square_sp = ctRegex!(`(.+?)~\[[*+]+\s+(.+?)\]~`, "mg");
static inline_text_and_note_square = ctRegex!(`(.+?)~\[\s*(.+?)\]~`, "mg");
static inline_note_square_delimiters = ctRegex!(`(~\[\s*)(.+?)(\]~)`, "mg");
-/*
-** inline markup book index
-*/
+ /* inline markup book index */
static book_index = ctRegex!(`^=\{\s*(.+?)\}$`, "m");
static book_index_open = ctRegex!(`^=\{\s*([^}]+?)$`);
static book_index_close = ctRegex!(`^(.*?)\}$`, "m"); // strip
-/*
-** no ocn object
-*/
+ /* no ocn object */
static ocn_off = ctRegex!(`~#$`, "m");
static ocn_off_dh = ctRegex!(`-#$`, "m");
static ocn_off_all = ctRegex!(`[~-]#$`, "m");
-/*
-** no ocn block
-*/
+ /* no ocn block */
static ocn_off_block = ctRegex!(`^--~#$`);
static ocn_off_block_dh = ctRegex!(`^---#$`);
static ocn_off_block_close = ctRegex!(`^--\+#$`);
+ // static auto_ocn_ignore = ctRegex!(`^[+~*$-]{3,}$`); // reminder
static ocn_block_marks = ctRegex!(`^--[+~-]#$`);
-/*
-** ignore outside code blocks
-*/
+ /* ignore outside code blocks */
static regular_parse_skip = ctRegex!(`^(--[+~-]#|-[\\]{2}-|=[.\\]{2}=)$`); // not structural info
-/*
-** line& page breaks
-*/
+ /* line & page breaks */
static break_line_within_object = ctRegex!(`[\\]{2}( |$)`);
-// static break_line_break_within_object = ctRegex!(`( |^)[\\]{2}( |$)`);
+ // static break_line_break_within_object = ctRegex!(`( |^)[\\]{2}( |$)`);
static break_page = ctRegex!(`^-[\\]{2}-$`);
static break_page_new = ctRegex!(`^=[\\]{2}=$`);
static break_page_line_across = ctRegex!(`^=[.]{2}=$`);
static break_string = ctRegex!(`』`);
-// ancestry, parent
+ // ancestry, parent
static parent = ctRegex!(`([0-7]):([0-9]+)`);
-/*
-** json
-*/
+ /* json */
static tailing_comma = ctRegex!(`,$`, "m");
-/*
-** head
-*/
+ /* head */
static main_headers = ctRegex!(`^(?:creator|title|rights|date|original|classify|identifier|notes|publisher|make|links)$`, "m");
static subhead_creator = ctRegex!(`^(?:author|translator|illustrator)$`, "m");
static subhead_title = ctRegex!(`^(?:main|sub(?:title)?|full|language|edition|note)$`, "m");
@@ -174,22 +143,13 @@ mixin template RgxInit() {
static subhead_notes = ctRegex!(`^(?:abstract|description)$`, "m");
static subhead_publisher = ctRegex!(`^(?:name)$`, "m");
static subhead_make = ctRegex!(`^(?:cover_image|home_button_image|home_button_text|footer|headings|num_top|breaks|substitute|bold|italics|emphasis|texpdf_font|css)$`, "m");
-/*
-** biblio tags
-*/
+ /* biblio tags */
static biblio_tags = ctRegex!(`^(is|au|author_raw|author|author_arr|editor_raw|ed|editor_arr|ti|title|subtitle|fulltitle|lng|language|trans|src|jo|journal|in|vol|volume|edn|edition|yr|year|pl|place|pb|pub|publisher|url|pg|pages|note|short_name|id):\s+(.+)`);
static biblio_abbreviations = ctRegex!(`^(au|ed|ti|lng|jo|vol|edn|yr|pl|pb|pub|pg|pgs|sn)$`);
-/*
-** bookindex split
-*/
+ /* bookindex split */
static bi_main_terms_split = ctRegex!(`\s*;\s*`);
static bi_main_term_plus_rest_split = ctRegex!(`\s*:\s*`);
static bi_sub_terms_plus_ocn_offset_split = ctRegex!(`\s*\|\s*`);
static bi_term_and_ocns_match = ctRegex!(`^(.+?)\+(\d+)`);
-/*
-* url matching http://url.is/got and { text }http://url.is/got
-* image matching
-* header substitution & bold & italics lists
-*/
}
}