/* * Interprete.java */ import lt2.calc.EspressioneException; public class Interprete implements Visitor { public Integer visit(PiuExpr n) { return n.getSx().accept(this) + n.getDx().accept(this); } public Integer visit(MenoExpr n) { return n.getSx().accept(this) - n.getDx().accept(this); } public Integer visit(PerExpr n) { return n.getSx().accept(this) * n.getDx().accept(this); } public Integer visit(DivisoExpr n) { return n.getSx().accept(this) / n.getDx().accept(this); } public Integer visit(UnPiuExpr n) { return n.getE().accept(this); } public Integer visit(UnMenoExpr n) { return -n.getE().accept(this); } public Integer visit(NumExpr n) { return n.getValue().intValue(); } public Integer visit(IdExpr n) { return 0; //identificatori valutati 0 } public Integer calcola(Expr e) { return e.accept(this); } }// Interprete