Package EDU.purdue.cs.bloat.tree
Class Expr
- java.lang.Object
-
- EDU.purdue.cs.bloat.tree.Node
-
- EDU.purdue.cs.bloat.tree.Expr
-
- All Implemented Interfaces:
java.lang.Cloneable
- Direct Known Subclasses:
ArithExpr,ArrayLengthExpr,CallExpr,CastExpr,CatchExpr,CheckExpr,CondExpr,ConstantExpr,DefExpr,NegExpr,NewArrayExpr,NewExpr,NewMultiArrayExpr,ReturnAddressExpr,ShiftExpr,StoreExpr
public abstract class Expr extends Node implements java.lang.Cloneable
Expr is the superclass for a number of other classes representing expressions in byte code. Expressions are typed and may be nested.- See Also:
DefExpr
-
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidcleanupOnly()Cleans up this expression only, not its children.abstract java.lang.Objectclone()java.lang.Objectcomparator()Returns an Object that can be used to compare other Expr to this.protected ExprcopyInto(Expr expr)Copies the contents of another expression in this one.DefExprdef()Returns the expression in which this Expr is defined.abstract booleanequalsExpr(Expr other)Compares this expression to another.abstract intexprHashCode()Returns the hash code for this expresion.booleanisDef()Returns whether or not this expression is a defining occurrence.voidsetDef(DefExpr def)Sets the expression that defines this expression.booleansetType(Type type)Sets the type of this expression.Stmtstmt()Returns the statement to which this expression belongs.Typetype()Returns the Type of this expression.-
Methods inherited from class EDU.purdue.cs.bloat.tree.Node
block, cleanup, copyInto, hasParent, key, parent, replaceWith, replaceWith, setKey, setParent, setValueNumber, toString, valueNumber, visit, visitChildren, visitForceChildren, visitOnly
-
-
-
-
Field Detail
-
type
protected Type type
-
-
Constructor Detail
-
Expr
public Expr(Type type)
Constructor. Initializes an expression with a given type.- Parameters:
type- The initial Type (descriptor) of this expression.
-
-
Method Detail
-
setType
public boolean setType(Type type)
Sets the type of this expression. Returns whether or not the type changed as a result of calling this method.
-
isDef
public boolean isDef()
Returns whether or not this expression is a defining occurrence. By default, false is returned.
-
stmt
public Stmt stmt()
Returns the statement to which this expression belongs. It essentially searches up the expression tree for this expression's first ancestor which is a Stmt.
-
type
public Type type()
Returns the Type of this expression.
-
cleanupOnly
public void cleanupOnly()
Cleans up this expression only, not its children.- Specified by:
cleanupOnlyin classNode
-
setDef
public void setDef(DefExpr def)
Sets the expression that defines this expression.- Parameters:
def- Defining expression.
-
def
public DefExpr def()
Returns the expression in which this Expr is defined.
-
exprHashCode
public abstract int exprHashCode()
Returns the hash code for this expresion.
-
equalsExpr
public abstract boolean equalsExpr(Expr other)
Compares this expression to another.- Parameters:
other- Expr to which to compare this.
-
clone
public abstract java.lang.Object clone()
- Overrides:
clonein classjava.lang.Object
-
copyInto
protected Expr copyInto(Expr expr)
Copies the contents of another expression in this one.- Parameters:
expr- The expression from which to copy.
-
comparator
public java.lang.Object comparator()
Returns an Object that can be used to compare other Expr to this.
-
-