1 cananian 1.1.2.1 // DEBUG.java, created Sat Nov 21 21:19:08 1998 by cananian 2 cananian 1.1.2.1 // Copyright (C) 1998 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.Quads; 5 cananian 1.1.2.1 6 cananian 1.1.2.6 import harpoon.ClassFile.HCodeElement; 7 cananian 1.1.2.3 import harpoon.Temp.TempMap; 8 cananian 1.1.2.2 import harpoon.Util.Util; 9 cananian 1.1.2.2 10 cananian 1.1.2.1 /** 11 cananian 1.1.2.1 * <code>DEBUG</code> prints a debugging string to standard error. 12 cananian 1.1.2.1 * 13 cananian 1.1.2.1 * @author C. Scott Ananian <cananian@alumni.princeton.edu> 14 cananian 1.5 * @version $Id: DEBUG.java,v 1.5 2002/04/11 04:00:34 cananian Exp $ 15 cananian 1.1.2.1 */ 16 cananian 1.1.2.1 public class DEBUG extends Quad { 17 cananian 1.1.2.1 /** The debugging string. */ 18 cananian 1.1.2.2 final protected String str; 19 cananian 1.1.2.1 20 cananian 1.1.2.1 /** Creates a <code>DEBUG</code> object. <code>DEBUG</code> prints a 21 cananian 1.1.2.2 * debugging string to standard error. 22 cananian 1.1.2.2 * @param str 23 cananian 1.1.2.2 * the debugging string to print. 24 cananian 1.1.2.2 */ 25 cananian 1.1.2.4 public DEBUG(QuadFactory qf, HCodeElement source, 26 cananian 1.1.2.4 String str) { 27 cananian 1.1.2.4 super(qf, source); 28 cananian 1.1.2.1 this.str = str; 29 cananian 1.1.2.2 // VERIFY legality of this DEBUG 30 cananian 1.3.2.1 assert str!=null; 31 cananian 1.1.2.1 } 32 cananian 1.1.2.2 // ACCESSOR METHODS: 33 cananian 1.1.2.2 /** Returns the debugging string printed by this quad. */ 34 cananian 1.1.2.2 public String str() { return str; } 35 cananian 1.1.2.2 36 cananian 1.1.2.3 public int kind() { return QuadKind.DEBUG; } 37 cananian 1.1.2.3 38 cananian 1.1.2.5 public Quad rename(QuadFactory qqf, TempMap defMap, TempMap useMap) { 39 cananian 1.1.2.4 return new DEBUG(qqf, this, str); 40 cananian 1.1.2.3 } 41 cananian 1.1.2.3 42 cananian 1.1.2.7 public void accept(QuadVisitor v) { v.visit(this); } 43 cananian 1.5 public <T> T accept(QuadValueVisitor<T> v) { return v.visit(this); } 44 cananian 1.1.2.3 45 cananian 1.1.2.1 /** Returns a human-readable version of the <code>DEBUG</code> quad. */ 46 cananian 1.1.2.2 public String toString() { return "DEBUG: \""+Util.escape(str)+"\""; } 47 cananian 1.2 }