1 cananian 1.1.2.1 // StmList.java, created Wed Jan 13 21:14:57 1999 by cananian
 2 cananian 1.1.2.4 // Copyright (C) 1998 C. Scott Ananian <cananian@alumni.princeton.edu>
 3 cananian 1.1.2.4 // Licensed under the terms of the GNU GPL; see COPYING for details.
 4 cananian 1.1.2.1 package harpoon.IR.Tree;
 5 cananian 1.1.2.1 
 6 cananian 1.1.2.5 import harpoon.Temp.TempMap;
 7 duncan   1.1.2.2 
 8 duncan   1.1.2.2 
 9 cananian 1.1.2.1 /**
10 cananian 1.1.2.1  * <code>StmList</code>s for singly-linked lists of <code>Stm</code>s.
11 cananian 1.1.2.1  * 
12 cananian 1.1.2.1  * @author  C. Scott Ananian <cananian@alumni.princeton.edu>, based on
13 cananian 1.1.2.1  *          <i>Modern Compiler Implementation in Java</i> by Andrew Appel.
14 cananian 1.2      * @version $Id: StmList.java,v 1.2 2002/02/25 21:05:41 cananian Exp $
15 cananian 1.1.2.1  */
16 cananian 1.1.2.1 public final class StmList {
17 cananian 1.1.2.1     /** The statement at this list entry. */
18 cananian 1.1.2.1     public final Stm head;
19 cananian 1.1.2.1     /** The next list entry. */
20 cananian 1.1.2.1     public final StmList tail;
21 cananian 1.1.2.1     /** List constructor. */
22 cananian 1.1.2.1     public StmList(Stm head, StmList tail)
23 cananian 1.1.2.1     { this.head=head; this.tail=tail; }
24 duncan   1.1.2.2 
25 cananian 1.1.2.5     public static StmList rename(StmList s, TreeFactory tf, TempMap tm,
26 cananian 1.1.2.5                                  Tree.CloneCallback cb) {
27 duncan   1.1.2.3         if (s==null) return null;
28 duncan   1.1.2.3         else return new StmList
29 cananian 1.1.2.5                ((Stm)s.head.rename(tf, tm, cb),
30 cananian 1.1.2.5                 rename(s.tail, tf, tm, cb));
31 duncan   1.1.2.2     }
32 cananian 1.1.2.1 }
33 cananian 1.1.2.1 
34 cananian 1.1.2.1 
35 cananian 1.2