1 cananian 1.1.2.1 // LowQuad.java, created Tue Jan 19 21:17:59 1999 by cananian
 2 cananian 1.1.2.1 // Copyright (C) 1999 C. Scott Ananian <cananian@alumni.princeton.edu>
 3 cananian 1.1.2.1 // Licensed under the terms of the GNU GPL; see COPYING for details.
 4 cananian 1.1.2.1 package harpoon.IR.LowQuad;
 5 cananian 1.1.2.1 
 6 cananian 1.1.2.1 import harpoon.ClassFile.HCodeElement;
 7 cananian 1.1.2.1 import harpoon.Temp.Temp;
 8 cananian 1.1.2.1 import harpoon.Temp.TempMap;
 9 cananian 1.1.2.1 
10 cananian 1.1.2.1 /**
11 cananian 1.1.2.1  * The <code>LowQuad</code> interface identifies subclasses of
12 cananian 1.1.2.1  * <code>harpoon.IR.Quads.Quad</code> as being members of the 
13 cananian 1.1.2.1  * <code>LowQuad</code> representation.
14 cananian 1.1.2.1  * 
15 cananian 1.1.2.1  * @author  C. Scott Ananian <cananian@alumni.princeton.edu>
16 cananian 1.3      * @version $Id: LowQuad.java,v 1.3 2002/04/11 04:00:21 cananian Exp $
17 cananian 1.1.2.1  */
18 cananian 1.1.2.1 public abstract class LowQuad extends harpoon.IR.Quads.Quad {
19 cananian 1.1.2.1     public LowQuad(LowQuadFactory qf, HCodeElement source) {
20 cananian 1.1.2.1         super(qf, source);
21 cananian 1.1.2.1     }
22 cananian 1.1.2.1 
23 cananian 1.1.2.1     // force visitor classes to be of type LowQuadVisitor.
24 cananian 1.1.2.2     public void accept(harpoon.IR.Quads.QuadVisitor v) {
25 cananian 1.1.2.2         accept( (LowQuadVisitor)v );
26 cananian 1.1.2.1     }
27 cananian 1.3         public <T> T accept(harpoon.IR.Quads.QuadValueVisitor<T> v) {
28 cananian 1.3             return accept( (LowQuadValueVisitor<T>)v );
29 cananian 1.3         }
30 cananian 1.1.2.1     /** Accept a visitor. */
31 cananian 1.1.2.2     abstract void accept(LowQuadVisitor v);
32 cananian 1.3         /** Accept a visitor. */
33 cananian 1.3         abstract <T> T accept(LowQuadValueVisitor<T> v);
34 cananian 1.2     }