001package org.clafer.ir;
002
003/**
004 * Dynamic dispatch for IR integer expressions.
005 *
006 * @param <A> the parameter type
007 * @param <B> the return type
008 * @author jimmy
009 */
010public interface IrIntExprVisitor<A, B> extends IrBoolExprVisitor<A, B> {
011
012    public B visit(IrIntVar ir, A a);
013
014    public B visit(IrMinus ir, A a);
015
016    public B visit(IrCard ir, A a);
017
018    public B visit(IrAdd ir, A a);
019
020    public B visit(IrMul ir, A a);
021
022    public B visit(IrDiv ir, A a);
023
024    public B visit(IrElement ir, A a);
025
026    public B visit(IrCount ir, A a);
027
028    public B visit(IrSetSum ir, A a);
029
030    public B visit(IrTernary ir, A a);
031}