From f4baa925b0b5590bc8b12ba5f32e0218384c8efc Mon Sep 17 00:00:00 2001 From: bjculkin Date: Fri, 7 Apr 2017 16:06:18 -0400 Subject: Add simple toggle values --- .../java/bjc/utils/examples/DelimSplitterTest.java | 58 +++------ .../java/bjc/utils/examples/TreeConstructTest.java | 129 --------------------- 2 files changed, 15 insertions(+), 172 deletions(-) delete mode 100644 BJC-Utils2/src/examples/java/bjc/utils/examples/TreeConstructTest.java (limited to 'BJC-Utils2/src/examples/java/bjc/utils') 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 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 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 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 delim = dlm.delimitSequence(strings); + ITree 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 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 transformNode(ITree 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 { - @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 tokens = new FunctionalStringTokenizer(line).toList(); - - ShuntingYard yard = new ShuntingYard<>(true); - - Deque> 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 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 fullyExpandedTokens = ListUtils.deAffixTokens(semiExpandedTokens, ops); - fullyExpandedTokens.removeIf((strang) -> strang.equals("")); - - IList shuntedTokens = yard.postfix(fullyExpandedTokens, (token) -> token); - - System.out.println("Shunted: " + shuntedTokens.toString()); - - Predicate specialPicker = (operator) -> { - if(StringUtils.containsOnly(operator, "\\[")) return true; - else if(StringUtils.containsOnly(operator, "\\]")) return true; - - return false; - }; - - IMap> operators - = new FunctionalMap<>(); - - operators.put("[", (queuedTrees) -> { - return null; - }); - - operators.put("[", (queuedTrees) -> { - Tree openTree = new Tree<>("["); - - queuedTrees.push(openTree); - - return openTree; - }); - - operators.put("]", (queuedTrees) -> { - ITree arrayTree = new Tree<>("[]"); - - while(!queuedTrees.peek().getHead().equals("[")) { - arrayTree.addChild(queuedTrees.pop()); - } - - queuedTrees.push(arrayTree); - - return arrayTree; - }); - - ITree constructedTree = TreeConstructor.constructTree(shuntedTokens, - new OperatorPicker(), specialPicker, operators::get); - - System.out.println("AST: " + constructedTree.toString()); - - inputSource.close(); - } -} -- cgit v1.2.3