package net.iplantevin.ql.ast.visitors; import net.iplantevin.ql.ast.expressions.Par; import net.iplantevin.ql.ast.expressions.literals.Bool; import net.iplantevin.ql.ast.expressions.literals.ID; import net.iplantevin.ql.ast.expressions.literals.Int; import net.iplantevin.ql.ast.expressions.literals.Str; import net.iplantevin.ql.ast.expressions.operators.Add; import net.iplantevin.ql.ast.expressions.operators.And; import net.iplantevin.ql.ast.expressions.operators.Div; import net.iplantevin.ql.ast.expressions.operators.EQ; import net.iplantevin.ql.ast.expressions.operators.GEQ; import net.iplantevin.ql.ast.expressions.operators.GT; import net.iplantevin.ql.ast.expressions.operators.LEQ; import net.iplantevin.ql.ast.expressions.operators.LT; import net.iplantevin.ql.ast.expressions.operators.Mul; import net.iplantevin.ql.ast.expressions.operators.NEQ; import net.iplantevin.ql.ast.expressions.operators.Neg; import net.iplantevin.ql.ast.expressions.operators.Not; import net.iplantevin.ql.ast.expressions.operators.Or; import net.iplantevin.ql.ast.expressions.operators.Pos; import net.iplantevin.ql.ast.expressions.operators.Sub; /** * @author Ivan */ public interface IExpressionVisitor<T> { // Parentheses expression public T visit(Par par); // Operators public T visit(Add add); public T visit(And and); public T visit(Div div); public T visit(EQ eq); public T visit(GEQ geq); public T visit(GT gt); public T visit(LEQ leq); public T visit(LT lt); public T visit(Mul mul); public T visit(Neg neg); public T visit(NEQ neq); public T visit(Not not); public T visit(Or or); public T visit(Pos pos); public T visit(Sub sub); // Literals public T visit(Bool bool); public T visit(ID id); public T visit(Int integer); public T visit(Str str); }