package com.bpj.js;
public class Caculator {
public int build(String statement){
Node left = null;
Node right = null;
Node lastNode = null;
String[] statements = statement.split(" ");
for(int i= 0;i<statements.length;i++){
if("*".equalsIgnoreCase(statements[i])){
left = lastNode;
int val= Integer.parseInt(statements[++i]);
right = new ValueNode(val);
lastNode = new MulNode(left, right);
}else if("/".equalsIgnoreCase(statements[i])){
left = lastNode;
int val= Integer.parseInt(statements[++i]);
right = new ValueNode(val);
lastNode = new DivNode(left, right);
}else if("%".equalsIgnoreCase(statements[i])){
left = lastNode;
int val= Integer.parseInt(statements[++i]);
right = new ValueNode(val);
lastNode = new ModNode(left, right);
}else{
lastNode = new ValueNode(Integer.parseInt(statements[i]));
}
}
return lastNode.interpret();
}
}