В языке EXPRESS объявление создает идентификатор, который может быть использован для ссылок на объявленный элемент в других частях данной схемы (или в других схемах). В некоторых конструкциях языка EXPRESS неявно объявляются элементы языка с присваиванием им идентификаторов. Считается, что в тех местах, где может указываться ссылка на идентификатор объявленного элемента, данный объявленный элемент является видимым. На элемент может быть дана ссылка только там, где его идентификатор является видимым. Правила видимости определены в 10.2. Более подробная информация о ссылках на элементы с использованием их идентификаторов приведена в 12.7.
Совокупность элементов языка EXPRESS образует область (блок) текста, называемый областью видимости данного элемента. Данная область видимости ограничивает видимость объявленных в ней идентификаторов. Области видимости могут быть вложенными, то есть элемент языка EXPRESS, имеющий свою область видимости, может быть включен в область видимости другого элемента. Существуют ограничения, в соответствии с которыми элементы могут появляться в области видимости конкретного элемента языка EXPRESS. Данные ограничения, как правило, определяются синтаксисом языка EXPRESS (см. приложение А).
Для каждого из элементов языка, представленных в таблице 9, в последующих подразделах установлены границы его области видимости (при ее существовании) и видимость объявленного идентификатора как в общих терминах, так и с конкретными деталями.
Таблица 9 - Области действия и идентификаторы, определяющие элементы языка
Элемент языка | Область видимости | Идентификатор |
Оператор альтернативных имен | ||
Атрибут | ||
Константа | ||
Перечисление | ||
Объект | ||
Функция | ||
Параметр | ||
Процедура | ||
Выражение QUERY | ||
Оператор цикла | ||
Правило | ||
Метка правила | ||
Схема | ||
Ограничение подтипа | ||
Тип | ||
Метка типа | ||
Переменная | ||
Идентификатором является неявно объявленная переменная в определенной области видимости объявления. Переменная объявляется неявно только тогда, когда установлен инкрементный контроль. Неявное объявление переменной осуществляется для всех объектов, ограниченных данным правилом. |