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

10.1.6 Правила видимости на уровне окружения

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

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

Внутри имени_родительского_блока в начале явного элемента_библиотеки и внутри неограниченного_with-описания видимы только те объявления, которые являются явными элементами_библиотеки окружения, и только те объявления являются непосредственно видимыми, которые являются явными корневыми элементами_библиотеки окружения. Внутри ограниченного_with-описания видимы только те объявления, которые являются неявным объявлением ограниченного представления библиотечного пакета окружения, и только те объявления являются непосредственно видимыми, которые являются неявным объявлением ограниченного представления корневого библиотечного пакета.
Внутри описания_использования или псевдодирективы, которые находятся внутри определения_контекста, каждый элемент_библиотеки, упомянутый в предыдущем with-описании того же определения_контекста, является видимым, и каждый корневой элемент_библиотеки, так упомянутый, является непосредственно видимым. Кроме того, внутри такого описания_использования, если данное объявление видимое или непосредственно видимое, каждое объявление, которое непосредственно находится внутри видимой части данного объявления, также является видимым. Другие объявления не являются видимыми или непосредственно видимыми.
Внутри имени_родительского_блока подблока, элементы_библиотеки видимы так же, как и в имени_родительского_блока элемента_библиотеки; кроме того, объявление, соответствующее каждой заглушке_тела в окружении, также является видимым.
Внутри псевдодирективы, которая появляется на месте единицы компиляции, непосредственно предшествующий элемент_библиотеки и каждый из его предков является видимым. Корневой предок элемента_библиотеки является непосредственно видимым.
Несмотря на правила 4.1.3, расширенное имя в with-описании, псевдодиректива в определении_контекста или псевдодиректива, которая появляется на месте единицы компиляции, может состоять из префикса, обозначающего обобщенный пакет, и имени_селектора, обозначающего потомка этого обобщенного пакета. (Потомок обязательно является обобщенной единицей; см. 10.1.1.)


Spec-Zone.ru

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