Статус документа
Статус документа

ГОСТ Р ИСО/МЭК 8825-3-2016 Информационная технология (ИТ). Правила кодирования АСН.1. Часть 3. Спецификация нотации контроля кодирования (ECN)

     17.5 Кодирование структуры кодирования

17.5.1 Продукцией "EncodeStructure" является:

EncodeStructure ::=

"{"

ENCODE STRUCTURE

"{"

ComponentEncodingList

StructureEncoding ?

"}"

CombinedEncodings ?

"}"

StructureEncoding ::=

STRUCTURED WITH

TagEncoding ?

EncodingOrUseSet

TagEncoding ::= "[" EncodingOrUseSet "]"

EncodingOrUseSet ::=

EncodingObject |

USE-SET

17.5.2 "EncodeStructure" может использоваться для определения кодирования, если только управляющий класс кодирования разыменовал конструкцию, определенную с помощью конструктора кодирования в категориях "альтернативы", "конкатенация" или "повторение", либо конструкцию, определенную с помощью одной из этих категорий, которой предшествует класс в категории "тег". Такой конструктор кодирования называется управляющим конструктором кодирования.

17.5.3 Продукция "StructureEncoding", если она присутствует, будет определять кодирование для управляющего конструктора кодирования и для любого предшествующего класса в категории "тег", который находится перед управляющим конструктором кодирования. Если эта продукция отсутствует, то "CombinedEncodings" должен присутствовать и содержать объекты кодирования, которые могут кодировать управляющий конструктор кодирования и любой предшествующий класс в категории "тег"; в противном случае спецификация ECN будет ошибочной.

Примечание - "CombinedEncodings" должен присутствовать, если "StructureEncoding" отсутствует, так как должно выполняться полное кодирование. Если желательно отложить спецификацию части кодирования, то следует применить фиктивный параметр.

17.5.4 Если "ComponentEncodingList" не пуст, то объект кодирования, приложенный к управляющему конструктору кодирования (либо от "StructureEncoding", либо от "CombinedEncodings"), не определяет каких-либо действий замены.

17.5.5 Если "EncodingOrUseSet" в "StructureEncoding" имеет значение "EncodingObject", то он будет управляться управляющим конструктором кодирования.

17.5.6 Если в каком-либо "EncodingOrUseSet" указан USE-SET, то кодирование соответствующего класса достигается путем применения "CombinedEncodings", который должен присутствовать и должен быть достаточным для кодирования соответствующего класса; в противном случае спецификация ECN будет ошибочной.

17.5.7 Продукцией "ComponentEncodingList" является:

ComponentEncodingList ::=

ComponentEncoding "," *

ComponentEncoding ::=