From c8a00b789671d59589bcb5520c1e9d208bcc27f6 Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Mon, 11 Apr 2016 21:54:44 -0400 Subject: Work on restructing data. --- .../main/java/bjc/utils/parserutils/TreeConstructor.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 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 68ec70e..3252351 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/parserutils/TreeConstructor.java +++ b/BJC-Utils2/src/main/java/bjc/utils/parserutils/TreeConstructor.java @@ -7,6 +7,7 @@ import java.util.function.Function; import java.util.function.Predicate; import bjc.utils.data.GenHolder; +import bjc.utils.data.IHolder; import bjc.utils.data.IPair; import bjc.utils.data.Pair; import bjc.utils.funcdata.IFunctionalList; @@ -45,8 +46,7 @@ public class TreeConstructor { if (queuedASTs.size() < 2) { throw new IllegalStateException( "Attempted to parse binary operator without enough operands.\n" - + "Problem operator is " - + element + + "Problem operator is " + element + "\nPossible operand is: \n\t" + queuedASTs.peek()); } @@ -63,13 +63,13 @@ public class TreeConstructor { } } - private GenHolder>, AST>> initialState; + private IHolder>, AST>> initialState; private Predicate operatorPredicate; private Predicate isSpecialOperator; private Function>, AST> handleSpecialOperator; public TokenTransformer( - GenHolder>, AST>> initialState, + IHolder>, AST>> initialState, Predicate operatorPredicate, Predicate isSpecialOperator, Function>, AST> handleSpecialOperator) { @@ -93,10 +93,8 @@ public class TreeConstructor { }); initialState.transform((pair) -> { - return pair.apply((Deque> queue) -> { - return queue; - }, (AST currentAST) -> { - return newAST; + return pair.bind((queue, currentAST) -> { + return new Pair<>(queue, newAST); }); }); } @@ -160,7 +158,7 @@ public class TreeConstructor { "Special operator determiner must not be null"); } - GenHolder>, AST>> initialState = new GenHolder<>( + IHolder>, AST>> initialState = new GenHolder<>( new Pair<>(new LinkedList<>(), null)); tokens.forEach( -- cgit v1.2.3