package ast.visitors; import ast.expr.Identifier; import ast.expr.binExpr.Add; import ast.expr.binExpr.And; import ast.expr.binExpr.Div; import ast.expr.binExpr.Eq; import ast.expr.binExpr.GEq; import ast.expr.binExpr.GT; import ast.expr.binExpr.LEq; import ast.expr.binExpr.LT; import ast.expr.binExpr.Mul; import ast.expr.binExpr.NEq; import ast.expr.binExpr.Or; import ast.expr.binExpr.Sub; import ast.expr.literal.BoolLiteral; import ast.expr.literal.IntLiteral; import ast.expr.literal.StrLiteral; import ast.expr.unExpr.Neg; import ast.expr.unExpr.Not; import ast.expr.unExpr.Pos; public interface ExprVisitor<T>{ T visit(Pos node); T visit(Neg node); T visit(Not node); T visit(Add node); T visit(And node); T visit(Div node); T visit(Eq node); T visit(GEq node); T visit(GT node); T visit(LEq node); T visit(LT node); T visit(Mul node); T visit(NEq node); T visit(Or node); T visit(Sub node); T visit(BoolLiteral node); T visit(Identifier node); T visit(IntLiteral node); T visit(StrLiteral node); }