- All Superinterfaces:
ObjectType,SetType,Type,UnqualifiedObjectType
This class represents the $mem type which stands for a set of
(typed) memory locations.
There is always an implicit type conversion from SetType with element
of pointer type to MemType. An expression e in CIVL-C
language of $mem type can only be one of the following forms:
- e is an identifier
- e is a function call, to which returns $mem type object
- e has form:
($mem)e'where the cast can be either an explicit cast or an implicit conversion. The expressione'is an expression of (set-of) pointer types
In CIVL-C, an expression e of set type can only appear as a
sub-expression of such a form: ($mem)e' where the cast can be
either an explicit cast or an implicit conversion. Hence e is
either e' or a sub-expression of e'. See
SetType for more informations.
In addition, for an expression of the form: ($mem)e' where the
cast can be either an explicit cast or an implicit conversion, there are
restrictions on the form of e'. See MemConversion for
more informations.
-
Nested Class Summary
Nested classes/interfaces inherited from interface dev.civl.abc.ast.type.IF.Type
Type.TypeKind -
Method Summary
Methods inherited from interface dev.civl.abc.ast.type.IF.ObjectType
hasKnownConstantSize, isComplete, isConstantQualifiedMethods inherited from interface dev.civl.abc.ast.type.IF.SetType
elementTypeMethods inherited from interface dev.civl.abc.ast.type.IF.Type
compatibleWith, equivalentTo, getId, ignoreQualifiersAtomic, isScalar, isVariablyModified, kind, print