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

J.15.14 Предикаты управления разработкой

Этот подпункт определяет предикаты, которые задают аспекты, помогающие управлять порядком разработки элементов_библиотеки.

Синтаксис

Следующие предикаты определены с данными формами:
предикат Preelaborate[(единица_библиотеки_имя)];
предикат Preelaborable_Initialization(прямое_имя);
предикат Pure[(единица_библиотеки_имя)];
предикат Elaborate_Body[(единица_библиотеки_имя)];
Предикаты Preelaborate, Pure и Elaborate_Body являются предикатными единицами библиотеки.

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

Предикат Preelaborate указывает, что единица библиотеки предварительно разработана, а именно, что аспект Preelaborate (см. 10.2.1) единицы библиотеки имеет значение True.
Предикат Pure указывает, что единица библиотеки объявлена чистой, а именно, что аспект Pure (см. 10.2.1) единицы библиотеки имеет значение True.
Предикат Elaborate_Body указывает, что единица библиотеки требует завершения, а именно, что аспект Elaborate_Body (см. 10.2.1) единицы библиотеки имеет значение True.

Правила правомерности

Предикат Preelaborable_Initialization указывает, что аспект Preelaborable_Initialization (см. 10.2.1) для составного типа имеет значение True. Этот предикат должен появляться в видимой части пакета или обобщенного пакета.
Если предикат появляется в первом списке объявлений спецификации_пакета, то прямое_имя должно обозначать первый подтип составного типа, и тип должен быть объявлен непосредственно в том же пакете, что и предикат. Составной тип должен быть таким, для которого аспект Preelaborable_Initialization может быть непосредственно задан как True. Помимо мест, где обычно применяются правила правомерности (см. 12.3), эти правила также применяются в закрытой части экземпляра обобщенного блока.
Если предикат появляется в части_формальных_параметров_обобщения, то прямое_имя должно обозначать тип, объявленный в той же части_формальных_параметров_обобщения, что и предикат, и быть таким, для которого аспект Preelaborable_Initialization может быть непосредственно задан как True.
ПРИМЕЧАНИЕ. Предикаты Elaborate и Elaborate_All, которые не имеют связанных аспектов, приведены в 10.2.1.


Spec-Zone.ru

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