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}