package TP2.asd; import java.util.Map; public interface Interface{ public interface Expression { public S accept(ExprVisitor v, H h); } public interface Instruction { public S accept(InstrVisitor v, H h); } public interface ProgramVisitor { public S visitProgram(Program p, H h); public S visitFunction(Program.Function f, H h); } public interface InstrVisitor{ public S visitReturn(Program.Return_instr e, H h); } public interface ExprVisitor { public S visitConst(Program.Const e,H h); public S visitBinOp(Program.BinopExpression e, H h); } public interface Type{ public String prettyprinter(); } public enum Op {PLUS, MINUS, TIMES, DIV} //Eval public interface ExprEval extends ExprVisitor, Integer> { } public interface TypeCheck extends ExprVisitor, Type> { } }