summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/funcutils
diff options
context:
space:
mode:
authorbjculkin <bjculkin@mix.wvu.edu>2018-03-01 19:12:12 -0500
committerbjculkin <bjculkin@mix.wvu.edu>2018-03-01 19:12:12 -0500
commit6cbb03d653aeb12f9d33b2ab75383f5b506cb912 (patch)
tree68cdbb5b45e52ea7ce1f20d3c5a777fb1cbb8101 /base/src/main/java/bjc/utils/funcutils
parent10beb8e502ec8cbb02162a09da2d826ea2a1b1fc (diff)
Update
Diffstat (limited to 'base/src/main/java/bjc/utils/funcutils')
-rw-r--r--base/src/main/java/bjc/utils/funcutils/StringUtils.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/base/src/main/java/bjc/utils/funcutils/StringUtils.java b/base/src/main/java/bjc/utils/funcutils/StringUtils.java
index 0080dd1..1d0b060 100644
--- a/base/src/main/java/bjc/utils/funcutils/StringUtils.java
+++ b/base/src/main/java/bjc/utils/funcutils/StringUtils.java
@@ -1,9 +1,14 @@
package bjc.utils.funcutils;
+import java.util.ArrayList;
import java.util.Deque;
+import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import bjc.utils.data.BooleanToggle;
+import bjc.utils.parserutils.TokenUtils;
+
import com.ibm.icu.text.BreakIterator;
/**
@@ -224,4 +229,29 @@ public class StringUtils {
return strang.substring(0, strang.indexOf(vx));
}
+
+ /**
+ * Split a line into a series of space-separated arguments, including
+ * string literals.
+ *
+ * @param com
+ * The command to split from
+ * @return The split arguments.
+ */
+ public static List<String> processArguments(String com) {
+ List<String> strings = new ArrayList<>();
+
+ BooleanToggle togg = new BooleanToggle();
+
+ for(String strang : TokenUtils.removeDQuotedStrings(com)) {
+ if(togg.get()) {
+ strings.add(TokenUtils.descapeString(strang));
+ } else {
+ for(String strung : strang.split("\\s+")) {
+ strings.add(strung);
+ }
+ }
+ }
+ return strings;
+ }
}