Ада-95. Компилятор GNAT
66ac8edd

Стандартно определенные атрибуты типов


Список стандартно определенных атрибутов типов Ады приводится в приложении K (Annex K) руководства по языку программирования Ада (RM-95).

P'Access где P - любая подпрограмма.

Возвращает значение ссылочного типа, которое указывает на подпрограмму P.

   
X'Access  -  где X: любой объект с косвенным доступом.



Возвращает значение ссылочного типа, которое указывает на X.

   
X'Address  -  где X: любой объект или программный модуль.

Возвращает адрес первого распределенного для хранения X элемента памяти как значение типа System.Address.

   
S'Adjacent  -  где S: любой вещественный тип с плавающей точкой.

Функция которая возвращает смежное по отношению к первому параметру машинное число, в указанном вторым параметром направлении.

   
S'Aft  -  где S: любой вещественный тип с фиксированной точкой.

Возвращает значение типа Universal_Integer, которое показывает требуемое число десятичных цифр после десятичной точки для обеспечения величины delta

при представлении S.

   
X'Alignment  -  где X: любой тип или объект.

Возвращает значение типа Universal_Integer, указывающее выравнивание X в памяти.

   
S'Base  -  где S: любой скалярный тип.

Возвращает неограниченный базовый тип для S.

   
S'Bit_Order  -  где S: любой тип записи.

Возвращает битовый порядок для S как значение типа System.Bit_Order.

   
P'Body_Version  -  где P: любой программный модуль.

Возвращает строку которая идентифицирует версию тела компилируемого модуля P.

   
T'Callable  -  где T: любая задача.

Возвращает значение True, если T может быть вызвана.

   
E'Caller  -  где E: имя любой точки входа.

Возвращает значение типа Task_ID, которое идентифицирует обрабатываемую в текущий момент задачу, обратившуюся к точке входа задачи E.

Использование этого атрибута допустимо только внутри инструкции принятия (для задачи-сервера) или внутри тела входа (для защищенного модуля).

   
S'Ceiling  -  где S: любой вещественный тип с плавающей точкой.

Функция возвращающая наименьшее целочисленное значение, которое больше или равно ее параметру.

   
S'Class  -  где S: любой тэговый тип.

Возвращает надклассовый тип для класса корнем иерархии которого будет тип S.

   
X'Component_Size  -  где X: любой объект или тип массива.

Возвращает значение типа Universal_Integer

которое представляет битовый размер компонентов X.

   
S'Compose  -  где S: любой вещественный тип с плавающей точкой.

Функция которая возвращает значение вещественного типа с плавающей точкой, комбинируя дробную часть, которая представлена первым параметром, и порядок, который представлен вторым параметром.

   
A'Constrained  -  где A: любой тип с дискриминантом.

Возвращает True когда A является ограниченным.

   
S'Copy_Sign  -  где S: любой вещественный тип с плавающей точкой.

Функция которая возвращает значение величина которого определяется первым параметром, а знак - вторым параметром.

   
E'Count  -  где E: имя любой точки входа.

Возвращает значение типа Universal_Integer, показывающее число обращений к точке входа E

которые находятся в очереди.

   
S'Definite  -  где S: любой формально неопределенный тип.

Возвращает True если фактический тип S определен.

   
S'Delta  -  где S: любой вещественный тип с плавающей точкой.

Возвращает значение типа Universal_Real, показывающее величину значения delta для S

   
S'Denorm  -  где S: любой вещественный тип с плавающей точкой.

Возвращает True если ненормализованные значения S

являются машинными числами.

   
S'Digits  -  где S: любой тип decimal или вещественный тип с плавающей точкой.

Возвращает значение типа Universal_Integer, показывающее число цифр для S.

   
S'Exponent  -  где S: любой вещественный тип с плавающей точкой.

Функция возвращающая значение типа Universal_Integer, которое представляет нормализованный порядок ее параметра.

   
S'External_Tag  -  где S: любой тэговый тип.

Возвращает представление S'Tag как значение типа String.

   
A'First(N)  -  где A: любой массив.

