diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-03-18 15:13:26 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-03-18 15:13:26 -0400 |
| commit | e7313854ffd94a88cfed50dd71252534e418d67e (patch) | |
| tree | 9250a3d18f1fa6a90146293832e90ee4e36a625c /BJC-Utils2 | |
| parent | a8681ca6d13586cc2c07f0ab93f4804c77255ac4 (diff) | |
Added examples for both the shunter and the tree builder
Diffstat (limited to 'BJC-Utils2')
| -rw-r--r-- | BJC-Utils2/src/examples/java/bjc/utils/examples/ShuntTester.java | 26 | ||||
| -rw-r--r-- | BJC-Utils2/src/examples/java/bjc/utils/examples/TreeConstructTest.java | 47 |
2 files changed, 73 insertions, 0 deletions
diff --git a/BJC-Utils2/src/examples/java/bjc/utils/examples/ShuntTester.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/ShuntTester.java new file mode 100644 index 0000000..b1d8487 --- /dev/null +++ b/BJC-Utils2/src/examples/java/bjc/utils/examples/ShuntTester.java @@ -0,0 +1,26 @@ +package bjc.utils.examples; + +import java.util.Scanner; + +import bjc.utils.funcdata.FunctionalList; +import bjc.utils.funcdata.FunctionalStringTokenizer; +import bjc.utils.parserutils.ShuntingYard; + +public class ShuntTester { + public static void main(String[] args) { + Scanner scn = new Scanner(System.in); + + System.out.print("Enter a expression to shunt: "); + String ln = scn.nextLine(); + + ShuntingYard<String> yard = new ShuntingYard<>(); + + FunctionalList<String> ls = yard.postfix( + new FunctionalStringTokenizer(ln).toList((s) -> s), + (s) -> s); + + System.out.println(ls.toString()); + + scn.close(); + } +} diff --git a/BJC-Utils2/src/examples/java/bjc/utils/examples/TreeConstructTest.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/TreeConstructTest.java new file mode 100644 index 0000000..1c5c9b2 --- /dev/null +++ b/BJC-Utils2/src/examples/java/bjc/utils/examples/TreeConstructTest.java @@ -0,0 +1,47 @@ +package bjc.utils.examples; + +import java.util.Scanner; +import java.util.function.Predicate; + +import bjc.utils.funcdata.FunctionalList; +import bjc.utils.funcdata.FunctionalStringTokenizer; +import bjc.utils.parserutils.AST; +import bjc.utils.parserutils.ShuntingYard; +import bjc.utils.parserutils.TreeConstructor; + +public class TreeConstructTest { + public static void main(String[] args) { + Scanner scn = new Scanner(System.in); + + System.out.print("Enter a expression to parse: "); + String ln = scn.nextLine(); + + ShuntingYard<String> yard = new ShuntingYard<>(); + + FunctionalList<String> ls = yard.postfix( + new FunctionalStringTokenizer(ln).toList((s) -> s), + (s) -> s); + + System.out.println("Shunted: " + ls.toString()); + + AST<String> ast = TreeConstructor.constructTree(ls, + new Predicate<String>() { + @Override + public boolean test(String tok) { + switch (tok) { + case "+": + case "-": + case "*": + case "/": + return true; + default: + return false; + } + } + }); + + System.out.println("AST: " + ast.toString()); + + scn.close(); + } +} |
