summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/parserutils/TreeConstructor.java
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2016-04-11 21:54:44 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2016-04-11 21:54:44 -0400
commitc8a00b789671d59589bcb5520c1e9d208bcc27f6 (patch)
tree6b64e3c78f56d025c78ab08a9edc038af0b6e821 /BJC-Utils2/src/main/java/bjc/utils/parserutils/TreeConstructor.java
parenta716a7a53f85a6901128896da508d31c172011b4 (diff)
Work on restructing data.
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/parserutils/TreeConstructor.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/parserutils/TreeConstructor.java16
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(