harpoon.IR.Tree
Class LABEL
java.lang.Object
harpoon.IR.Tree.Tree
harpoon.IR.Tree.Stm
harpoon.IR.Tree.LABEL
- All Implemented Interfaces:
- HCodeElement, HDataElement
public class LABEL
- extends Stm
- implements HDataElement
LABEL
objects define the constant value of the given
label to be the current machine code address. This is like a label
definition in assembly language. The value NAME(Label l)
may be the target of jumps, calls, etc.
- Version:
- $Id: LABEL.java,v 1.4 2002/04/10 03:05:45 cananian Exp $
- Author:
- C. Scott Ananian <cananian@alumni.princeton.edu>, based on
Modern Compiler Implementation in Java by Andrew Appel.
Field Summary |
boolean |
exported
Flag indicating whether the label should be exported. |
Label |
label
The symbolic name to define. |
Methods inherited from class harpoon.IR.Tree.Tree |
clone, clone, getChild, getFactory, getFirstChild, getID, getLineNumber, getParent, getSibling, getSourceFile, hashCode, kids, rename, replace, setChild, unlink |
label
public final Label label
- The symbolic name to define.
exported
public final boolean exported
- Flag indicating whether the label should be exported.
Only exported labels are visible from other classes and the
runtime. Unexported labels *may* be visible from other methods
in the same class, but are not required to be.
LABEL
public LABEL(TreeFactory tf,
HCodeElement source,
Label label,
boolean exported)
- Constructor.
kind
public int kind()
- Description copied from class:
Tree
- Return an integer enumeration of the kind of this
Tree
. The enumerated values are defined in
TreeKind
.
- Specified by:
kind
in class Tree
build
public Stm build(TreeFactory tf,
ExpList kids)
- Specified by:
build
in class Stm
accept
public void accept(TreeVisitor v)
- Accept a visitor
- Specified by:
accept
in class Tree
rename
public Tree rename(TreeFactory tf,
TempMap tm,
Tree.CloneCallback cb)
- Description copied from class:
Tree
- Rename while cloning a subtree. This node and all child nodes
are cloned; the 'temp' information of all
TEMP
nodes
are renamed according to the supplied TempMap
.
Note that Temp
s not belonging to
this.getFactory().tempFactory()
are not affected.
The callback()
method of the supplied
CloneCallback
is invoked once on each subtree cloned,
starting from the leaves and working back to the root in a
post-order depth-first manner.
- Specified by:
rename
in class Tree
toString
public String toString()
- Overrides:
toString
in class Object