From fcf3b6695566ff7b6163a5573137d3ac28e3e32e Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Mon, 21 Mar 2016 21:42:46 -0400 Subject: Minor polishing of things --- .../bjc/utils/parserutils/TreeConstructor.java | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'BJC-Utils2/src/main/java/bjc/utils/parserutils/TreeConstructor.java') diff --git a/BJC-Utils2/src/main/java/bjc/utils/parserutils/TreeConstructor.java b/BJC-Utils2/src/main/java/bjc/utils/parserutils/TreeConstructor.java index 9c920d2..e1a03f1 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/parserutils/TreeConstructor.java +++ b/BJC-Utils2/src/main/java/bjc/utils/parserutils/TreeConstructor.java @@ -31,8 +31,8 @@ public class TreeConstructor { */ public static AST constructTree(FunctionalList toks, Predicate opPredicate) { - GenHolder>, AST>> initState = new GenHolder<>( - new Pair<>(new LinkedList<>(), null)); + GenHolder>, AST>> initState = + new GenHolder<>(new Pair<>(new LinkedList<>(), null)); toks.forEach((ele) -> { if (opPredicate.test(ele)) { @@ -46,18 +46,26 @@ public class TreeConstructor { AST newAST = new AST(ele, left, right); deq.push(newAST); - + return newAST; }); - Pair>, AST> newPair = new Pair<>(lft, - mergedAST); + Pair>, AST> newPair = + new Pair<>(lft, mergedAST); return newPair; }); } else { - initState.doWith((par) -> par - .doWith((deq, ast) -> deq.push(new AST<>(ele)))); + AST newAST = new AST<>(ele); + + initState.doWith((par) -> par.doWith((deq, ast) -> { + deq.push(newAST); + })); + + initState.transform((par) -> { + return (Pair>, AST>) par + .apply((d) -> d, (a) -> newAST); + }); } }); -- cgit v1.2.3