package visitor; import syntaxtree.*; public interface TypeVisitor { public Type visit(Program n); public Type visit(MainClass n); public Type visit(ClassDeclSimple n); public Type visit(ClassDeclExtends n); public Type visit(VarDecl n); public Type visit(MethodDecl n); public Type visit(Formal n); public Type visit(IntArrayType n); public Type visit(BooleanType n); public Type visit(IntegerType n); public Type visit(IdentifierType n); public Type visit(Block n); public Type visit(If n); public Type visit(While n); public Type visit(Print n); public Type visit(Assign n); public Type visit(ArrayAssign n); public Type visit(And n); public Type visit(LessThan n); public Type visit(Plus n); public Type visit(Minus n); public Type visit(Times n); public Type visit(ArrayLookup n); public Type visit(ArrayLength n); public Type visit(Call n); public Type visit(IntegerLiteral n); public Type visit(True n); public Type visit(False n); public Type visit(IdentifierExp n); public Type visit(This n); public Type visit(NewArray n); public Type visit(NewObject n); public Type visit(Not n); public Type visit(Identifier n); }