ГОСТ Р ИСО/МЭК 8824-1-2001
TaggedType : : =
Tag Туре|
Tag IMPLICIT Type|
Tag EXPLICIT Type
Tag :: = "|" Class* ClassNumber
ClassNumber: : =
number |
DefinedValue
Class :: =
UNIVERSAL|
APPLICATION
PRIVATE|
empty
30.2 Ссылка на значение "valuereference" в "DefinedValue" должна быть целочисленного типа, и
ей должно быть присвоено неотрицательное значение.
30.3 Новый тип изоморфен старому типу, но имеет тег класса "Class" и номер "ClassNumber",
за исключением случая, когда "Class” есть "empty"; в этом случае тег — контекстно зависимого
класса с номером "ClassNumber".
30.4 Класс “Class" не может быть универсальным классом "UNIVERSAL", за исключением
типов, определенных в настоящем стандарте.
П р и м с ч а н и я:
1 Мсполыованис тегов универсального класса регулярно согласуется ИСО и МЭК-Т.
2 В подразделе 0.2.12 содержится руководство и указания но стилистике использования классов тегов.
30.5 Все применения тегов относятся либо к явному, либо к неявному тегированию. Неявное
тегирование указывает (тем правилам кодирования, которые обеспечиваю! соответствующий вы
бор). что явная идентификация исходных тегов типа "Туре" в "TaggedType" не является необходи
мой при передаче.
П р и м е ч а н и е — Может бызь полезным сохранять старый тег. когда он универсального класса и,
следовательно, недвусмысленно идентифицирует старый тип без знании определения ACH.I нового типа. Од
нако минимальное количество октетов для передачи обычно достигается использованием IMPLICIT. Пример
кодирования, использующего IMPLICIT, приведен в ИСО/МЭК 8825-1.
30.6 Конструкция тегирования задает явное тегирование, если выполняется одно из следую
щих утверждений:
а) используется альтернатива "Tag EXPLICIT Type".
б) используется альтернатива T ag Туре”, и значение TagDefault" для
модуля
есть либо
"EXPLICIT TAGS", любо пусто;
в) используется альтернатива "Tag Туре", и значение TagDefault" для модуля есть либо
"IMPLICIT TAGS”, любо "AUTOMATIC TAGS", но тип. определяемый Туре", есть выборочный
или открытый тип. или тип "DummyReference" (см. ИСО/МЭК 8824-4. 8.3).
30.7 Если “Class" есть "empty", то нет ограничений на использование Tag", кроме тех. которые
подразумеваются требованием различия тегов в 24.5. 24.6. 26.3 и 28.2.
30.8 .Альтернатива "IMPLICIT" не должна использоваться, если тип, определяемый Туре",
есть выборочный или открытый тип, или тип "DummyReference" (см. ИСО/МЭК 8824-4. 8.3).
30.9 Нотацией для значения "TaggedType" должна быть "TaggedValue":
TaggedValue : : = Value
где "Value" есть нотация для значения Туре" в "TaggedType".
П р и м е ч а н и е —Tag" нс появляется в этой нотации.
31 Нотация для типа "идентификатор объекта"
31.1 Тип "идентификатор объекта" (см. 3.8.47) должен указываться нотацией "ObjectIdentifierType":
ObjectIdentifierType : : =
OBJECT IDENTIFIER
31.2 Этот тип имеет тег универсального класса 6.
31.3 Нотацией для значения идентификатора объекта должна быть "ObjectIdentilierValue":
38