ГОСТ Р ИСО/МЭК 8825-3—2016
22.1.2 Ограничения на спецификацию
22.1.2.1 Должен использоваться только один из разрешенных синтаксисов между «REPLACE» и
«WITH».
22.1.2.2 Структуры замены «WITH» будут являться параметризованными структурами кодирова
ния с одним параметром класса кодирования. Когда они определяются в вышеопределенном синтакси
се, дается только справочное имя класса структуры. При таком использовании имен не требуется иметь
список параметров.
22.1.2.3 Эти параметризованные структуры реализуются во время действия замены с реальным
параметром, как указывается в 22.1.3. Использование фиктивного параметра в параметризованной
структуре замены должно быть согласовано с классом реального параметра, который будет подан при
действии замены.
Примечание — В частности, если «REPLACE STRUCTURE» используется для класса кодирования в
категории «тег», тофиктивный параметр может появляться в структуре замены только тогда, когда разрешен класс
кодирования в категории «тег».
22.1.2.4 Объектами кодирования «ENCODED BY» должны быть параметризованные объекты
кодирования со структурами кодирования «WITH». Они должны иметь фиктивный параметр (напри
мер, #D). который является классом кодирования, и должны быть определены в назначении параме
тризованного объекта кодирования, в котором руководителем является соответствующая параметри
зованная структура кодирования «WITH», созданная с #D Когда они описываются в вышеуказанном
определенном синтаксисе, должно даваться только справочное имя объекта кодирования. При таком
использовании имен они не должны иметь списка параметров.
22.1.2.5 Они создаются во время действия замены с реальным параметром, который имеет то же
значение, что и реальный параметр, использованный для создания соответствующих структур кодиро
вания замены «WITH». Они могут также иметь.
- другой (но только один) фиктивный параметр (факультативный), который является набором объ
ектов кодирования; когда они создаются во время действия замены, тогда реальным параметром для
этого фиктивного параметра является текущий комбинированный набор объектов кодирования;
- другой (но только один) фиктивный параметр (условный), который является параметром
REFERENCE. Этот параметр присутствует, если, и только если, указан «INSERT AT HEAD». Когда объ
екты кодирования создаются во время действия замены, тогда реальным параметром для этого фик
тивного параметра является ссылка на соответствующую структуру «INSERT AT HEAD».
22.1.2.6 Все поля структуры замены, которые не являются частью параметра класса кодирования,
являются вспомогательными полями и устанавливаются путем кодирования структуры замены.
22.1.2.7 Структуры кодирования «INSERT AT HEAD» не имеют фиктивных параметров. Все их
поля являются вспомогательными полями и устанавливаются объектом кодирования «ENCODED BY»
с помощью параметра REFERENCE.
22.1.2.8 Если объект кодирования имеет раздел «REPLACE STRUCTURE», то он не должен иметь
раздел «INSERT AT HEAD» и должен иметь раздел «ENCODED BY».
22.1.3 Действия кодера
22.1.3.1 Если объект кодирования класса, входящего в группу категорий «базовое поле» или в
категорию «тег», указывает «REPLACE STRUCTURE», то кодер заменяет эту структуру на реализацию
структуры замены, используя имя исходной структуры в качестве реального параметра.
22.1.3.2 Если объект кодирования класса в группе категорий «конструктор кодирования» указы
вает «REPLACE STRUCTURE», то кодер заменяет полную конструкцию на реализацию структуры за
мены, используя полную исходную конструкцию в качестве реального параметра.
22.1.3.3 Если объект кодирования класса в категории «факультативные возможности» указывает
«REPLACE STRUCTURE», то кодер заменяет полный факультативный компонент на нофакультатив-
ную реализацию структуры замены. Реальным параметром должно быть имя невидимой структуры
(которая не соответствует никакой другой структуре и не может иметь объектов кодирования). Это имя
невидимой структуры должно разыменовывать в полный исходный факультативный компонент (вклю
чая любой класс в категории «тег»), кроме класса в категории «факультативные возможности».
22.1.3.4 Еслиобъект кодированиялюбого класса указывает «REPLACE COMPONENT». «REPLACE
ALL COMPONENTS», «REPLACE OPTIONAL COMPONENTS» или «REPLACE NON-OPTIONAL
COMPONENTS», то кодер заменяет полный(ые) указанный(ые) компонент(ы) на нефакультативную ре
ализацию структуры замены. Реальным параметром должно быть имя невидимой структуры (которая
83