1 cananian 1.1 // QuadValueVisitor.java, created by cananian 2 cananian 1.1 // Copyright (C) 2002 C. Scott Ananian <cananian@alumni.princeton.edu> 3 cananian 1.1 // Licensed under the terms of the GNU GPL; see COPYING for details. 4 cananian 1.1 package harpoon.IR.Quads; 5 cananian 1.1 6 cananian 1.1 /** 7 cananian 1.1 * <code>QuadValueVisitor</code> is a visitor class that returns 8 cananian 1.1 * a (parameterized) value. 9 cananian 1.1 * 10 cananian 1.1 * @author C. Scott Ananian <cananian@alumni.princeton.edu> 11 cananian 1.1 * @version $Id: QuadValueVisitor.java,v 1.1 2002/04/11 04:00:34 cananian Exp $ 12 cananian 1.1 */ 13 cananian 1.1 public abstract class QuadValueVisitor<T> { 14 cananian 1.1 protected QuadValueVisitor() { } 15 cananian 1.1 16 cananian 1.1 /** Visit a quad q. */ 17 cananian 1.1 public abstract T visit(Quad q); 18 cananian 1.1 public T visit(AGET q) { return visit((Quad)q); } 19 cananian 1.1 public T visit(ALENGTH q) { return visit((Quad)q); } 20 cananian 1.1 public T visit(ANEW q) { return visit((Quad)q); } 21 cananian 1.1 public T visit(ARRAYINIT q) { return visit((Quad)q); } 22 cananian 1.1 public T visit(ASET q) { return visit((Quad)q); } 23 cananian 1.1 public T visit(CALL q) { return visit((SIGMA)q); } 24 cananian 1.1 public T visit(CJMP q) { return visit((SIGMA)q); } 25 cananian 1.1 public T visit(COMPONENTOF q) { return visit((Quad)q); } 26 cananian 1.1 public T visit(CONST q) { return visit((Quad)q); } 27 cananian 1.1 public T visit(DEBUG q) { return visit((Quad)q); } 28 cananian 1.1 public T visit(FOOTER q) { return visit((Quad)q); } 29 cananian 1.1 public T visit(GET q) { return visit((Quad)q); } 30 cananian 1.1 public T visit(HEADER q) { return visit((Quad)q); } 31 cananian 1.1 public T visit(INSTANCEOF q) { return visit((Quad)q); } 32 cananian 1.1 public T visit(LABEL q) { return visit((PHI)q); } 33 cananian 1.1 public T visit(HANDLER q) { return visit((Quad)q); } 34 cananian 1.1 public T visit(METHOD q) { return visit((Quad)q); } 35 cananian 1.1 public T visit(MONITORENTER q) { return visit((Quad)q); } 36 cananian 1.1 public T visit(MONITOREXIT q) { return visit((Quad)q); } 37 cananian 1.1 public T visit(MOVE q) { return visit((Quad)q); } 38 cananian 1.1 public T visit(NEW q) { return visit((Quad)q); } 39 cananian 1.1 public T visit(NOP q) { return visit((Quad)q); } 40 cananian 1.1 public T visit(OPER q) { return visit((Quad)q); } 41 cananian 1.1 public T visit(PHI q) { return visit((Quad)q); } 42 cananian 1.1 public T visit(RETURN q) { return visit((Quad)q); } 43 cananian 1.1 public T visit(SET q) { return visit((Quad)q); } 44 cananian 1.1 public T visit(SIGMA q) { return visit((Quad)q); } 45 cananian 1.1 public T visit(SWITCH q) { return visit((SIGMA)q); } 46 cananian 1.1 public T visit(THROW q) { return visit((Quad)q); } 47 cananian 1.1 public T visit(TYPECAST q) { return visit((NOP)q); } 48 cananian 1.1 public T visit(TYPESWITCH q) { return visit((SIGMA)q); } 49 cananian 1.1 public T visit(XI q) { return visit((PHI)q); } 50 cananian 1.1 }