Возвращает нижнюю границу диапазона N-го индекса массива A.

   
A'First  -  где A: любой массив.

Возвращает нижнюю границу диапазона первого индекса массива A.

   
S'First  -  где S: любой скалярный тип.

Возвращает нижнюю границу диапазона значений типа S.

   
R.C'First_Bit  -  где R.C: любой компонент C записи типа R.

Возвращает значение типа Universal_Integer, которое представляет число битов до первого бита C внутри записи типа R.

   
S'Floor  -  где S: любой вещественный тип с плавающей точкой.

Функция возвращающая наибольшее целочисленное значение, которое больше или равно ее параметру.

   
S'Fore  -  где S: любой вещественный тип с плавающей точкой.

Возвращает значение типа Universal_Integer

которое показывает минимально необходимое для представления значения S

число символов до десятичной точки.

   
S'Fraction  -  где S: любой вещественный тип с плавающей точкой.

Функция которая возвращает дробную часть ее параметра.

   
E'Identity  -  где E: любое исключение.

Возвращает значение типа Exception_ID которое уникально идентифицирует E.

   
T'Identity  -  где T: любая задача.

Возвращает значение типа Task_ID которое уникально идентифицирует T.

   
S'Image  -  где S: любой скалярный тип.

Функция которая возвращает представление ее параметра как значение типа String.

   
S'Input  -  где S: любой тип.

Функция которая читает и возвращает значение типа S

из потока, который указывается ее параметром.

   
S'Class'Input  -  где S'Class: любой надклассовый тип.

Функция которая читает из указанного как параметр потока тэг, затем, выполняет диспетчеризацию (перенаправление) вызова к подпрограмме указываемой атрибутом 'Input

для типа, который идентифицируется значением прочитанного тэга, после чего, возвращает значение этого типа.

   
A'Last(N)  -  где A: любой массив.

Возвращает верхнюю границу диапазона N-го индекса массива A.

   
A'Last  -  где A: любой массив.

Возвращает верхнюю границу диапазона первого индекса массива A.

   
S'Last  -  где S: любой скалярный тип.

Возвращает верхнюю границу диапазона значений типа S.

   
R.C'Last_Bit  -  где R.C: любой компонент C записи типа R.

Возвращает значение типа Universal_Integer, которое представляет число битов до последнего бита C внутри записи типа R.

   
S'Leading_Part  -  где S: любой вещественный тип с плавающей точкой.

Функция которая возвращает главную часть ее первого параметра как число системы исчисления указанной как второй параметр.

   
A'Length(N)  -  где A: любой массив.

Возвращает длину N-го измерения массива A

как значение типа Universal_Integer.

   
A'Length  -  где A: любой массив.

Возвращает длину первого измерения массива A

как значение типа Universal_Integer.

   
S'Machine  -  где S: любой вещественный тип с плавающей точкой.

Функция которая возвращает ближайшее к ее параметру машинно-представляемое число.

   
S'Machine_Emax  -  где S: любой вещественный тип с плавающей точкой.

Возвращает наибольший порядок для S как значение типа Universal_Integer.

   
S'Machine_Emin  -  где S: любой вещественный тип с плавающей точкой.

Возвращает наименьший порядок для S как значение типа Universal_Integer.

   
S'Machine_Mantissa  -  где S: любой вещественный тип с плавающей точкой.

Возвращает для машинного представления S число цифр в мантиссе как значение типа Universal_Integer.

   
S'Machine_Overflows  -  где S: любой вещественный тип.

Возвращает True если было обнаружено переполнение или деление на ноль и возбуждено исключение Constraint_Error

для каждой предопределенной операции возвращающей результат типа S.

   
S'Machine_Radix  -  где S: любой вещественный тип.

Возвращает основание системы счисления для машинного представления S

как значение типа Universal_Integer.

   
S'Machine_Rounds  -  где S: любой вещественный тип.

Возвращает True если было выполнено округление неточного результата для каждой предопределенной операции возвращающей результат типа S.

   
S'Max  -  где S: любой скалярный тип.

