Skip to content

Commit 2d01392

Browse files
committed
fix: replace Deque with Stack for operator handling in ExpressionParser
1 parent 9fe5c1d commit 2d01392

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

src/java/mindustrytool/workflow/expressions/ExpressionParser.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
package mindustrytool.workflow.expressions;
22

3-
import java.util.ArrayDeque;
43
import java.util.Arrays;
54
import java.util.HashMap;
65
import java.util.LinkedList;
76
import java.util.List;
87
import java.util.Map;
98
import java.util.Queue;
10-
import java.util.Deque;
9+
import java.util.Stack;
1110
import java.util.function.BiFunction;
1211
import java.util.function.Function;
1312
import java.util.regex.Matcher;
@@ -106,8 +105,8 @@ public void register(String name, String sign, Function<Double, Object> function
106105
UNARY_OPERATORS.put(sign, new UnaryOperator(name, sign, function));
107106
}
108107

109-
private Queue<String> toExpressionQueue(String expr, Map<String, Object> variables) {
110-
Deque<String> ops = new ArrayDeque<>();
108+
private Queue<String> toExpressionQueue(String expr) {
109+
Stack<String> ops = new Stack<>();
111110
Queue<String> output = new LinkedList<>();
112111

113112
Matcher matcher = TOKEN_PATTERN.matcher(expr);
@@ -159,8 +158,8 @@ public Double evaluateAsDouble(String expr, Map<String, Object> variables) {
159158

160159
public <T> T evaluate(Class<T> type, String expr, Map<String, Object> variables) {
161160
Map<String, Object> vars = new HashMap<>();
162-
Queue<String> rpn = toExpressionQueue(expr, variables);
163-
Deque<Object> stack = new ArrayDeque<>();
161+
Queue<String> rpn = toExpressionQueue(expr);
162+
Stack<Object> stack = new Stack<>();
164163

165164
if (rpn.isEmpty()) {
166165
throw new WorkflowError("Empty stack, expression: " + expr);

0 commit comments

Comments
 (0)