ГОСТ I* ИСО/М ЭК 8824-1-2001
похожи" в настоящем разделе спсциф|широван ряд преобразований, когорыс применяются к каждому из
экземпляров Туре’’ дня при веления их к нормальной форме. Два экземпляра Туре’’ являются определениями
идентичных типов только в том случае, когда их нормальные формы являются идентично упорядоченными
списками одних и тех же элементов АСН.1 (см. раздел II).
F.3.2 Каждый экземпляр Туре" в спецификации АСН.1 является упорядоченным списком элементов,
определенных в разделе 11. Нормальная форма получается путем применения преобразований, определенных в
F.3.2.1 — F.3.2.4 в указанном порядке.
F.3.2.I Удаляются все комментарии (см. Н.б).
F.3.2.2 Следующие преобразования не являюзея рекурсивными и. следовательно, должны применяться
только один раз в произвольном порядке.
а) Для каждою целочисленного типа: "Named NumberList" (см. 18.1). если он есть, переупорядочивается
так. чтобы "identifier" были расположены в алфавитном порядке.
б) Для каждого перечислимого типа: к каждому "Enumcrationllcm" (см. 19.1). который не есть "identifier"
(без номера), добавляется номер, как установлено в 19.3; затем "RoolEnumcratKMr переупорядочивается так.
чтобы “identifier" были расположены в алфавитном порядке.
в) Для каждого типа "битовая строка* :"NamedBitList" (см. 21.1). если он есть, переупорядочивается так.
чтобы "identifier" были расположены в алфавитном порядке.
г) Для каждого значения идентификатора обьскта: каждый "ObjldComponcnt" преобразуется в соответ
ствующую ему "NumberForm" согласно семантике раздела 31 (см. пример в 31.11).
д) Для типов "последовательность" (см. раздел 24) и "множество" (см. раздел 26): любое расширение вида
"ExtensionAndException" или “ExlensionAdditions" вырезается и помещается в коней "ComponentTypeLists’;
"OptionalExtensionMarker", если он есть, удаляется.
Котла la g Default" есть "IMPLICIT TAGS", то к каждому экземпляру "Tag" добаазяется ключевое слово
"IMPLICIT TAGS" (см. раздел 30). если только нс выполнено одно из следующих условий:
- оно уже есть, или
- присутствует ключевое слово EXPLICIT, или
- тегируемый тип есть CHOICE, или
- ото открытый тип.
Когда "TagDefault" есть "AUTOMATIC TAGS", то решение о применении автоматического тегирования
принимается в соответствии с 24.2 (автоматическое
T e m p o
ванне будет осушсстнтяться позже).
П р и м е ч а н и е — 24.3 и 26.2 устанавливают, что присутствие элемента "Tag" в "ComponentType*.
который будет незнатен в результате замены "COMPONENTS OF Туре", само но себе нс предотвращает
преобразования автоматического -тегирования.
Когда “ExtcnsionDcfault" есть "EXTENSIBILITY IMPLIED", то после ’ComponentTypeLists" добавляется
многоточие ("..."), если его не было.
с) Для выборочного типа (см. раздел 28): "RootAltemalivcTvpeList" переупорядочивается так. чтобы иден
тификаторы в "NamedType" были расположены в алфавитном порядке. Когда "TagDefault" есть "IMPLICIT
TAGS", то к каждому экземпляру "Tag" добаазяется ключевое слово "IMPLICIT TAGS" (см. раздел 30). если
только нс выполнено одно из следующих условий:
- оно уже есть, или
- присутствует ключевое езово EXPLICIT, или
- тегируемый таи есть CHOICE, или
- это открытый тип.
Котла "TagDefault" есть "AUTOMATIC TAGS", то решение о применении автоматического тегирования
принимается в соответствии с 24.2 (автоматическое тегирование будет осуществляться позже). Когда
"ExtcnsionDcfault" есть "EXTENSIBILITY IMPLIED’, то посте "AltcrnativcTypeLists" добавляется многоточие,
если его нс было.
F.3.2.3 Следующие преобразования должны примениться рекурсивно н указанном порядке ло достиже
ния неизменного состояния.
а) Для каждого значения идентификатора объекта (см. 31.3): если определение значения начинается с
“DefinedValue", то "DefinedV’aluc" -заменяется ее определением.
б) Для типов "последовательность" и "множество": все экземпляры ’COMPONENTS OF Туре" (см. раздел
24) преобразуются в соответствии с разделами 24 и 26.
в) Для выборочных типов, типов "последовательность" и "множество": если ранее было принято реше
ние о применении автоматического тегирования |см. F.3.2.2, перечисления л) и с)|, то оно осуществляется в
соответствии с разделами 24, 26 и 28.
г) Для селективного типа: конструкция заменяется выбранной альтернативной в соответствии с разде
лом 29.
д) Все ссылки на типы заменяются их определениями но следующим правилам:
7 - Г
91