1 cananian 1.1.2.1 // LowQuadKind.java, created Wed Jan 20 22:20:40 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 /** 7 cananian 1.1.2.4 * <code>LowQuadKind</code> is an enumerated type for the various kinds of 8 cananian 1.1.2.4 * <code>LowQuad</code>s. It extends <code>QuadKind</code>, so it enumerates 9 cananian 1.1.2.4 * all the <code>Quad</code> types, too. 10 cananian 1.1.2.1 * 11 cananian 1.1.2.1 * @author C. Scott Ananian <cananian@alumni.princeton.edu> 12 cananian 1.2 * @version $Id: LowQuadKind.java,v 1.2 2002/02/25 21:04:40 cananian Exp $ 13 cananian 1.1.2.1 */ 14 cananian 1.1.2.1 public abstract class LowQuadKind extends harpoon.IR.Quads.QuadKind { 15 cananian 1.1.2.1 private static int n = min(); 16 cananian 1.1.2.1 17 cananian 1.1.2.3 // PPTR: 18 cananian 1.1.2.3 public static final int PARRAY = n++; 19 cananian 1.1.2.3 public static final int PFIELD = n++; 20 cananian 1.1.2.3 public static final int PMETHOD = n++; 21 cananian 1.1.2.3 // PCONST: 22 cananian 1.1.2.3 public static final int PAOFFSET = n++; 23 cananian 1.1.2.3 public static final int PFOFFSET = n++; 24 cananian 1.1.2.3 public static final int PMOFFSET = n++; 25 cananian 1.1.2.3 public static final int PFCONST = n++; 26 cananian 1.1.2.3 public static final int PMCONST = n++; 27 cananian 1.1.2.3 // others: 28 cananian 1.1.2.3 public static final int PCALL = n++; 29 cananian 1.1.2.3 public static final int PGET = n++; 30 cananian 1.1.2.3 public static final int POPER = n++; 31 cananian 1.1.2.3 public static final int PSET = n++; 32 cananian 1.1.2.1 33 cananian 1.1.2.1 public static int min() { return harpoon.IR.Quads.QuadKind.max(); } 34 cananian 1.1.2.1 public static int max() { return n; } 35 cananian 1.1.2.1 36 cananian 1.1.2.1 public static boolean isValid(int k) { 37 cananian 1.1.2.1 return harpoon.IR.Quads.QuadKind.isValid(k) || 38 cananian 1.1.2.1 (min() <= k && k < max() ); 39 cananian 1.1.2.1 } 40 cananian 1.2 }