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

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

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

Для каждого из следующих конструктов существует часть текста программы, называемая его областью объявления, внутри которой могут находиться вложенные объявления:
  • любое объявление, отличное от объявления типа перечисления, которое не является завершением предыдущего объявления;
  • определение access_definition;
  • объединение iterated_component_association;
  • объединение iterated_element_association;
  • выражение quantified_expression;
  • выражение declare_expression;
  • оператор block_statement;
  • оператор loop_statement;
  • Этот абзац был удален.
  • оператор extended_return_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