public class ExprNode { String operator; ExprNode left; ExprNode right; double value; public ExprNode(String op) { operator = op; left = null; right = null; value = 0; } public String getOperator() { return operator; } public ExprNode getLeft() { return left; } public ExprNode getRight() { return right; } public double getValue() { return value; } public void setOperator(String op) { operator = op; } public void setLeft(ExprNode node) { left = node; } public void setRight(ExprNode node) { right = node; } public void setValue(double val) { value = val; } public double eval() { if (operator.equals("int")) return value; else if (operator.equals("+")) return left.eval() + right.eval(); else if (operator.equals("-")) return left.eval() - right.eval(); else if (operator.equals("*")) return left.eval() * right.eval(); else // must be DIV return left.eval() / right.eval(); } }