Spec-Zone.ru › Ada 95
Справочник по Ada 95

8.1 Область объявления

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

Для каждого из следующих конструктов существует часть текста программы, называемая её областью объявления, в пределах которой могут быть вложены объявления:
  • любое объявление, кроме объявления типа перечисления, которое не является завершением предыдущего объявления;
  • блок block_statement;
  • цикл loop_statement;
  • выражение accept_statement;
  • обработчик исключения exception_handler.
Область объявления включает текст конструкта вместе с дополнительным текстом, определяемым (рекурсивно) следующим образом:
  • Если включено объявление, то включено и его завершение, если таковое имеется.
  • Если включено объявление единицы библиотеки (включая Standard — см. 10.1.1), то включены также объявления всех подчиненных единиц (и их завершения, согласно предыдущему правилу). Объявления подчиненных единиц располагаются после объявления родительской единицы.
  • Если включен body_stub, то включен и соответствующий subunit.
  • Если включен type_declaration, то включена и соответствующая record_representation_clause, если таковая имеется.
Область объявления объявления также называется областью объявления любого представления или сущности, объявленных этим объявлением.
Объявление находится непосредственно внутри области объявления, если эта область является самой внутренней областью объявления, охватывающей объявление (непосредственно охватывающая область объявления), не считая области объявления (если таковая имеется) самого объявления.
Объявление является локальным для области объявления, если объявление находится непосредственно внутри области объявления. Сущность является локальной для области объявления, если сущность объявлена объявлением, которое локально для области объявления.
Объявление является глобальным для области объявления, если объявление находится непосредственно внутри другой области объявления, которая охватывает область объявления. Сущность является глобальной для области объявления, если сущность объявлена объявлением, которое глобально для области объявления.
ПРИМЕЧАНИЯ
1 Подчиненные единицы родительской единицы библиотеки находятся внутри области объявления родителя, даже если они не находятся внутри объявления или тела родительской единицы. Это означает, что можно использовать (например), «P.Q» для ссылки на подчиненную единицу P, имя которой Q, и что после «use P;» Q может ссылаться (непосредственно) на эту подчиненную единицу.
2 Как объяснено выше и в 10.1.1, «Единицы компиляции — Единицы библиотек», все единицы библиотек являются потомками Standard, и поэтому содержатся в области объявления Standard. Они находятся не внутри объявления или тела Standard, но они находятся внутри его области объявления.
3 Для области объявления, которая состоит из нескольких частей, текст области объявления не содержит никакого текста, который может появиться между частями. Таким образом, когда часть области объявления описывается как простирающаяся от одного места к другому в области объявления, эта часть не содержит никакого текста, который может появиться между частями области объявления.


Spec-Zone.ru

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