###################################### # CL format string regular expressions ###################################### ## Format a regular expression for matching a potential CL format directive ## Has two parts ## 1) The optional set of prefix parameters ## 2) The optional modifier ## Captures three things ## 1) The prefix parameters ## 2) The modifiers ## 3) The directive name ## 4) The function name, if the directive was a function call. clFormatDirective ~(?%1$s)?(?%2$s?)(?:%3$s) ## Matches a format string prefix parameter ## A prefix parameter is one of ## * A signed decimal number ## * A single character preceded by a single quote ## * The letter V (or v) ## * The character # ## * The character % ## * A double-quoted string clFormatPrefixParam (?:(?:[-+]?\d+|'.|[Vv]|#|%|".*?(?`*[\S&&[^/]])|(?:/(?[\S&&[^/]]+)/)) ################################################# # Generic format strings for regular expressions. ################################################# ## Format a regular expression for matching a delimiter separated list. ## Takes two parameters ## 1) The expression for each term ## 2) The expression for the delimiter delimSeparatedList (?:%1$s(?:%2$s%1$s)*)