diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2020-01-17 18:17:36 -0500 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2020-01-17 18:17:36 -0500 |
| commit | 41cd52328d32cc13cd046c4c6c4c0f4920f05efa (patch) | |
| tree | 35ccde6e3f76815e201d8c73c459f9c14dbaa292 /clformat/data/clformat.sprop | |
| parent | cb7be8155255fad01aaf5beebe7a0f793cff016b (diff) | |
Minor updates and such
Diffstat (limited to 'clformat/data/clformat.sprop')
| -rw-r--r-- | clformat/data/clformat.sprop | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/clformat/data/clformat.sprop b/clformat/data/clformat.sprop new file mode 100644 index 0000000..ba1e83c --- /dev/null +++ b/clformat/data/clformat.sprop @@ -0,0 +1,57 @@ +###################################### +# 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 ~(?<params>%1$s)?(?<modifiers>%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]|#|%|".*?(?<!\\)")?) + +## Matches a (possibly named) format string prefix parameter +## +## Parameters are seperated by ',' +## +## Named parameters are indicated by a preceeding #, which is followed by a +## parameter name (any sequence of non-space, non-seperator (',', ':', ';') +## printing characters), a seperator (: or ;), then the value of the parameter +clFormatPrefix (?:(?:#[\S&&[^,:;]]+[:;]%1$s)|%1$s) + +## Match a format string modifier +## A modifier is any combination of the following characters +## * '$' * ':' +## * '*' * '@' +## +## Duplicates have no effect +clFormatModifier (?:[@$:*]+) + +## Matches a directive name. +## A directive name is either +## 1) A single, non-whitespace, non-/ character, optionally preceded by a grave +## 2) A name enclosed in /'s +clFormatName (?:(?<name>`?[\S&&[^/]])|(?:/(?<funcname>[\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)*) |