Функция которая возвращает большее значение из двух переданных ей параметров.

   
S'Max_Size_In_Storage_Elements  -  где S: любой тип.

Возвращает значение типа Universal_Integer показывающее максимальное число элементов памяти занимаемых значением типа S, которое требуется при обращении к подпрограмме System.Storage_Pools.Allocate

как параметр Size_In_Storage_Elements

для получения значения ссылающегося на S типа.

   
S'Min  -  где S: любой скалярный тип.

Функция которая возвращает меньшее значение из двух переданных ей параметров.

   
S'Model  -  где S: любой вещественный тип с плавающей точкой.

Функция возвращающая образец числа значение которого будет смежным значением ее параметра.

   
S'Model_Emin  -  где S: любой вещественный тип с плавающей точкой.

Возвращает образец числа соответствующий S'Model_Emin.

   
S'Model_Epsilon  -  где S: любой вещественный тип с плавающей точкой.

Возвращает абсолютную разницу между 1.0

и следующим наибольшим образцом числа S

как значение типа Universal_Real.

   
S'Model_Mantissa  -  где S: любой вещественный тип с плавающей точкой.

Возвращает образец числа соответствующий S'Machine_Mantissa.

   
S'Model_Small  -  где S: любой вещественный тип с плавающей точкой.

Возвращает наименьший положительный образец числа S

как значение типа Universal_Real.

   
S'Modulus  -  где S: любой модульный тип.

Возвращает основание системы счисления S

как значение типа Universal_Integer.

   
S'Output  -  где S: любой тип.

Процедура записывающая ее второй параметр в поток, который представлен ее первым параметром, включая любые границы или дискриминанты.

   
S'Class'Output  -  где S'Class: любой надклассовый тип.

Процедура записывающая тэг ее второго параметра в поток, который указан как первый параметр, затем, выполняет диспетчеризацию (перенаправление) вызова к подпрограмме указываемой атрибутом 'Output

для типа, который идентифицируется значением тэга ее второго параметра.

   
D'Partition_ID  -  где D: любое описание уровня библиотеки.

Возвращает значение типа Universal_Integer

которое идентифицирует раздел (partition) распределенной программы в которой выполнена элаборация D.

   
S'Pos  -  где S: любой дискретный тип.

Функция которая возвращает номер позиции ее параметра как значение типа Universal_Integer.

   
R.C'Position  -  где R.C: любой компонент C записи типа R.

То же самое, что и R.C'Address - R'Address.

   
S'Pred  -  где S: любой дискретный тип.

Функция возвращающая значение у которого величина номера позиции на единицу меньше чем номер позиции ее параметра.

   
A'Range(N)  -  где A: любой тип массива.

Эквивалентно A'First(N) .. A'Last(N), кроме случая когда вычисление A было выполнено один раз.

   
A'Range  -  где A: любой тип массива.

Эквивалентно A'First .. A'Last, кроме случая когда вычисление A было выполнено один раз.

   
S'Range  -  где S: любой скалярный тип.

Эквивалентно S'First .. S'Last.

   
S'Read  -  где S: любой тип.

Процедура читающая ее второй параметр из потока, который указан ее первым параметром.

   
S'Class'Read  -  где S'Class: любой надклассовый тип.

Процедура выполняющая диспетчеризацию (перенаправление) вызова к подпрограмме указываемой атрибутом Read для типа, который идентифицируется значением тэга ее второго параметра.

   
S'Remainder  -  где S: любой вещественный тип с плавающей точкой.

Функция которая возвращает остаток от деления ее первого параметра на ее второй параметр.

   
S'Round  -  где S: любой вещественный тип с плавающей точкой.

Функция которая возвращает округленное значение ее параметра.

   
S'Rounding  -  где S: любой вещественный тип с плавающей точкой.

Функция которая возвращает ближайшее к ее параметру целое значение.

   
S'Safe_First  -  где S: любой вещественный тип с плавающей точкой.

Возвращает нижнюю границу сохранного диапазона S

как значение типа Universal_Real.

   
S'Safe_Last  -  где S: любой вещественный тип с плавающей точкой.

