1 cananian 1.2.2.3 // Operand.java, created Sun Sep 13 22:49:23 1998 by cananian
 2 cananian 1.2     // Copyright (C) 1998 C. Scott Ananian <cananian@alumni.princeton.edu>
 3 cananian 1.2     // Licensed under the terms of the GNU GPL; see COPYING for details.
 4 cananian 1.1     package harpoon.IR.Bytecode;
 5 cananian 1.1     
 6 cananian 1.2.2.1 import harpoon.Util.ArrayFactory;
 7 cananian 1.1     
 8 cananian 1.1     /**
 9 cananian 1.1      * <code>Operand</code> represents the operands of a java bytecode
10 cananian 1.1      * instruction.
11 cananian 1.1      *
12 cananian 1.1      * @author  C. Scott Ananian <cananian@alumni.princeton.edu>
13 cananian 1.3      * @version $Id: Operand.java,v 1.3 2002/02/25 21:04:17 cananian Exp $
14 cananian 1.1      * @see Instr
15 cananian 1.1      * @see InGen
16 cananian 1.1      * @see OpConstant
17 cananian 1.1      * @see OpLocalVariable
18 cananian 1.1      * @see OpClass
19 cananian 1.1      * @see OpMethod
20 cananian 1.1      * @see OpField
21 cananian 1.1      */
22 cananian 1.1     public abstract class Operand {
23 cananian 1.1       /** Return a human-readable representation of this Operand. */
24 cananian 1.1       public abstract String toString(); // force a reimplementation.
25 cananian 1.2.2.1 
26 cananian 1.2.2.1   /** Array factory: returns new <code>Operand[]</code>. */
27 cananian 1.2.2.1   public static final ArrayFactory arrayFactory =
28 cananian 1.2.2.1     new ArrayFactory() {
29 cananian 1.2.2.1       public Object[] newArray(int len) { return new Operand[len]; }
30 cananian 1.2.2.1     };
31 cananian 1.1     }