From b570540dd42c375c6b6fe2ad5e85c160e95c58cd Mon Sep 17 00:00:00 2001 From: bjculkin Date: Thu, 16 Mar 2017 14:38:01 -0400 Subject: Add sequence delimitation. Essentially, this allows you to convert flat strings to trees that match the delimiter structure of that flat string. --- .../java/bjc/utils/examples/DelimSplitterTest.java | 65 ++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 BJC-Utils2/src/examples/java/bjc/utils/examples/DelimSplitterTest.java (limited to 'BJC-Utils2/src/examples/java') diff --git a/BJC-Utils2/src/examples/java/bjc/utils/examples/DelimSplitterTest.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/DelimSplitterTest.java new file mode 100644 index 0000000..a836f6e --- /dev/null +++ b/BJC-Utils2/src/examples/java/bjc/utils/examples/DelimSplitterTest.java @@ -0,0 +1,65 @@ +package bjc.utils.examples; + +import bjc.utils.data.ITree; +import bjc.utils.funcutils.SequenceDelimiter; +import bjc.utils.funcutils.SequenceDelimiter.DelimiterException; +import bjc.utils.funcutils.TokenSplitter; + +import java.util.Arrays; +import java.util.Scanner; + +/** + * Test for {@link SequenceDelimiter} as well as {@link TokenSplitter} + * + * @author EVE + * + */ +public class DelimSplitterTest { + /** + * Main method + * + * @param args + * Unused CLI args. + */ + public static void main(String[] args) { + Scanner scn = new Scanner(System.in); + + TokenSplitter split = new TokenSplitter(); + split.addDelimiter("(", ")"); + split.addDelimiter("[", "]"); + split.addDelimiter("{", "}"); + split.addDelimiter("+", "-", "*", "/"); + split.compile(); + + SequenceDelimiter dlm = new SequenceDelimiter(); + dlm.addGroup(new String[] { "(" }, "parens", ")"); + dlm.addGroup(new String[] { "[" }, "brackets", "]"); + dlm.addGroup(new String[] { "{" }, "braces", "}"); + + System.out.print("Enter a sequence to delimit (blank line to quit): "); + String inp = scn.nextLine(); + System.out.println(); + + while(!inp.equals("")) { + String[] strings = split.split(inp); + + System.out.println("Split tokens: " + Arrays.deepToString(strings)); + + try { + ITree delim = dlm.delimitSequence(strings); + + System.out.println("Delimited tokens:\n" + delim.toString()); + } catch(DelimiterException dex) { + System.out.println("Expression isn't properly delimited."); + System.out.println("Cause: " + dex.getMessage()); + } + + System.out.println(); + System.out.print("Enter a sequence to delimit (blank line to quit): "); + inp = scn.nextLine(); + System.out.println(); + } + + scn.close(); + } +} -- cgit v1.2.3