package com.johnChnia.coding2017.basic.stack.expr;
import com.johnChnia.coding2017.basic.List;
import com.johnChnia.coding2017.basic.stack.Stack;
public class PostfixExpr {
private String expr = null;
static Operator operator = new Operator();
public PostfixExpr(String expr) {
this.expr = expr;
}
public float evaluate() {
TokenParser tokenParser = new TokenParser();
List<Token> tokens = tokenParser.parse(this.expr);
Stack<Float> stack = new Stack<>();
for (int i = 0; i < tokens.size(); i++) {
operator.handlerToken("postfix", stack, tokens.get(i));
}
return stack.pop();
}
public static float evaluate(List<Token> tokens) {
Stack<Float> stack = new Stack<>();
for (int i = 0; i < tokens.size(); i++) {
operator.handlerToken("postfix", stack, tokens.get(i));
}
return stack.pop();
}
}