From 275a627719fc2231b16caea41130ff09f0f2b6a1 Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Fri, 8 Apr 2016 13:28:09 -0400 Subject: Switch functional data to use interfaces --- .../main/java/bjc/utils/parserutils/ShuntingYard.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'BJC-Utils2/src/main/java/bjc/utils/parserutils/ShuntingYard.java') 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 { } private final class TokenShunter implements Consumer { - private FunctionalList output; + private IFunctionalList output; private Deque stack; private Function transform; - public TokenShunter(FunctionalList outpt, Deque stack, + public TokenShunter(IFunctionalList outpt, Deque stack, Function transform) { this.output = outpt; this.stack = stack; @@ -115,13 +116,13 @@ public class ShuntingYard { /** * Holds all the shuntable operations */ - private Map operators; + private IFunctionalMap 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 { * The function to use to transform strings to tokens * @return A list of tokens in postfix notation */ - public FunctionalList postfix(FunctionalList input, + public IFunctionalList postfix(IFunctionalList input, Function tokenTransformer) { if (input == null) { throw new NullPointerException("Input must not be null"); @@ -183,7 +184,7 @@ public class ShuntingYard { throw new NullPointerException("Transformer must not be null"); } - FunctionalList output = new FunctionalList<>(); + IFunctionalList output = new FunctionalList<>(); Deque stack = new LinkedList<>(); -- cgit v1.2.3