Spec-Zone.ru › Ada 2022
Руководство по Ada (Ada 2022)

J.15 Прагмы, связанные с аспектами

Прагмы могут использоваться как альтернатива аспектам_спецификациям для указания определённых аспектов.

Правила разрешения имен

Определенные прагмы определены как прагмы программных единиц. Имя, используемое в качестве аргумента прагмы программной единицы, должно разрешаться для обозначения объявлений или переименований одной или нескольких программных единиц, которые встречаются непосредственно внутри области объявления или компиляции, в которой прагма встречается непосредственно, или оно должно разрешаться для обозначения объявления непосредственно включающей программной единицы (если таковая имеется); прагма применяется к указанной(ым) программной(ым) единице(ам). Если в качестве аргументов не указаны имена, прагма применяется к непосредственно включающей программной единице.

Правила допустимости

Прагма программной единицы должна появляться в одном из этих мест:
  • В месте единицы_компиляции, в этом случае прагма должна следовать непосредственно в той же компиляции (за исключением других прагм) за объявлением_единицы_библиотеки, которое является объявлением_подпрограммы, объявлением_генерической_подпрограммы или генерацией_генерика, и прагма должна иметь аргумент, который является именем, обозначающим это объявление.
  • Непосредственно внутри видимой части программной единицы и перед любым вложенным объявлением (но не внутри формального части генерика), в этом случае аргумент, если он есть, должен быть прямым_именем, который обозначает объявление непосредственно включающей программной единицы.
  • В месте объявления, отличного от первого, части_объявлений или объявления программной единицы, в этом случае прагма должна иметь аргумент, который должен быть прямым_именем, обозначающим одну или несколько из следующих (и ничего более): объявление_подпрограммы, объявление_генерической_подпрограммы или генерация_генерика той же части_объявлений или объявления программной единицы.
Определенные прагмы программной единицы определены как прагмы единиц библиотеки. Если прагма единицы библиотеки применяется к программной единице, программная единица должна быть единицей библиотеки.

Статическая семантика

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

Рекомендации по реализации

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


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API