package ast; import javax.swing.JComponent; import ast.literals.BoolLiteral; import ast.literals.IntLiteral; import ast.literals.StrLiteral; import ast.form.Block; import ast.form.Computedquest; import ast.form.Form; import ast.form.IfElse; import ast.form.Ifstate; import ast.form.Question; import ast.form.StatementList; import ast.type.Booltype; import ast.type.Inttype; import ast.type.Strtype; import expr.Ident; import expr.conditional.And; import expr.conditional.Or; import expr.operation.Add; import expr.operation.Div; import expr.operation.Mul; import expr.operation.Sub; import expr.relational.Eq; import expr.relational.GEq; import expr.relational.GT; import expr.relational.LEq; import expr.relational.LT; import expr.relational.NEq; import expr.unary.Neg; import expr.unary.Not; import expr.unary.Pos; public interface Visitor<T>{ public T visit (And node); public T visit (Or node); public T visit (Ident node); public T visit (Form node); public T visit (Question node); public T visit (IfElse node); public T visit (Ifstate node); public T visit (Add node); public T visit (Div node); public T visit (Mul node); public T visit (Sub node); public T visit (Eq node); public T visit (GEq node); public T visit (GT node); public T visit (LEq node); public T visit (LT node); public T visit (NEq node); public T visit (Booltype node); public T visit (Inttype node); public T visit (Strtype node); public T visit (Neg node); public T visit (Not node); public T visit (Pos node); public T visit (StatementList statementList); public T visit (Computedquest node); public T visit (BoolLiteral node); public T visit (IntLiteral node); public T visit (StrLiteral node); public T visit(Block block); }