1 cananian 1.1.2.13 // TreeVisitor.java, created Thu Jan 14 19:06:18 1999 by duncan 2 cananian 1.1.2.18 // Copyright (C) 1998 Duncan Bryce <duncan@lcs.mit.edu> 3 cananian 1.1.2.12 // Licensed under the terms of the GNU GPL; see COPYING for details. 4 duncan 1.1.2.1 package harpoon.IR.Tree; 5 duncan 1.1.2.1 6 duncan 1.1.2.2 /** 7 duncan 1.1.2.2 * <code>TreeVisitor</code> is a Design Pattern, courtesy of Martin. 8 duncan 1.1.2.2 * 9 cananian 1.1.2.18 * @author Duncan Bryce <duncan@lcs.mit.edu> 10 cananian 1.2 * @version $Id: TreeVisitor.java,v 1.2 2002/02/25 21:05:42 cananian Exp $ 11 duncan 1.1.2.2 */ 12 duncan 1.1.2.1 public abstract class TreeVisitor 13 duncan 1.1.2.1 { 14 duncan 1.1.2.10 protected TreeVisitor() { } 15 duncan 1.1.2.1 16 duncan 1.1.2.10 public abstract void visit(Tree e); 17 duncan 1.1.2.9 18 cananian 1.1.2.15 public void visit(ALIGN e) { visit((Stm)e); } 19 duncan 1.1.2.10 public void visit(BINOP e) { visit((OPER)e); } 20 duncan 1.1.2.10 public void visit(CALL e) { visit((INVOCATION)e); } 21 duncan 1.1.2.10 public void visit(CJUMP e) { visit((Stm)e); } 22 duncan 1.1.2.10 public void visit(CONST e) { visit((Exp)e); } 23 cananian 1.1.2.16 public void visit(DATUM e) { visit((Stm)e); } 24 duncan 1.1.2.10 public void visit(ESEQ e) { visit((Exp)e); } 25 duncan 1.1.2.10 public void visit(Exp e) { visit((Tree)e); } 26 jwhaley 1.1.2.17 public void visit(EXPR e) { visit((Stm)e); } 27 duncan 1.1.2.10 public void visit(INVOCATION e) { visit((Stm)e); } 28 duncan 1.1.2.10 public void visit(JUMP e) { visit((Stm)e); } 29 duncan 1.1.2.10 public void visit(LABEL e) { visit((Stm)e); } 30 duncan 1.1.2.10 public void visit(MEM e) { visit((Exp)e); } 31 duncan 1.1.2.14 public void visit(METHOD e) { visit((Stm)e); } 32 duncan 1.1.2.10 public void visit(MOVE e) { visit((Stm)e); } 33 duncan 1.1.2.10 public void visit(NAME e) { visit((Exp)e); } 34 duncan 1.1.2.10 public void visit(NATIVECALL e) { visit((INVOCATION)e); } 35 duncan 1.1.2.10 public void visit(OPER e) { visit((Exp)e); } 36 duncan 1.1.2.10 public void visit(RETURN e) { visit((Stm)e); } 37 duncan 1.1.2.11 public void visit(SEGMENT e) { visit((Stm)e); } 38 duncan 1.1.2.10 public void visit(SEQ e) { visit((Stm)e); } 39 duncan 1.1.2.10 public void visit(Stm e) { visit((Tree)e); } 40 duncan 1.1.2.10 public void visit(TEMP e) { visit((Exp)e); } 41 duncan 1.1.2.10 public void visit(THROW e) { visit((Stm)e); } 42 duncan 1.1.2.10 public void visit(UNOP e) { visit((OPER)e); } 43 duncan 1.1.2.1 } 44 cananian 1.2