ГОСТ Р И С 0 10303-11 — 2009
Синтаксис:
230 goneric_entity_type = GENERIC_ENTITY [ ’ type_labol ].
329 typejabel = typejabelJd | type_label_ref.
Правила и ограничения:
a) Тип данных GENERIC_ENTITY должен использоваться только в качестве типа формального пара
метра функции или процедуры либо типа результата функции, либо типа локальной переменной внутри
функции или процедуры, либо представления явного или вычисляемого атрибута вобъявлении типа дан
ныхABSTRACT ENTITY.
b) Если тип данных GENERIC_ENTITY используется в качестве типа данных результата функции или
типа данных локальной переменной внутри функции или процедуры, то для такого применения требуются
ссылки меток типов. Ссылки меток типов должны ссылаться на метки типов, объявленные
формальными параметрами (см. 9.5.3.4).
Пример — Приведенная ниже функция проверяет, имеется ли ссылка на конкретный экземпляр
sample от двух экземпляров typel и type2 известных объектных типов данных. Объявление формаль
ного параметра sample, как имеющего тип данных GENERIC_ENT!TY, позволяет рассматривать экзем
пляры любых объектных типов данных как допустимые входные параметры данной функции.
FUNCTION check_relating (typel
type2
: instance_of_type_1;
: instance_of_type_2;
sample : GENERIC ENITTY): BOOLEAN;
RETURN ((typel IN USEDIN (sample." ))
AND
(type2 IN USEDIN (sample, ** )));
END_FUNCTION;
9.5.3.4 Метки типов
Метки типов должны использоваться для установления связи между типом данных атрибута или фак
тического параметра в момент обращения с типамиданных других атрибутов или фактических параметров,
локальных переменных или возвращаемого значения функции. Метки объявляются для следующих типов
данных:
-для типов данных AGGREGATE,GENERIC_ENTITY и GENERIC метки объявляются в объявле
нии формальных параметров функции или процедуры. Впоследствии на них могут ссылаться типы
данных AGGREGATE. GENERIC_ENTITY и GENERIC в объявлении формальных параметров
или локальных переменных функции или процедуры либо вобъявлении типа данных возвращаемого
значения функции;
-для типов данных AGGREGATE и GENERIC_ENTITY метки объявляются в объявлении явных
или вычисляемых атрибутов абстрактных объектов. Впоследствии на них могут ссылаться типы
данных AGGREGATE и GENERIC_ENTITY в оставшейся части объявления объектных типов данных.
Синтаксис:
329 typejabel = typejabeljd | typeJabel_ref.
Правила и ограничения:
a) Первое появление метки типа вобъявлении формального параметра либо явного или вычисляемо
го атрибута объявляет меткуданного типа; последующие случаи употребления данной метки типа являют
ся ссылками на ее первое употребление.
b
) Параметры, переданные функции или процедуре, в которых используется ссылка на метку типа,
должны быть совместимы с типом данных переданного параметра, в котором объявлена данная метка
типа.
c) Типы данных локальных переменных и возвращаемых значений функций, которые ссылаются по
средством метки типа на типданных параметра, должны быть идентичны типу данных параметра, в кото
ром объявлена данная метка типа.
d) Типы данных атрибутов, которые ссылаются посредством метки типа на тип данных атрибута, дол
жны быть идентичны типуданныхатрибута, в котором объявлена данная метка типа.
Пример — В данном примере показано, как метки типов могут использоваться для проверки
совместимости типов данных при вызове функции.
ENTITY а;
END ENTITY;
51