package ql.ast.visitor_elements;
import ql.ast.expression.Id;
import ql.ast.expression.ParenthesesExpression;
import ql.ast.expression.arithmetic.Add;
import ql.ast.expression.arithmetic.Divide;
import ql.ast.expression.arithmetic.Multiply;
import ql.ast.expression.arithmetic.Remainder;
import ql.ast.expression.arithmetic.Subtract;
import ql.ast.expression.arithmetic.UnaryMinus;
import ql.ast.expression.arithmetic.UnaryPlus;
import ql.ast.expression.comparison.Equal;
import ql.ast.expression.comparison.GreaterThan;
import ql.ast.expression.comparison.GreaterThanEqual;
import ql.ast.expression.comparison.LessThan;
import ql.ast.expression.comparison.LessThanEqual;
import ql.ast.expression.comparison.NotEqual;
import ql.ast.expression.literal.BooleanLiteral;
import ql.ast.expression.literal.NumberLiteral;
import ql.ast.expression.literal.StringLiteral;
import ql.ast.expression.logical.LogicalAnd;
import ql.ast.expression.logical.LogicalOr;
import ql.ast.expression.logical.Not;
/**
* @author orosu
*/
public interface IExpressionElementVisitor<T>
{
public T visit(Id id);
public T visit(ParenthesesExpression parenthesesExpression);
public T visit(Add add);
public T visit(Divide divide);
public T visit(Multiply multiply);
public T visit(Remainder remainder);
public T visit(Subtract subtract);
public T visit(LogicalAnd logicalAnd);
public T visit(LogicalOr logicalOr);
public T visit(Equal equal);
public T visit(NotEqual notEqual);
public T visit(GreaterThan greaterThan);
public T visit(GreaterThanEqual greaterThanEqual);
public T visit(LessThan lessThan);
public T visit(LessThanEqual lessThanEqual);
public T visit(Not not);
public T visit(UnaryMinus unaryMinus);
public T visit(UnaryPlus unaryPlus);
public T visit(BooleanLiteral booleanLiteral);
public T visit(NumberLiteral numberLiteral);
public T visit(StringLiteral stringLiteral);
}