Возвращает верхнюю границу сохранного диапазона S

как значение типа Universal_Real.

   
S'Scale  -  где S: любой вещественный тип с плавающей точкой.

Возвращает для значения S позицию точки относительно крайней правой значащей цифры как значение типа Universal_Integer.

   
S'Scaling  -  где S: любой вещественный тип с плавающей точкой.

Функция которая масштабирует ее первый параметр согласно основания машинной системы исчисления возведенной в степень ее второго параметра.

   
S'Signed_Zeros  -  где S: любой вещественный тип с плавающей точкой.

Возвращает True если аппаратное представление для S

обладает возможностью представления и положительного, и отрицательного нуля.

   
X'Size  -  где X: любой тип или объект.

Возвращает размер X в битах как значение типа Universal_Integer.

   
S'Small  -  где S: любой вещественный тип с плавающей точкой.

Возвращает наименьшее используемое внутри типа значение для представления S

как значение типа Universal_Real.

   
S'Storage_Pool  -  где S: любой ссылочный тип.

Возвращает пул пространства памяти который используется для S

как значение типа Root_Storage_Pool'Class.

   
S'Storage_Size  -  где S: любой ссылочный тип.

Возвращает результат вызова Storage_Size(S'Storage_Pool).

   
T'Storage_Size  -  где T: любая задача.

Возвращает число элементов памяти зарезервированных для T

как значение типа Universal_Integer.

   
S'Succ  -  где S: любой скалярный тип.

Функция возвращающая значение у которого величина номера позиции на единицу больше чем номер позиции ее параметра.

   
X'Tag  -  где X: любой тэговый тип или объект надклассового типа.

Возвращает тэг X как значение типа Ada.Tags.Tag.

   
T'Terminated  -  где T: любая задача.

Возвращает True если выполнение T завершено.

   
S'Truncation  -  где S: любой вещественный тип с плавающей точкой.

Функция которая округляет ее параметр в направлении нуля.

   
S'Unbiased_Rounding  -  где S: любой вещественный тип с плавающей точкой.

Функция которая возвращает ближайшее к ее параметру целочисленное значение, выполняя округление в направлении четного целого если значение параметра располагается точно между двумя целыми.

   
X'Unchecked_Access  -  где X: любой объект с косвенным доступом.

Возвращает то же самое значение, что и X'Access, однако при этом не осуществляется проверка правильности обращения.

   
S'Val  -  где S: любой дискретный тип.

Функция возвращающая значение типа S номера позиции которого равен величине ее параметра.

   
X'Valid  -  где X: любой скалярный объект.

Возвращает True если X - это нормальный стандартный объект имеющий допустимое представление.

   
S'Value  -  где S: любой скалярный тип.

Функция возвращающая значение типа S представление которого задано в виде значения типа String, игнорируя ведущие и завершающие пробелы.

   
P'Version  -  где P: любой программный модуль.

Возвращает строку (значение типа String) идентифицирующую версию компилируемого модуля который содержит описание P.

   
S'Wide_Image  -  где S: любой скалярный тип.

Функция которая возвращает представление ее параметра как значение типа Wide_String.

   
S'Wide_Value  -  где S: любой скалярный тип.

Функция возвращающая значение типа S представление которого задано в виде значения типа Wide_String, игнорируя ведущие и завершающие пробелы.

   
S'Wide_Width  -  где S: любой скалярный тип.

Возвращает максимальную длину значения типа Wide_String, возвращенного при обращении к S'Wide_Image, как значение типа Universal_Integer.

   
S'Width  -  где S: любой скалярный тип.

Возвращает максимальную длину значения типа String, возвращенного при обращении к S'Image, как значение типа Universal_Integer.

   
S'Write  -  где S: любой тип.

Процедура записывающая значение ее второго параметра в поток, который указан ее первым параметром.

   
S'Class'Write  -  где S'Class: любой надклассовый тип.

Процедура выполняющая диспетчеризацию (перенаправление) вызова к подпрограмме указываемой атрибутом 'Write

для типа, который идентифицируется значением тэга ее второго параметра.



Содержание раздела