package swa.prakt3; public class EvalVisitor implements Visitor { @Override public Number visit(ArithmeticOperation ao, Iterator it) { Number leftRes = it.traverse(ao.getLeftOperand(), this); Number rightRes = it.traverse(ao.getRightOperand(), this); return ao.doOperation(leftRes, rightRes); } @Override public Number visit(ArithmeticVariable av) { return av.getValue(); } }