11.3.1 В ECN предполагается, что определенные синтаксические конструкции АСН.1 будут расширены (или сокращены) в эквивалентные или упрощенные конструкции.
Примечание - Типы, определенные упрощенными конструкциями, способны переносить такой же набор абстрактных значений, что и исходные синтаксические структуры АСН.1, и эти абстрактные значения отображаются в упрощенные конструкции.
11.3.2 Расширениями или упрощениями синтаксических конструкций АСН.1 являются следующие:
a) полностью определенные в разделе 11.3.4, или
b) упомянутые в разделах "См. перечисление b) 11.3.2" и полностью определенные в ИСО/МЭК 8824-1 (включая приложение С) со всеми опубликованными поправками и техническими опечатками, или
c) упомянутые в разделах "См. перечисление с) 11.3.2" и полностью определенные в ИСО/МЭК 8824-2 со всеми опубликованными поправками и техническими опечатками, или
d) упомянутые в разделах "См. перечисление d) 11.3.2" и полностью определенные в ИСО/МЭК 8824-4 со всеми опубликованными поправками и техническими опечатками.
11.3.3 Синтаксические конструкции АСН.1, удаленные ниже при расширении и упрощении, далее в настоящем стандарте не упоминаются.
11.3.4 Следующие расширения и упрощения будут применимы ко всем модулям АСН.1.
11.3.4.1 Следующие трансформации не являются рекурсивными и, следовательно, применяются только один раз:
a) все "ValueSetTypeAssignment" заменяются их эквивалентами "TypeAssignment" с ограничениями на подтипы [см. перечисление b) 11.3.2];
b) конструкция АСН.1 INSTANCE OF расширяется в ее эквивалентный тип "последовательность" [см. перечисление с) 11.3.2];
c) "TypeFromObject" заменяется типом, на который дана ссылка [см. перечисление с) 11.3.2];
d) "ValueSetFromObjects" заменяется типом, на который дана ссылка [см. перечисление с) 11.3.2];
e) если экземпляр нотации тега АСН.1 дан текстуально, а за ним следуют один или несколько дальнейших экземпляров нотации тега АСН.1, то второй и последующие экземпляры нотации тега отбрасываются.
Примечание - Это похоже на правила неявного тегирования в АСН.1, но применяется для любой среды тегирования. Многократное тегирование одного и того же типа, тем не менее, возможно путем использования справочных имен типа.
11.3.4.2 Следующие трансформации применяются рекурсивно в указанном порядке до достижения некоторой фиксированной точки:
a) вся параметризация АСН.1 полностью разрешается путем замены реальных параметров на холостые параметры [см. перечисление d) 11.3.2].
Примечание - Это означает, что если нотация типа АСН.1 содержит экземпляр параметризованного типа АСН.1, то этот экземпляр становится инлайновым определением;
b) все "ComponentsOf" расширяются до их полных форм [см. перечисление b) 11.3.2];
c) все использования "SelectionType" должны быть разрешены [см. перечисление b) 11.3.2].
11.3.4.3 Затем применяются следующие трансформации:
a) списки поименованных номеров в определениях целочисленных типов удаляются. Поименованные номера для ECN не видны. ECN видит один класс #INTEGER [возможно, с границами, определенными в перечислении с) 11.3.4.3];
b) списки поименованных битов в определениях цепочек битов удаляются. Поименованные биты для ECN не видны;
c) все нотации ограничений, невидимых в PER, кроме ограничения на содержимое, удаляются. Ограничения, видимые в PER, должны разрешаться для обеспечения следующих значений, которые могут быть указаны в определении правил кодирования:
i) верхняя граница целых чисел и перечислений;