diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-04-08 13:28:09 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-04-08 13:28:09 -0400 |
| commit | 275a627719fc2231b16caea41130ff09f0f2b6a1 (patch) | |
| tree | 757e8ca2061ba6ed9b2063f7155edbe954b72bdb /BJC-Utils2/src/main/java/bjc/utils/parserutils/ShuntingYard.java | |
| parent | 79d3a4a47cbc1fcf17c77c6fc12ff826a3077bac (diff) | |
Switch functional data to use interfaces
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/parserutils/ShuntingYard.java')
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/parserutils/ShuntingYard.java | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/parserutils/ShuntingYard.java b/BJC-Utils2/src/main/java/bjc/utils/parserutils/ShuntingYard.java index 1e5d487..a60cb01 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/parserutils/ShuntingYard.java +++ b/BJC-Utils2/src/main/java/bjc/utils/parserutils/ShuntingYard.java @@ -1,13 +1,14 @@ package bjc.utils.parserutils; import java.util.Deque; -import java.util.HashMap; import java.util.LinkedList; -import java.util.Map; import java.util.function.Consumer; import java.util.function.Function; import bjc.utils.funcdata.FunctionalList; +import bjc.utils.funcdata.FunctionalMap; +import bjc.utils.funcdata.IFunctionalList; +import bjc.utils.funcdata.IFunctionalMap; import bjc.utils.funcutils.StringUtils; /** @@ -61,11 +62,11 @@ public class ShuntingYard<E> { } private final class TokenShunter implements Consumer<String> { - private FunctionalList<E> output; + private IFunctionalList<E> output; private Deque<String> stack; private Function<String, E> transform; - public TokenShunter(FunctionalList<E> outpt, Deque<String> stack, + public TokenShunter(IFunctionalList<E> outpt, Deque<String> stack, Function<String, E> transform) { this.output = outpt; this.stack = stack; @@ -115,13 +116,13 @@ public class ShuntingYard<E> { /** * Holds all the shuntable operations */ - private Map<String, IPrecedent> operators; + private IFunctionalMap<String, IPrecedent> operators; /** * Create a new shunting yard with a default set of operators */ public ShuntingYard() { - operators = new HashMap<>(); + operators = new FunctionalMap<>(); if (shouldConfigureBasicOperators) { operators.put("+", Operator.ADD); @@ -175,7 +176,7 @@ public class ShuntingYard<E> { * The function to use to transform strings to tokens * @return A list of tokens in postfix notation */ - public FunctionalList<E> postfix(FunctionalList<String> input, + public IFunctionalList<E> postfix(IFunctionalList<String> input, Function<String, E> tokenTransformer) { if (input == null) { throw new NullPointerException("Input must not be null"); @@ -183,7 +184,7 @@ public class ShuntingYard<E> { throw new NullPointerException("Transformer must not be null"); } - FunctionalList<E> output = new FunctionalList<>(); + IFunctionalList<E> output = new FunctionalList<>(); Deque<String> stack = new LinkedList<>(); |
