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