summaryrefslogtreecommitdiff
path: root/BJC-Utils2
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2017-09-15 10:57:43 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2017-09-15 10:57:43 -0300
commit2f93e24a217c3e9f8f2c4848c88f8229ef1fdc80 (patch)
tree926c3df16aba7b6b5b94d68ba8eaf3e0d320826a /BJC-Utils2
parent9db681f1d8dd83104409de202f44b94169ff896b (diff)
parentabe96dceeed6b0ffb0a132b15fbbe7942fec7f58 (diff)
Merge branch 'master' of ssh://10.65.77.3/home/bjculkin/git/bjc-utils2
Join discrete changes of the formatter.
Diffstat (limited to 'BJC-Utils2')
-rw-r--r--BJC-Utils2/data/formats.sprop3
-rw-r--r--BJC-Utils2/data/regexes.sprop5
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/ioutils/CLFormatter.java12
3 files changed, 18 insertions, 2 deletions
diff --git a/BJC-Utils2/data/formats.sprop b/BJC-Utils2/data/formats.sprop
index 73ebc29..72f6e74 100644
--- a/BJC-Utils2/data/formats.sprop
+++ b/BJC-Utils2/data/formats.sprop
@@ -22,7 +22,8 @@ delimSeparatedList (?:%1$s(?:%2$s%1$s)*)
## 1) The prefix parameters
## 2) The modifiers
## 3) The directive name
-clFormatDirective ~(?<params>%1$s)?(?<modifiers>%2$s?)(?<name>\S)
+## 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.
diff --git a/BJC-Utils2/data/regexes.sprop b/BJC-Utils2/data/regexes.sprop
index dadc09c..89c5b4f 100644
--- a/BJC-Utils2/data/regexes.sprop
+++ b/BJC-Utils2/data/regexes.sprop
@@ -50,6 +50,11 @@ clFormatPrefix (?:[-+]?\d+|'\S|[Vv]|#)
## A modifier is either : or @, or both in either order
clFormatModifier (?:@|:|@:|:@)
+## Matches a directive name.
+## A directive name is either
+## 1) A single, non-whitespace, non-/ character
+## 2) A name enclosed in /'s
+clFormatName (?:(?<name>[\S&&[^/]])|(?:/(?<funcname>[\S&&[^/]]+)/))
##############################################
# Miscellaneous validation regular expressions
##############################################
diff --git a/BJC-Utils2/src/main/java/bjc/utils/ioutils/CLFormatter.java b/BJC-Utils2/src/main/java/bjc/utils/ioutils/CLFormatter.java
index b61081b..ca9c32e 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/ioutils/CLFormatter.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/ioutils/CLFormatter.java
@@ -31,7 +31,9 @@ public class CLFormatter {
private static final String prefixList = applyFormat("delimSeparatedList", prefixParam, ",");
- private static final String formatDirective = applyFormat("clFormatDirective", prefixList, formatMod);
+ private static final String directiveName = getRegex("clFormatName");
+
+ private static final String formatDirective = applyFormat("clFormatDirective", prefixList, formatMod, directiveName);
private static final Pattern pFormatDirective = Pattern.compile(formatDirective);
private Map<String, Directive> extraDirectives;
@@ -58,6 +60,7 @@ public class CLFormatter {
dirMatcher.appendReplacement(sb, "");
String dirName = dirMatcher.group("name");
+ String dirFunc = dirMatcher.group("funcname");
String dirMods = dirMatcher.group("modifiers");
String dirParams = dirMatcher.group("params");
@@ -71,6 +74,13 @@ public class CLFormatter {
}
Object item = tParams.item();
+ if(dirName == null && dirFunc != null) {
+ /*
+ * @TODO implement user-called functions.
+ */
+ continue;
+ }
+
switch(dirName) {
case "A":
checkItem(item, 'A');