ГОСТ Р И С 010303-11— 2009
d)Если идентификатор /. видимый вобласти видимости Р. повторно объявлен внекоторой внутренней
области видимости Q. вложенной в Р. то:
- если /, объявленный в Р, ссылается на именованный тип данных или на метку типа, а I. объявленный
в Q. не ссылается на именованный тип данных или на метку типа, то, как /, объявленный в Р, так и /,
объявленный в Q. являются видимыми в Q;
- в противном случае, только /. объявленный в Q. является видимым в Q и влюбых областях видимо
сти, объявленных в О. Идентификатор /. объявленный в Р. будет виден в Ри во всех внутренних областях
видимости, в которых / не объявляется повторно.
е> Встроенные константы, функции, процедуры и типы данных языка EXPRESS считаются
объявленными в виртуальной всеобщей области видимости. Все схемы являются вложенными вданную
область видимости. Идентификаторы, ссылающиеся на встроенные константы, функции, процедуры, типы
данных языка EXPRESS и схемы, являются видимыми во всех областях видимости, определенных в
языке EXPRESS.
0 Идентификаторы элементов перечисления, объявленные вобласти видимости определенного типа
данных, являются видимыми там. гдеданный определенный тип данных является видимым, за исключени ем
случая, когда внешняя область видимости содержит объявление того же идентификатора для какого-либо
другого элемента.
П р и м е ч а н и е — Если следующая внешняя область видимости содержит объявление того же идентифи
катора, то элементы перечисления остаются доступными, но к ним должен быть добавлен в качестве префикса
идентификатор определенного типа данных (см. 12.7.2).
д) Объявления из одной схемы становятся видимыми для элементов другой схемы посредством
спецификации интерфейса (см. раздел 11).
Пример — В следующей схеме показаны примеры идентификаторов и ссылок, являющихся
допустимыми в соответствии с приведенными выше правилами.
SCHEMA example:
CONSTANT
b : INTEGER := 1;
c : BOOLEAN := TRUE;
ENDCONSTANT;
TYPE enum = ENUMERATION OF (e. f. g);
"entity1.wri" подчиняется правилу по перечислению а):
идентификатор "а”виден в локальной области видимости
"entity1.wr2" подчиняется правилу по перечислению Ь):
идентификатор "Ь" виден из внешней области видимости
"entity2.с" подчиняется правилу по перечислению с):
константа *’с” не видима здесь
ENDTYPE;
ENTITY entity 1;
a : INTEGER:
WHERE
wr1: a > 0; —
—
wr2: a<>b; —
—
END_ENTTTY;
ENTITY entity2;
с : REAL: —
—
END_ENTITY:
ENTITY d;
attrl : INTEGER:
attr2 : enum;
WHERE
wri: ODD(attri); —
—
"d.wri" подчиняется правилу по перечислению d):
функция ODD видима везде
wr2: attr2 о е; —
—
"d.wr2" подчиняется правилу по перечислению е):
идентификатор "е" виден вне области видимости.
— определенной типом данных enum
ENDENTTTY;
END SCHEMA:
10.3 Правила для явных элементов
В данном разделе более подробноопределено, как общие правила областей действия и видимости
применяются к разным элементам языка EXPRESS.
60