harpoon.IR.Tree
Class UNOP

java.lang.Object
  extended by harpoon.IR.Tree.Tree
      extended by harpoon.IR.Tree.Exp
          extended by harpoon.IR.Tree.OPER
              extended by harpoon.IR.Tree.UNOP
All Implemented Interfaces:
HCodeElement, Typed

public class UNOP
extends OPER

UNOP objects are expressions which stand for result of applying some unary operator o to a subexpression.

Version:
$Id: UNOP.java,v 1.4 2002/04/10 03:05:46 cananian Exp $
Author:
C. Scott Ananian <cananian@alumni.princeton.edu>, based on Modern Compiler Implementation in Java by Andrew Appel.
See Also:
Uop

Nested Class Summary
 
Nested classes/interfaces inherited from class harpoon.IR.Tree.Tree
Tree.CloneCallback
 
Field Summary
 
Fields inherited from class harpoon.IR.Tree.OPER
op, optype
 
Fields inherited from class harpoon.IR.Tree.Tree
arrayFactory, child
 
Fields inherited from interface harpoon.IR.Tree.Typed
DOUBLE, FLOAT, INT, LONG, POINTER
 
Constructor Summary
UNOP(TreeFactory tf, HCodeElement source, int optype, int unop, Exp operand)
          Constructor.
 
Method Summary
 void accept(TreeVisitor v)
          Accept a visitor
 Exp build(TreeFactory tf, ExpList kids)
           
static Object evalValue(TreeFactory tf, int op, int optype, Object left)
           
 Exp getOperand()
          Returns the subexpression to be operated upon.
 int kind()
          Return an integer enumeration of the kind of this Tree.
 Tree rename(TreeFactory tf, TempMap tm, Tree.CloneCallback cb)
          Rename while cloning a subtree.
 void setOperand(Exp operand)
          Sets the subexpression to be operated upon.
 String toString()
           
 int type()
          Returns an int identifying the TYPE that this unary operation returns.
 
Methods inherited from class harpoon.IR.Tree.OPER
operandType
 
Methods inherited from class harpoon.IR.Tree.Exp
build, isDoubleWord, isFloatingPoint
 
Methods inherited from class harpoon.IR.Tree.Tree
clone, clone, getChild, getFactory, getFirstChild, getID, getLineNumber, getParent, getSibling, getSourceFile, hashCode, kids, rename, replace, setChild, unlink
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UNOP

public UNOP(TreeFactory tf,
            HCodeElement source,
            int optype,
            int unop,
            Exp operand)
Constructor.

Parameters:
unop - Enumerated operation type, from Uop.
Method Detail

getOperand

public Exp getOperand()
Returns the subexpression to be operated upon.


setOperand

public void setOperand(Exp operand)
Sets the subexpression to be operated upon.


type

public int type()
Returns an int identifying the TYPE that this unary operation returns.

Specified by:
type in interface Typed
Specified by:
type in class OPER
See Also:
Uop

evalValue

public static Object evalValue(TreeFactory tf,
                               int op,
                               int optype,
                               Object left)

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 Exp build(TreeFactory tf,
                 ExpList kids)
Specified by:
build in class Exp

accept

public void accept(TreeVisitor v)
Accept a visitor

Overrides:
accept in class OPER

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 Temps 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