diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-04-11 21:54:44 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-04-11 21:54:44 -0400 |
| commit | c8a00b789671d59589bcb5520c1e9d208bcc27f6 (patch) | |
| tree | 6b64e3c78f56d025c78ab08a9edc038af0b6e821 /BJC-Utils2/src/main/java/bjc/utils/parserutils | |
| parent | a716a7a53f85a6901128896da508d31c172011b4 (diff) | |
Work on restructing data.
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/parserutils')
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/parserutils/TreeConstructor.java | 16 |
1 files changed, 7 insertions, 9 deletions
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<IPair<Deque<AST<T>>, AST<T>>> initialState; + private IHolder<IPair<Deque<AST<T>>, AST<T>>> initialState; private Predicate<T> operatorPredicate; private Predicate<T> isSpecialOperator; private Function<Deque<AST<T>>, AST<T>> handleSpecialOperator; public TokenTransformer( - GenHolder<IPair<Deque<AST<T>>, AST<T>>> initialState, + IHolder<IPair<Deque<AST<T>>, AST<T>>> initialState, Predicate<T> operatorPredicate, Predicate<T> isSpecialOperator, Function<Deque<AST<T>>, AST<T>> handleSpecialOperator) { @@ -93,10 +93,8 @@ public class TreeConstructor { }); initialState.transform((pair) -> { - return pair.apply((Deque<AST<T>> queue) -> { - return queue; - }, (AST<T> 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<IPair<Deque<AST<T>>, AST<T>>> initialState = new GenHolder<>( + IHolder<IPair<Deque<AST<T>>, AST<T>>> initialState = new GenHolder<>( new Pair<>(new LinkedList<>(), null)); tokens.forEach( |
