Interface AssignExprIF

All Known Subinterfaces:
AssignAuxExprIF, AssignFieldExprIF, AssignOffsetExprIF, AssignStoreExprIF, AssignSubscriptExprIF

public interface AssignExprIF

An instance of this class represents an abstract object. We define an abstract object U inductively: U := variable | allocation | string | U.id | U + (c|*) | U[c|*] | auxiliary | FULL , where "c|*" represents either a integral constant or an arbitrary integer; "auxiliary" represents a temporary abstract object that DOES NOT associated with any actual program object.; "FULL" represents a ponter that may points to any possible object

An invariant: for U + (c|*), U must NOT have the form of U + (c|*)

  • Method Details

    • kind

      Returns:
      the kind of this AssignExprIF or null if this is instance represents "FULL" (i.e., isFull())
    • isFull

      boolean isFull()
      Returns:
      true iff this is an abstract object that represents a pointer may points to any object
    • type

      Type type()
      Returns:
      the type of this AssignExprIF
    • root

      AssignExprIF root()
      Returns:
      the root of this abstract object, it is either a STORE kind, an AUX kind instance or an instance representing FULL
    • mayEquals

      boolean mayEquals(AssignExprIF e)
      Parameters:
      e -
      Returns:
      true either e generalizes this instance or this instance generalizes e