|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectharpoon.IR.Tree.Tree
harpoon.IR.Tree.Exp
harpoon.IR.Tree.CONST
public class CONST
CONST
objects are expressions which stand for a constant
value. CONST
s should be used to represent numeric types
only. The one notable exception is the constant null
,
which is represented by a CONST
with value == null
and type == POINTER
.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class harpoon.IR.Tree.Tree |
---|
Tree.CloneCallback |
Field Summary | |
---|---|
boolean |
isSmall
|
int |
type
The type of this CONST expression. |
Number |
value
The constant value of this CONST expression. |
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 | |
---|---|
CONST(TreeFactory tf,
HCodeElement source)
Creates a CONST representing the constant
null . |
|
CONST(TreeFactory tf,
HCodeElement source,
double dval)
|
|
CONST(TreeFactory tf,
HCodeElement source,
float fval)
|
|
CONST(TreeFactory tf,
HCodeElement source,
int ival)
|
|
CONST(TreeFactory tf,
HCodeElement source,
int bitwidth,
boolean signed,
int val)
Creates a CONST with a precisely defined type. |
|
CONST(TreeFactory tf,
HCodeElement source,
long lval)
|
Method Summary | |
---|---|
void |
accept(TreeVisitor v)
Accept a visitor |
int |
bitwidth()
Returns the size of the expression, in bits. |
Exp |
build(TreeFactory tf,
ExpList kids)
|
boolean |
isSmall()
Returns true if this is a sub-integer expression. |
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. |
boolean |
signed()
Returns true if this is a signed expression, false otherwise. |
String |
toString()
|
int |
type()
Result type. |
Number |
value()
Return the constant value of this CONST expression. |
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 |
Methods inherited from interface harpoon.IR.Tree.Typed |
---|
isDoubleWord, isFloatingPoint |
Methods inherited from interface harpoon.ClassFile.HDataElement |
---|
getID, getSourceFile |
Field Detail |
---|
public final Number value
CONST
expression.
public final int type
CONST
expression.
public final boolean isSmall
Constructor Detail |
---|
public CONST(TreeFactory tf, HCodeElement source, int ival)
public CONST(TreeFactory tf, HCodeElement source, long lval)
public CONST(TreeFactory tf, HCodeElement source, float fval)
public CONST(TreeFactory tf, HCodeElement source, double dval)
public CONST(TreeFactory tf, HCodeElement source)
CONST
representing the constant
null
.
public CONST(TreeFactory tf, HCodeElement source, int bitwidth, boolean signed, int val)
CONST(tf, src, 8, true, 0xFF)
corresponds
to the value -1
, as a byte.
CONST(tf, src, 8, true, -1)
also corresponds
to the value -1
as a byte.
bitwidth
- the width in bits of this CONST
's type.
Fails unless 0 <= bitwidth < 32
.signed
- whether this CONST
is signedval
- the value of this CONST
.
Note that only the lower bitwidth
bits
of this parameter will actually be used.Method Detail |
---|
public Number value()
CONST
expression.
public int kind()
Tree
Tree
. The enumerated values are defined in
TreeKind
.
kind
in class Tree
public Exp build(TreeFactory tf, ExpList kids)
build
in class Exp
public int type()
Exp
type
in interface Typed
type
in class Exp
public boolean isSmall()
isSmall
in interface PreciselyTyped
public int bitwidth()
isSmall()==true
.
bitwidth
in interface PreciselyTyped
public boolean signed()
isSmall()==true
.
signed
in interface PreciselyTyped
public void accept(TreeVisitor v)
accept
in class Tree
public Tree rename(TreeFactory tf, TempMap tm, Tree.CloneCallback cb)
Tree
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.
rename
in class Tree
public String toString()
toString
in class Object
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |