ГОСТ Р ИСО/МЭК 8825-3—2016
17.5.15 Если REFERENCE необходим в качестве реального параметра какого-либо объекта коди
рования или набора объектов кодирования, используемого в этой продукции, то он может поставляться
либо в виде фиктивного параметра определяемого объекта кодирования, либо в виде «ComponentldList»
(см. 15.3.1 для синтаксиса «ComponentldList». значение «ComponentldList» в данном контексте описано
ниже).
17.5.16 Если руководитель не является конструктором в категории «повторение», то первый (или
единственный) «identifier» в «ComponentldList» должен быть «identifier» текстуально присутствующего
«NamedType» (на определенном уровне вложенности — см. 17.5.17) конструкции, достигаемой путем
разыменования руководителя. Это идентифицирует все определение этого «NamedType» компонента
независимо от того, присутствует ли определение текстуально.
17.5.17 Если существует более одного такого подходящего идентификатора, то выбирается пер
вый подходящий идентификатор в процессе сканирования (в текстовом порядке) идентификаторов
внешнего уровня, затем — идентификаторов второго уровня, затем — третьего уровня и т. д.
17.5.18 Каждый последующий «identifier» из «ComponentldList» (если таковые имеются) должен
быть «identifier» в «NamedType» структуры, идентифицированной по предыдущей части «Component
ldList», и идентифицирует все определение этого «NamedType» компонента независимо от того, при
сутствует ли определение структуры, идентифицированной по предыдущей части «ComponentldList».
текстуально.
17.5.19 Если руководитель является конструктором в категории «повторение», то реальный пара
метр для REFERENCE должен быть «ComponentldList», чей первый «identifier» идентифицирует ком
понент. который текстуально присутствует в «EncodingStructure» в «RepetitionStructure». достигаемой
путем разыменования повторения (см. 17.5.17). Затем применяются 17.5.17 и 17.5.18.
17.5.20 Если REFERENCE затребован для идентификации контейнера, то он может быть также
подан как:
a) STRUCTURE (при условии, что конструктор для кодируемой структуры не находится в катего
рии «альтернативы»), когда он указывает на эту структуру;
b) OUTER, когда он указывает на контейнер полного кодирования.
Примечание — «EncodeStructure» являетсяединственной продукцией, вкоторойэлементы REFERENCE
могут быть представлены, за исключением случаев использования фиктивных параметров или использования
OUTER или случаев, когда имеются ссылки для поддержки элемента flag-to-be-used» или flag-to-be-set в опреде
лении объекта кодирования для класса в категории «повторение», которая использует замену.
17.5.21 Распознавать, что определяемый объект кодирования (см. 17.1.5) показывает идентифи
кационный описатель, следует следующим образом:
a) если «TagEncoding» присутствует в «StructureEncoding», Е — объект кодирования, который при
меняется для класса кодирования в категории «тег»; или
b
) если «TagEncoding» не присутствует в «StructureEncoding», Е — объект кодирования, который
применяется для управляющего конструктора кодирования (это может быть или «EncodingObject» в
«EncodingOrUseSet». в «StructureEncoding», или может быть членом «CombinedEncodings»).
Если объект кодирования Е показывает идентификационный описатель (с данным набором
значений описателя), то определяемый объект кодирования показывает такой же идентификаци
онный описатель, как и Е (с тем же набором значений описателя); иначе он не показывает описа
тель.
17.6 Дифференциальное кодирование-декодирование
17.6.1 Продукцией «DifferentialEncodeDecodeObject» является:
DifferentialEncodeDecodeObject ::=
Г
ENCODE-DECODE
SpecForEncoding
DECODE AS IF
SpecForDecoders
T
SpecForEncodingEncodingObject
SpecForDecoders ::= EncodingObject
56