package net.sven_eisenhauer.swa_prakt1; public class EvalIter implements ExpIter { @Override public Number traverse(ArithmeticExpression exp) { if(exp instanceof ArithmeticVariable) { return ((ArithmeticVariable) exp).getValue(); } else { ArithmeticOperation actOp = (ArithmeticOperation) exp; Number leftVal = traverse(actOp.getLeftOperand()); Number rightVal = traverse(actOp.getRightOperand()); return actOp.doOperation(leftVal, rightVal); } } }