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 }