package org.uva.ql.visitor;
import org.uva.ql.ast.expression.association.Parenthesis;
import org.uva.ql.ast.expression.binary.Addition;
import org.uva.ql.ast.expression.binary.And;
import org.uva.ql.ast.expression.binary.Divide;
import org.uva.ql.ast.expression.binary.Equal;
import org.uva.ql.ast.expression.binary.Greater;
import org.uva.ql.ast.expression.binary.GreaterEqual;
import org.uva.ql.ast.expression.binary.Less;
import org.uva.ql.ast.expression.binary.LessEqual;
import org.uva.ql.ast.expression.binary.Multiply;
import org.uva.ql.ast.expression.binary.NotEqual;
import org.uva.ql.ast.expression.binary.Or;
import org.uva.ql.ast.expression.binary.Substraction;
import org.uva.ql.ast.expression.literal.BoolLiteral;
import org.uva.ql.ast.expression.literal.Identifier;
import org.uva.ql.ast.expression.literal.IntLiteral;
import org.uva.ql.ast.expression.literal.StrLiteral;
import org.uva.ql.ast.expression.unary.Negative;
import org.uva.ql.ast.expression.unary.Not;
import org.uva.ql.ast.expression.unary.Positive;
public interface ExpressionVisitor<T> {
public T visit(Not node);
public T visit(Positive node);
public T visit(Negative node);
public T visit(Addition node);
public T visit(Substraction node);
public T visit(Multiply node);
public T visit(Divide node);
public T visit(And node);
public T visit(Or node);
public T visit(Equal node);
public T visit(NotEqual node);
public T visit(Greater node);
public T visit(GreaterEqual node);
public T visit(Less node);
public T visit(LessEqual node);
public T visit(Identifier node);
public T visit(IntLiteral node);
public T visit(BoolLiteral node);
public T visit(StrLiteral node);
public T visit(Parenthesis node);
}