ГОСТ Р ИСО/МЭК 8824-1-2001
SetType :: = SET"}"|
SET “Г ExtensionAndException OptionalExtensionMariter "}“ |
SETCom ponentTypeLists “)"
Продукции "ComponentTypeLists". "ExtensionAndException" и "OptionalExtensionMarker" опре
делены a 24.1.
26.2 "Type" а нотации "COMPONENTS OF Type" должен быть типом "множество". Нотация
"COMPONENTS OF Туре" должна использоваться для определения включения, в данном месте в
списке компонентов, всех типов компонентов, появляющихся в указанном типе, за исключением
любых маркеров расширения и расширяющих дополнений, которые могут присутствовать в "Туре".
(В "COMPONENTS OF Туре" включается только "RootComponentTypeList" типа Туре"; маркеры
расширения и расширяющие дополнения, если они есть, игнорируются нотацией "COMPONENTS
OF Туре".) При этом преобразовании игнорируются все ограничения, применяемые к указываемо му
типу.
П р и м е ч а в и е —Это преобразование логически завершается до удовлетворения требований после
дующих разделов.
26.3 Типы "ComponentType" в типе “множество" должны иметь различающиеся rent (см. раз
дел 30). Тег каждого нового "ComponentType", добавляемого к "AdditionalComponentTypeList", дол
жен быть канонически больше (см. 8.4). чем тег других компонешов в "AdditionalComponentTypeList".
П р и м е ч а н и е — Котла "TagDel’ault" для модуля, в котором появилась данная нотация, есть
“AUTOMATIC TAGS*, это условие выполняется независимо от фактических типов "ComponentType", в ре
зультате применения 24.7.
26.4 Положения 24.2, 24.7—24.13 применяются также и для типов "множество".
26.5 Все типы "множество" имеют тег универсального класса 17.
П р и м е ч а н и е —Тины ’множество-из" имеют тот же самый тег, что и типы "множество* (см. 27.2).
26.6 Никакая семантика не должна связываться с порядком значений в типе "множество".
26.7 Значение типа "множество" должно определяться нотацией "SetValue":
SetValue :: = “{“ ComponentValue List "}" |"}"
Продукция "ComponentValueList" определена в 24.16.
26.8 Нотация "(" “)" должна использоваться для “SetValue", только если:
а) все последовательности "ComponentType" в "SetType" помечены как "DEFAULT" или
"OPTIONAL", а все значения - опущены, или
б) нотацией типа была "SET {}".
26.9 Должно быть по одному значению "NamedValue" для каждого типа "NantedType" в "SetType".
который не отмечен как “DEFAULT" или "OPTIONAL".
П р и м е ч а н и е —Эти значения "NamedValue" могут появляться в произвольном порядке.
27 Нотация для типов "множество-из"
27.1 Нотацией для определения типа “множество-из" (см. 3.8.59) из другого типа должна быть
"SetOJType":
SetOlTvpe :: =
SET OF Type
27.2 Все типы "множество-из" имеют тег универсального класса 17.
П р и м е ч а н и е —Типы "множество" имеют тот же самый тег, что и типы "множесгво-из* (см. 26.5).
27.3 Значение типа "множество-из” должно определяться нотацией "SetOIValue":
SetOfValue :: =ValueList “}" |
Список значений "Value List" определен в 25.3.
Нотация "("используется, когда SetOIValue есть пустой список.
27.4 Каждое значение "Value" в списке значений "ValueList" должно быть нотацией для значе
ния типа "Туре", заданного в “SetOfType".
11р и м е ч а и и я
! Никакое семантическое значение не должно быть связано с порядком этих значений.
2 Нс требуется, чтобы правила кодировании сохраняли порядок этих значений.
3 Тип "множество-из” нс является математическим множеством значений, например для "SET OF
INTEGER" значения "(I)" и "(II}" являются различными.
S-J*
35