ГОСТ Р И С 0 10303-11 — 2009
Синтаксис:
302 selectjype = [ EXTENSIBLE [ GENERIC_ENTITY) ] SELECT
[ selectjist | select_extension ).
301 selectjist = ’( ’ named_types {namedJypes }
300 select_extension = BASED_ON type_ref [ WITH selectjist ].
Правила и ограничения:
a) Все элементы е списке выбора должны относиться кобъектному или определенному типуданных.
b
) Только выбираемый типданныхдолжен использоваться в качестве базисного типа для определен
ного типа данных.
c) Выбираемый типданных может быть расширен, только если в его определении указано ключевое
слово EXTENSIBLE.
d) Элемент type_ref в select_extonsion должен быть ссылкой на наращиваемый выбираемый тип.
e) Для выбираемого типа данных, не являющегося ни наращиваемым, ни расширяющим, должен
быть задан в качестве его области определения непустой список выбора.
f) Для выбираемого типа данных, не являющегося наращиваемым, но являющегося расширяющим,
должен быть задан непустой список выбора, расширяющий область определения наращиваемого выбира
емого типа данных, на котором он основан.
П р и м е ч а н и е — Значение выбираемого типа данных может быть значением нескольких именованных
типов данных, указанных в списке выбора для данного выбираемого типа данных.
Примеры
1 Если а и Ь являются подтипами с, и они связаны выражением ANDOR, и существует тип
данных, определенный как SELECT (а, Ь). то может оказаться, что значением выбираемого типа
данных будут одновременно а и Ь.
2 Должен быть сделан выбор среди нескольких типов предметов в заданном контексте:
TYPE attachment_method = EXTENSIBLE SELECT(nail, screw);
ENDTYPE;
TYPE permanent_attachment = SELECT BASED_ON attachment_method WITH (glue, weld);
ENDTYPE;
ENTITY пай:
length: REAL;
head_area : REAL:
END_ENTTTY:
ENTITY screw,
length : REAL;
pitch : REAL;
; material_composition:
: material_composition;
: material_composition;
END ENTITY;
ENTITY glue;
composition
solvent
END_ENTTTY:
ENTITY weld;
composition
END_ENTITY:
ENTITY wall_mounting;
mounting : product;
on: wall:
using: attachmentmethod;
END ENTITY;
Элемент wall_mounting описывает соединение изделия product со стеной wall с использованием
способа соединения attachment_method. Исходный способ соединения описывает способы разборного
соединения. Эти способы затем расширяются, добавляя способы неразборного соединения
permanent_attachment. При определении значения элемента wall_mounting будет использоваться
значение атрибута using, то есть nail, screw, glue или weld.
8.5 Обобщенные типы данных
Синтаксис:
223 generalizedJypes = aggregateJype | general_aggregationJypes | generic_entity_type | genericjype.
25