summaryrefslogtreecommitdiff
path: root/base/data/formats.sprop
diff options
context:
space:
mode:
Diffstat (limited to 'base/data/formats.sprop')
-rw-r--r--base/data/formats.sprop160
1 files changed, 160 insertions, 0 deletions
diff --git a/base/data/formats.sprop b/base/data/formats.sprop
new file mode 100644
index 0000000..72f6e74
--- /dev/null
+++ b/base/data/formats.sprop
@@ -0,0 +1,160 @@
+# File storage for format strings
+
+#################################################
+# 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)*)
+
+######################################
+# 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)
+
+####################################################
+# Format strings for handling double-quoted strings.
+####################################################
+
+## Format the three types of string escapes into a valid pattern.
+## The three types are:
+## 1) Short escapes.
+## 2) Octal escapes.
+## 3) Unicode escapes.
+stringEscape \\(%1$s|%2$s|%3$s)
+
+## Format the parts of a regex into one that matches java-style double-quoted strings.
+## The parts are:
+## 1) Anything that's not a possible escape sequence or quote.
+## 2) A possible escape sequence.
+doubleQuotes ("(%1$s|%2$s)*")
+
+#####################################
+# Format strings for handling doubles
+#####################################
+
+## Format a floating point exponent regex.
+## The parts are:
+## 1) Exponent indicator,
+## 2) One or more digits.
+fpExponent %1$s%2$s
+
+## Format a decimal number with an integer part.
+## The parts are:
+## 1) A series of decimal digits
+## 2) An exponent.
+##
+## The number format is:
+## 1) An integer part
+## 2) An optional dot
+## 3) An optional decimal part
+## 4) An optional exponent
+fpDecimalInteger (?:%1$s(?:\.?)(?:%1$s?)(?:%2$s)?)
+
+## Format a decimal number with no integer part.
+## The parts are:
+## 1) A series of decimal digits
+## 2) An exponent.
+##
+## The number format is:
+## 1) A dot
+## 2) A decimal part
+## 3) An optional exponent
+fpDecimalDecimal (?:\.(?:%1$s)(?:%2$s)?)
+
+## Format a hexadecimal number with no decimal part.
+## The parts are:
+## 1) A series of hex digits
+##
+## The number format is:
+## 1) A hex leader.
+## 2) A series of hex digits.
+## 3) An optional dot.
+fpHexInteger (?:0[xX]%1$s(?:\.)?)
+
+## Format a hexadecimal number with a decimal part
+## The parts are:
+## 1) A series of hex digits.
+##
+## The number format is:
+## 1) A hex leader.
+## 2) A optional series of hex digits.
+## 3) A dot.
+## 4) A series of hex digits.
+fpHexDecimal (?:0[xX]%1$s?(?:\.)%1$s)
+
+## Format a hexadecimal leader before a prefix.
+## The parts are:
+## 1) A hex number with no decimal part
+## 2) A hex number with a decimal part
+fpHexLeader (?:%1$s|%2$s)
+
+## Format a hexadecimal floating point number.
+## The parts are:
+## 1) A hexadecimal leader.
+## 2) A series of decimal digits.
+##
+## The number format is:
+## 1) A hexadecimal leader.
+## 2) A exponent indicator.
+## 3) An optional sign.
+## 4) A series of decimal digits.
+fpHexString (?:%1$s[pP][+-]?%2$s)
+
+## Format the number part of a double.
+## The parts are:
+## 1) A decimal double with an integer part.
+## 2) A decimal double without an integer part.
+## 3) A hexadecimal double.
+fpNumber (?:%1$s|%2$s|%3$s)
+
+## Format a floating point leader.
+##
+## NOTE: The other parts are completed by where we're inserted.
+
+## Format a double
+## The parts are:
+## 1) A leader
+## 2) A number
+##
+## NOTE: The parens are not mismatched.
+## The other one is contributed by the leader.
+fpDouble %1$s(?:%2$s[fFdD]?))[\x00-\x20]*
+
+#########################################
+# Format strings for handling delimiters.
+#########################################
+
+## Format a raw delimiter
+## The parts are
+## 1) A regular expression
+##
+## This matches just the provided regular expression.
+rawDelim (?:%1$s)|
+
+## Format a repeating delimiter
+## The parts are
+## 1) A string.
+##
+## This matches one or more occurances of the provided string as a literal.
+multipleDelim (?:\Q%1$s\E)+|
+
+## Format a simple delimiter
+## The parts are
+## 1) A string.
+##
+## This matches one occurrence of the provided string as a literal.
+simpleDelim (?:\Q%1$s\E)|