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 }