This appendix lists the reserved words and predefined attributes, aspects, pragmas, and restriction identifiers. An implementation may not define additional reserved words but may define additional attributes, aspects, pragmas, and restriction identifiers.
The lists do not include obsolete items such as pragmas which are now replaced by aspect specifications. Moreover, although certain aspects such as Pure can be given by an aspect specification, the preferred style is to use a pragma; accordingly such aspects are only listed under pragmas.
Predefined attributes
This section lists all the predefined attributes. Most attributes are dealt with in detail in the body of this book and so the descriptions are generally brief.
X'Access: Applies to an object or subprogram. Yields an access value designating the entity. (See 11.4, 11.8)
X'Address: Applies to an object, program unit or label. Denotes the address of the first storage element associated with the entity. Of type System.Address. (See 25.1)
S'Adjacent: Applies to a floating point subtype S of a type T and denotes function S'Adjacent(X, Towards: T) return T; which returns the machine number adjacent to X in the direction of Towards.
S'Aft: Applies to a fixed point subtype. Yields the number of decimal digits needed after the point to accommodate the subtype S, unless the delta of the subtype S is greater than 0.1, in which case it yields the value one. (S'Aft is the smallest positive integer N for which (10**N)*S'Delta is greater than or equal to one.) Of type universal_integer. (See 23.6)
X'Alignment: Applies to a subtype or object. Zero means that an object is not necessarily aligned. Otherwise, the Address of an object is an integer multiple of this attribute. Of type universal_integer. (See 25.1)
S'Base: Applies to a scalar subtype S and denotes an unconstrained subtype of its type. (See 27.2)
S'Bit_Order: Applies to a record subtype and denotes the bit ordering. Of type System.Bit_Order. (See 25.1)
P'Body_Version: Applies to a program unit and returns a String. Used by the Distributed Systems annex.
T'Callable: Applies to a task. Yields true unless the task is completed, terminated or abnormal. Of type Boolean. (See 20.8)
E'Caller: Applies to an entry. Yields the identity of the task calling the entry body or accept statement. Of type Task_Identification.Task_ID. (See 26.1)
S'Ceiling: Applies to a floating point subtype S of a type T and denotes function S'Ceiling(X: T) return T;