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



              

Атрибуты типов определенные в реализации компилятора GNAT - часть 4


Однако, могут возникнуть какие-либо особенные ситуации в которых использование этого атрибута может оказаться полезным для получения возможности вызвать процедуру элаборации из кода Ады (например, в случае необходимости выполнения выборочной переэлаборации для исправления какой-либо ошибки).

   

P'Elab_Spec

 - 

где P: имя программного модуля.

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

Атрибут используется в главной процедуре элаборации редактора связей (binder) и, обычно, не должен использоваться в любом другом контексте.

Однако, могут возникнуть какие-либо особенные ситуации в которых использование этого атрибута может оказаться полезным для получения возможности вызвать процедуру элаборации из кода Ады (например, в случае необходимости выполнения выборочной переэлаборации для исправления какой-либо ошибки).

   

'Emax

 - 

Этот атрибут предусмотрен для совместимости с Ada 83.

   

S'Enum_Rep

 - 

где S: перечислимый тип, объект перечислимого типа или несовмещенный перечислимый литерал.

Для перечислимого типа обозначает функцию, которая имеет следующую спецификацию:

function S'Enum_Rep (Arg : S'Base) return Universal_Integer;

Для объекта перечислимого типа или несовмещенного перечислимого литерала S'Enum_Rep эквивалентен T'Enum_Rep(S) где T - это тип перечислимого литерала или объекта S.

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

если отсутствует спецификация представления.

Этот атрибут статический (то есть, результат статический, если аргумент статический).

Атрибут S'Enum_Rep также может быть использован для целочисленных типов и объектов.

В таких случаях, он просто возвращает целочисленное значение.

Смысл этого в том, чтобы разрешить его использование для дискретных формальных аргументов (<>) в настраиваемых модулях, которые могут быть конкретизированы как с перечислимыми типами, так и с целочисленными типами.




Содержание  Назад  Вперед