- 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
AssignExprIF.AssignExprKind kind()- Returns:
- the kind of this
AssignExprIFor 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
- Parameters:
e-- Returns:
- true either e generalizes this instance or this instance generalizes e
-