Справочное руководство по языку Ада-83


Прагмы


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

прагма ::=pragma идентификатор [(сопоставление-аргумента {, сопоставление-аргумента })];

сопоставление-аргумента ::= [идентификатор-аргумента => ] имя [идентификатор-аргумента => ] выражение

Прагмы допустимы только в следующих местах программы:

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

• В любом месте, где синтаксические правила допускают синтаксические понятия, в названии которых содержатся слова «описание», «оператор», «спецификатор» или «альтернатива», или одно из синтаксических понятий—вариант и обработчик исключений, но не вместо соответствующих конструкций, а также в любом месте, где допустим компилируемый модуль.

На месторасположение отдельных прагм могут накладываться дополнительные ограничения.

Некоторые прагмы имеют аргументы. Сопоставления аргументов могут быть либо позиционными, либо именованными, как и при сопоставлении параметров в вызовах подпрограмм (см. 6.4). Однако именованные сопоставления возможны, если определены идентификаторы аргументов. Именем аргумента должно быть либо имя, видимое в месте употребления прагмы, либо идентификатор, специфический для этой прагмы.

Предопределенные прагмы описаны в приложении В; они должны поддерживаться в каждой реализации. Реализация может определить дополнительные прагмы. Они должны быть описаны в приложении F. Реализация не должна допускать определение прагм, наличие или отсутствие которых влияет на правильность текста программы. Следовательно, правильность программы не зависит от наличия или отсутствия прагм, определенных реализацией.

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




Начало  Назад  Вперед



Книжный магазин