Style Guide references: 3.2.5 Constants and Named Numbers, 3.4.2 Enumeration Types, 5.3.3 Private Types, 5.5.1 Range Values, 5.5.2 Array Attributes, 6.2.3 Attributes 'Count, 'Callable and 'Terminated, 8.2.4 Subtypes in Generic Specifications
This annex summarizes the definitions given elsewhere of the predefined language attributes.
Yields the address of the first of the storage units allocated to P. For a subprogram, package, task unit, or label, this value refers to the machine code associated with the corresponding body or statement. For an entry for which an address clause has been given, the value refers to the corresponding hardware interrupt. The value of this attribute is of the type ADDRESS defined in the package SYSTEM. (See 13.7.2.)
Yields the number of decimal digits needed after the point to accommodate the precision of the subtype P, unless the delta of the subtype P is greater than 0.1, in which case the attribute yields the value one. (P'AFT is the smallest positive integer N for which (10**N)*P'DELTA is greater than or equal to one.) The value of this attribute is of the type universal_integer. (See 3.5.10.)
This attribute denotes the base type of P. It is only allowed as the prefix of the name of another attribute: for example, P'BASE'FIRST. (See 3.3.3.)
Yields the value FALSE when the execution of the task P is either completed or terminated, or when the task is abnormal; yields the value TRUE otherwise. The value of this attribute is of the predefined type BOOLEAN. (See 9.9.)
Yields the value TRUE if a discriminant constraint applies to the object P, or if the object is a constant (including a formal parameter or generic formal parameter of mode in); yields the value FALSE otherwise. If P is a generic formal parameter of mode in out, or if P is a formal parameter of mode in out or out and the type mark given in the corresponding parameter specification denotes an unconstrained type with discriminants, then the value of this attribute is obtained from that of the corresponding actual parameter. The value of this attribute is of the predefined type BOOLEAN. (See 3.7.4.)
Yields the value FALSE if P denotes an unconstrained nonformal private type with discriminants; also yields the value FALSE if P denotes a generic formal private type and the associated actual subtype is either an unconstrained type with discriminants or an unconstrained array type; yields the value TRUE otherwise. The value of this attribute is of the predefined type BOOLEAN. (See 7.4.2.)
Yields the number of entry calls presently queued on the entry (if the attribute is evaluated within an accept statement for the entry P, the count does not include the calling task). The value of this attribute is of the type universal_integer. (See 9.9.)
Yields the value of the delta specified in the fixed accuracy definition for the subtype P. The value of this attribute is of the type universal_real. (See 3.5.10.)
Yields the number of decimal digits in the decimal mantissa of model numbers of the subtype P. (This attribute yields the number D of section 3.5.7.) The value of this attribute is of the type universal_integer. (See 3.5.8.)
Yields the largest exponent value in the binary canonical form of model numbers of the subtype P. (This attribute yields the product 4*B of section 3.5.7.) The value of this attribute is of the type universal_integer. (See 3.5.8.)
Yields the absolute value of the difference between the model number 1.0 and the next model number above, for the subtype P. The value of this attribute is of the type universal_real. (See 3.5.8.)
Yields the lower bound of P. The value of this attribute has the same type as P. (See 3.5.)
Yields the lower bound of the first index range. The value of this attribute has the same type as this lower bound. (See 3.6.2 and 3.8.2.)
Yields the lower bound of the N-th index range. The value of this attribute has the same type as this lower bound. The argument N must be a static expression of type universal_integer. The value of N must be positive (nonzero) and no greater than the dimensionality of the array. (See 3.6.2 and 3.8.2.)
Yields the offset, from the start of the first of the storage units occupied by the component, of the first bit occupied by the component. This offset is measured in bits. The value of this attribute is of the type universal_integer. (See 13.7.2.)
Yields the minimum number of characters needed for the integer part of the decimal representation of any value of the subtype P, assuming that the representation does not include an exponent, but includes a one-character prefix that is either a minus sign or a space. (This minimum number does not include superfluous zeros or underlines, and is at least two.) The value of this attribute is of the type universal_integer. (See 3.5.10.)
This attribute is a function with a single parameter. The actual parameter X must be a value of the base type of P. The result type is the predefined type STRING. The result is the image of the value of X, that is, a sequence of characters representing the value in display form. The image of an integer value is the corresponding decimal literal; without underlines, leading zeros, exponent, or trailing spaces; but with a one character prefix that is either a minus sign or a space. The image of an enumeration value is either the corresponding identifier in upper case or the corresponding character literal (including the two apostrophes); neither leading nor trailing spaces are included. The image of a character other than a graphic character is implementation-defined. (See 3.5.5.)
The attribute yields the largest positive model number of the subtype P. The value of this attribute is of the type universal_real. (See 3.5.8 and 3.5.10.)
Yields the upper bound of P. The value of this attribute has the same type as P. (See 3.5.)
Yields the upper bound of the first index range. The value of this attribute has the same type as this upper bound. (See 3.6.2 and 3.8.2.)
Yields the upper bound of the N-th index range. The value of this attribute has the same type as this upper bound. The argument N must be a static expression of type universal_integer. The value of N must be positive (nonzero) and no greater than the dimensionality of the array. (See 3.6.2 and 3.8.2.)
Yields the offset, from the start of the first of the storage units occupied by the component, of the last bit occupied by the component. This offset is measured in bits. The value of this attribute is of the type universal_integer. (See 13.7.2.)
Yields the number of values of the first index range (zero for a null range). The value of this attribute is of the type universal_integer. (See 3.6.2.)
Yields the number of values of the N-th index range (zero for a null range). The value of this attribute is of the type universal_integer. The argument N must be a static expression of type universal_integer. The value of N must be positive (nonzero) and no greater than the dimensionality of the array. (See 3.6.2 and 3.8.2.)
Yields the largest value of exponent for the machine representation of the base type of P. The value of this attribute is of the type universal_integer. (See 13.7.3.)
Yields the smallest (most negative) value of exponent for the machine representation of the base type of P. The value of this attribute is of the type universal_integer. (See 13.7.3.)
Yields the number of digits in the mantissa for the machine representation of the base type of P (the digits are extended digits in the range 0 to P'MACHINE_RADIX - 1). The value of this attribute is of the type universal_integer. (See 13.7.3.)
Yields the value TRUE if every predefined operation on values of the base type of P either provides a correct result, or raises the exception NUMERIC_ERROR in overflow situations; yields the value FALSE otherwise. The value of this attribute is of the predefined type BOOLEAN. (See 13.7.3.)
Yields the value of the radix used by the machine representation of the base type of P. The value of this attribute is of the type universal_integer. (See 13.7.3.)
Yields the value TRUE if every predefined arithmetic operation on values of the base type of P either returns an exact result or performs rounding; yields the value FALSE otherwise. The value of this attribute is of the predefined type BOOLEAN. (See 13.7.3.)
Yields the number of binary digits in the binary mantissa of model numbers of the subtype P. (This attribute yields the number B of section 3.5.7 for a floating point type, or of section 3.5.9 for a fixed point type.) The value of this attribute is of the type universal_integer. (See 3.5.8 and 3.5.10.)
This attribute is a function with a single parameter. The actual parameter X must be a value of the base type of P. The result type is the type universal_integer. The result is the position number of the value of the actual parameter. (See 3.5.5.)
Yields the offset, from the start of the first storage unit occupied by the record, of the first of the storage units occupied by the component. This offset is measured in storage units. The value of this attribute is of the type universal_integer. (See 13.7.2.)
This attribute is a function with a single parameter. The actual parameter X must be a value of the base type of P. The result type is the base type of P. The result is the value whose position number is one less than that of X. The exception CONSTRAINT_ERROR is raised if X equals P'BASE'FIRST. (See 3.5.5.)
Yields the first index range of P, that is, the range P'FIRST .. P'LAST. (See 3.6.2.)
Yields the N-th index range of P, that is, the range P'FIRST(N) .. P'LAST(N). (See 3.6.2.)
Yields the largest exponent value in the binary canonical form of safe numbers of the base type of P. (This attribute yields the number E of section 3.5.7.) The value of this attribute is of the type universal_integer. (See 3.5.8.)
Yields the largest positive safe number of the base type of P. The value of this attribute is of the type universal_real. (See 3.5.8 and 3.5.10.)
Yields the smallest positive (nonzero) safe number of the base type of P. The value of this attribute is of the type universal_real. (See 3.5.8 and 3.5.10.)
Yields the number of bits allocated to hold the object. The value of this attribute is of the type universal_integer. (See 13.7.2.)
Yields the minimum number of bits that is needed by the implementation to hold any possible object of the type or subtype P. The value of this attribute is of the type universal_integer. (See 13.7.2.)
Yields the smallest positive (nonzero) model number of the subtype P. The value of this attribute is of the type universal_real. (See 3.5.8 and 3.5.10.)
Yields the total number of storage units reserved for the collection associated with the base type of P. The value of this attribute is of the type universal_integer. (See 13.7.2.)
Yields the number of storage units reserved for each activation of a task of the type P or for the activation of the task object P. The value of this attribute is of the type universal_integer. (See 13.7.2.)
This attribute is a function with a single parameter. The actual parameter X must be a value of the base type of P. The result type is the base type of P. The result is the value whose position number is one greater than that of X. The exception CONSTRAINT_ERROR is raised if X equals P'BASE'LAST. (See 3.5.5.)
Yields the value TRUE if the task P is terminated; yields the value FALSE otherwise. The value of this attribute is of the predefined type BOOLEAN. (See 9.9.)
This attribute is a special function with a single parameter X which can be of any integer type. The result type is the base type of P. The result is the value whose position number is the universal_integer value corresponding to X. The exception CONSTRAINT_ERROR is raised if the universal_integer value corresponding to X is not in the range P'POS(P'BASE'FIRST) .. P'POS(P'BASE'LAST). (See 3.5.5.)
This attribute is a function with a single parameter. The actual parameter X must be a value of the predefined type STRING. The result type is the base type of P. Any leading and any trailing spaces of the sequence of characters that corresponds to X are ignored. For an enumeration type, if the sequence of characters has the syntax of an enumeration literal and if this literal exists for the base type of P, the result is the corresponding enumeration value. For an integer type, if the sequence of characters has the syntax of an integer literal, with an optional single leading character that is a plus or minus sign, and if there is a corresponding value in the base type of P, the result is this value. In any other case, the exception CONSTRAINT_ERROR is raised. (See 3.5.5.)
Yields the maximum image length over all values of the subtype P (the image is the sequence of characters returned by the attribute IMAGE). The value of this attribute is of the type universal_integer. (See 3.5.5.)
Address any questions or comments to adainfo@sw-eng.falls-church.va.us.