Class Expr

java.lang.Object
EDU.purdue.cs.bloat.tree.Node
EDU.purdue.cs.bloat.tree.Expr
All Implemented Interfaces:
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 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:
  • Field Details

    • type

      protected Type type
  • Constructor Details

    • Expr

      public Expr(Type type)
      Constructor. Initializes an expression with a given type.
      Parameters:
      type - The initial Type (descriptor) of this expression.
  • Method Details

    • 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:
      cleanupOnly in class Node
    • 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 Object clone()
      Overrides:
      clone in class 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 Object comparator()
      Returns an Object that can be used to compare other Expr to this.