summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/examples/java/bjc/utils
diff options
context:
space:
mode:
authorbjculkin <bjculkin@mix.wvu.edu>2017-04-07 16:06:18 -0400
committerbjculkin <bjculkin@mix.wvu.edu>2017-04-07 16:06:18 -0400
commitf4baa925b0b5590bc8b12ba5f32e0218384c8efc (patch)
tree6c8f0eceaeaabc807e8cfd17e13bba86b8981970 /BJC-Utils2/src/examples/java/bjc/utils
parent7692fa077a84972231948354d3f0de99f27a9ad7 (diff)
Add simple toggle values
Diffstat (limited to 'BJC-Utils2/src/examples/java/bjc/utils')
-rw-r--r--BJC-Utils2/src/examples/java/bjc/utils/examples/DelimSplitterTest.java58
-rw-r--r--BJC-Utils2/src/examples/java/bjc/utils/examples/TreeConstructTest.java129
2 files changed, 15 insertions, 172 deletions
diff --git a/BJC-Utils2/src/examples/java/bjc/utils/examples/DelimSplitterTest.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/DelimSplitterTest.java
index 5f4ef92..8e2a98d 100644
--- a/BJC-Utils2/src/examples/java/bjc/utils/examples/DelimSplitterTest.java
+++ b/BJC-Utils2/src/examples/java/bjc/utils/examples/DelimSplitterTest.java
@@ -1,6 +1,8 @@
package bjc.utils.examples;
import bjc.utils.data.ITree;
+import bjc.utils.funcdata.FunctionalList;
+import bjc.utils.funcdata.IList;
import bjc.utils.funcutils.StringUtils;
import bjc.utils.parserutils.delims.DelimiterException;
import bjc.utils.parserutils.delims.DelimiterGroup;
@@ -8,7 +10,7 @@ import bjc.utils.parserutils.delims.RegexCloser;
import bjc.utils.parserutils.delims.RegexOpener;
import bjc.utils.parserutils.delims.SequenceDelimiter;
import bjc.utils.parserutils.delims.StringDelimiter;
-import bjc.utils.parserutils.splitter.SimpleTokenSplitter;
+import bjc.utils.parserutils.splitterv2.ConfigurableTokenSplitter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -28,7 +30,7 @@ import java.util.Scanner;
*
*/
public class DelimSplitterTest {
- private SimpleTokenSplitter split;
+ private ConfigurableTokenSplitter split;
private StringDelimiter dlm;
@@ -46,7 +48,7 @@ public class DelimSplitterTest {
groups = new HashMap<>();
- split = new SimpleTokenSplitter();
+ split = new ConfigurableTokenSplitter(true);
dlm = new StringDelimiter();
@@ -141,27 +143,21 @@ public class DelimSplitterTest {
}
break;
case "splitter-add":
- split.addDelimiter(argArray);
+ split.addSimpleDelimiters(argArray);
if(verbose) {
System.out.println("Added delimiters " + StringUtils.toEnglishList(argArray, true));
}
break;
case "splitter-addmulti":
- split.addMultiDelimiter(argArray);
+ split.addMultiDelimiters(argArray);
if(verbose) {
System.out.println(
"Added multi-delimiters " + StringUtils.toEnglishList(argArray, true));
}
break;
- case "splitter-addnon":
- split.addNonMatcher(argArray);
- if(verbose) {
- System.out.println("Added non-splitters " + StringUtils.toEnglishList(argArray, true));
- }
- break;
case "splitter-addmatch":
for(String arg : argArray) {
- split.addDelimiter(arg, mirrored.get(arg));
+ split.addSimpleDelimiters(arg, mirrored.get(arg));
}
if(verbose) {
System.out.println("Added matched delimiters "
@@ -172,7 +168,7 @@ public class DelimSplitterTest {
System.out.println(split.toString());
break;
case "splitter-reset":
- split = new SimpleTokenSplitter();
+ split = new ConfigurableTokenSplitter(true);
if(verbose) {
System.out.println("Reset splitter");
}
@@ -393,14 +389,14 @@ public class DelimSplitterTest {
for(int i = 0; i < argArray.length; i++) {
String arg = argArray[i];
- String[] res = split.split(arg);
+ IList<String> strangs = split.split(arg);
- System.out.printf("%d '%s' %s\n", i, arg, Arrays.deepToString(res));
+ System.out.printf("%d '%s' %s\n", i, arg, strangs);
}
}
private void handleTest(String inp, boolean splitWS) {
- String[] strings;
+ IList<String> strings;
try {
strings = split.split(inp);
@@ -409,7 +405,7 @@ public class DelimSplitterTest {
return;
}
- System.out.println("Split tokens: " + Arrays.deepToString(strings));
+ System.out.println("Split tokens: " + strings);
if(splitWS) {
List<String> tks = new LinkedList<>();
@@ -418,10 +414,10 @@ public class DelimSplitterTest {
tks.addAll(Arrays.asList(strang.split(" ")));
}
- strings = tks.toArray(new String[0]);
+ strings = new FunctionalList<>(tks);
}
try {
- ITree<String> delim = dlm.delimitSequence(strings);
+ ITree<String> delim = dlm.delimitSequence(strings.toArray(new String[0]));
printDelimSeq(delim);
} catch(DelimiterException dex) {
@@ -437,17 +433,6 @@ public class DelimSplitterTest {
System.out.println();
System.out.println();
- /*
- * ITree<String> transform =
- * delim.topDownTransform(this::pickNode, this::transformNode);
- * System.out.println("Transformed tree:\n" +
- * transform.getChild(1)); System.out.println();
- * System.out.println();
- *
- * System.out.print("Transformed expr: ");
- * printDelimTree(transform);
- */
-
System.out.println();
}
@@ -498,19 +483,6 @@ public class DelimSplitterTest {
}
}
- /*
- * private TopDownTransformResult pickNode(String node) {
- * if(groups.containsKey(node) || node.equals("subgroup")) return
- * TopDownTransformResult.PUSHDOWN; else return
- * TopDownTransformResult.PASSTHROUGH; }
- *
- * private ITree<String> transformNode(ITree<String> tree) {
- * if(groups.containsKey(tree.getHead())) {
- *
- * }
- *
- * return tree; }
- */
/**
* Main method
*
diff --git a/BJC-Utils2/src/examples/java/bjc/utils/examples/TreeConstructTest.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/TreeConstructTest.java
deleted file mode 100644
index a8f8134..0000000
--- a/BJC-Utils2/src/examples/java/bjc/utils/examples/TreeConstructTest.java
+++ /dev/null
@@ -1,129 +0,0 @@
-package bjc.utils.examples;
-
-import bjc.utils.data.IPair;
-import bjc.utils.data.ITree;
-import bjc.utils.data.Pair;
-import bjc.utils.data.Tree;
-import bjc.utils.funcdata.FunctionalMap;
-import bjc.utils.funcdata.FunctionalStringTokenizer;
-import bjc.utils.funcdata.IList;
-import bjc.utils.funcdata.IMap;
-import bjc.utils.funcutils.ListUtils;
-import bjc.utils.funcutils.StringUtils;
-import bjc.utils.parserutils.ShuntingYard;
-import bjc.utils.parserutils.TreeConstructor;
-import bjc.utils.parserutils.TreeConstructor.QueueFlattener;
-
-import java.util.Deque;
-import java.util.LinkedList;
-import java.util.Scanner;
-import java.util.function.Predicate;
-
-/**
- * Test of tree constructor
- *
- * @author ben
- *
- */
-public class TreeConstructTest {
- private static final class OperatorPicker implements Predicate<String> {
- @Override
- public boolean test(String token) {
- if(StringUtils.containsOnly(token, "\\[")) return true;
- else if(StringUtils.containsOnly(token, "\\]")) return true;
-
- switch(token) {
- case "+":
- case "-":
- case "*":
- case "/":
- return true;
- default:
- return false;
- }
- }
- }
-
- /**
- * Main method
- *
- * @param args
- * Unused CLI args
- */
- @SuppressWarnings({ "resource", "deprecation" })
- public static void main(String[] args) {
- Scanner inputSource = new Scanner(System.in);
-
- System.out.print("Enter a expression to parse: ");
- String line = inputSource.nextLine();
-
- IList<String> tokens = new FunctionalStringTokenizer(line).toList();
-
- ShuntingYard<String> yard = new ShuntingYard<>(true);
-
- Deque<IPair<String, String>> ops = new LinkedList<>();
-
- ops.add(new Pair<>("+", "\\+"));
- ops.add(new Pair<>("-", "-"));
- ops.add(new Pair<>("*", "\\*"));
- ops.add(new Pair<>("/", "/"));
- ops.add(new Pair<>(":=", ":="));
- ops.add(new Pair<>("=>", "=>"));
-
- IList<String> semiExpandedTokens = ListUtils.splitTokens(tokens, ops);
-
- ops = new LinkedList<>();
- ops.add(new Pair<>("(", "\\("));
- ops.add(new Pair<>(")", "\\)"));
- ops.add(new Pair<>("[", "\\["));
- ops.add(new Pair<>("]", "\\]"));
-
- IList<String> fullyExpandedTokens = ListUtils.deAffixTokens(semiExpandedTokens, ops);
- fullyExpandedTokens.removeIf((strang) -> strang.equals(""));
-
- IList<String> shuntedTokens = yard.postfix(fullyExpandedTokens, (token) -> token);
-
- System.out.println("Shunted: " + shuntedTokens.toString());
-
- Predicate<String> specialPicker = (operator) -> {
- if(StringUtils.containsOnly(operator, "\\[")) return true;
- else if(StringUtils.containsOnly(operator, "\\]")) return true;
-
- return false;
- };
-
- IMap<String, QueueFlattener<String>> operators
- = new FunctionalMap<>();
-
- operators.put("[", (queuedTrees) -> {
- return null;
- });
-
- operators.put("[", (queuedTrees) -> {
- Tree<String> openTree = new Tree<>("[");
-
- queuedTrees.push(openTree);
-
- return openTree;
- });
-
- operators.put("]", (queuedTrees) -> {
- ITree<String> arrayTree = new Tree<>("[]");
-
- while(!queuedTrees.peek().getHead().equals("[")) {
- arrayTree.addChild(queuedTrees.pop());
- }
-
- queuedTrees.push(arrayTree);
-
- return arrayTree;
- });
-
- ITree<String> constructedTree = TreeConstructor.constructTree(shuntedTokens,
- new OperatorPicker(), specialPicker, operators::get);
-
- System.out.println("AST: " + constructedTree.toString());
-
- inputSource.close();
- }
-}