summaryrefslogtreecommitdiff
path: root/clformat/data
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-09-16 22:01:43 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-09-16 22:01:43 -0300
commit941a5bcff34154cd8f236ec5b2348e4721242db1 (patch)
treea3aef17817ee17b7fee282507069e7bc4c4514e6 /clformat/data
parent3b0b96a00e667a50c1135f88e9b72d68af2474cc (diff)
More module refactoring
Diffstat (limited to 'clformat/data')
-rw-r--r--clformat/data/formats.sprop42
1 files changed, 42 insertions, 0 deletions
diff --git a/clformat/data/formats.sprop b/clformat/data/formats.sprop
new file mode 100644
index 0000000..c44ab51
--- /dev/null
+++ b/clformat/data/formats.sprop
@@ -0,0 +1,42 @@
+######################################
+# 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 #
+clFormatPrefix (?:(?:[-+]?\d+|'.|[Vv]|#|%)?)
+
+## Match a format string modifier
+## A modifier is any combination of $, :, * and @; duplicates don't matter though
+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)*)