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