package uva.ql.ast.visitor; import uva.ql.ast.expressions.*; import uva.ql.ast.expressions.literals.BooleanLiteral; import uva.ql.ast.expressions.literals.Identifier; import uva.ql.ast.expressions.literals.IntLiteral; import uva.ql.ast.expressions.literals.MoneyLiteral; import uva.ql.ast.expressions.literals.StringLiteral; import uva.ql.ast.expressions.logic.And; import uva.ql.ast.expressions.logic.Equal; import uva.ql.ast.expressions.logic.Greater; import uva.ql.ast.expressions.logic.Greater_Eq; import uva.ql.ast.expressions.logic.Less; import uva.ql.ast.expressions.logic.Less_Eq; import uva.ql.ast.expressions.logic.NotEqual; import uva.ql.ast.expressions.logic.Or; import uva.ql.ast.expressions.math.Addition; import uva.ql.ast.expressions.math.Division; import uva.ql.ast.expressions.math.Exponentiation; import uva.ql.ast.expressions.math.Multiplication; import uva.ql.ast.expressions.math.Substraction; public interface ExpressionVisitor<T>{ public T visitBinaryExpression(BinaryExpression expression); public T visitExpression(Expression expression); public T visitExponentiation(Exponentiation exponentiation); public T visitAddition(Addition addition); public T visitSubstraction(Substraction substraction); public T visitMultiplication(Multiplication multipllication); public T visitDivision(Division division); public T visitAnd(And and); public T visitOr(Or or); public T visitEqual(Equal equal); public T visitNotEqual(NotEqual notEqual); public T visitGreaterEqual(Greater_Eq greaterEqual); public T visitGreater(Greater greater); public T visitLessEqual(Less_Eq lessEqual); public T visitLess(Less less); public T visitIdentifier(Identifier identifier); public T visitBooleanLiteral(BooleanLiteral booleanLiteral); public T visitMoneyLiteral(MoneyLiteral moneyLiteral); public T visitIntLiteral(IntLiteral intLiteral); public T visitStringLiteral(StringLiteral stringLiteral); }