ГОСТ 1» ИСО/МЭК 8824-1—2001
44.4 Как слелсгвне интерпретации, установленной в 44.2, специальная нотация обеспечивает
ся для того, чтобы ограничение применялось к типам "множество-из” или "последовательность-из“.
Это нотация TypeWithConstraint”:
TypeWithConstraint:: =
SET Constraint OF Typej
SET SizeConstraint OF Type |
SEQUENCE Constraint OF Type|
SEQUENCE SizeConstraint OF Type
В первой и второй альтернативах порождающий тип есть "SET OF Туре", а в третьей и четвер
той - "SEQUENCE OF Туре". В первой и третьей альтернативах ограничение есть "Constraint" (см.
44.5). а во второй и четвертой - "SizeConstraint" (см. 48.5).
П р и м е ч а н и е — Хотя альтернативы "Constraint" включают соответствующие альтернативы
"SizeConstraint", последние, нс взятые в скобки, введены для обратной совместимости с ГОСТ Р ИСО/МЭК
8824.
44.5 Ограничение специфицируется нотацией "Constraint”:
Constraint :: = ”(“ ConstraintSpec ExceptionSpec ")"
ConstraintSpec :: =
SubtypeConstraint |
GeneralConstraint
Продукция "ExceptionSpec" определяется в разделе 45. Если она не используется вместе с мар
кером расширения (см. раздел 47), то должна присутствовать только в том случае, когда продукция
"ConstraintSpec" включает в себя ссылку “DummyRefereпсе" (см. ИСО/МЭК 8824-4, 8.3) или являет ся
ограничением "UserDefinedConstraint" (см. ИСО/МЭК 8824-3, раздел 9).
44.6 Нотация “SubtypeConstraint" является йотацией общего назначения "ElemeiuSetSpec" (раз
дел 46):
SubtypeConstraint : : = ElementSetSpec
Вданном контексте элементы являются значениями порождающего типа (управляющим мно
жеством элементов является порождающий тип). В множестве должен быть по крайней мере один
элемент.
45 Идентификатор исключения
45.1 В сложной спецификации АСН.1 имеется ряд мест, где существенно распознавать, что
декодеры должны обрабатывать материал, который не полностью специфицирован. Такие случаи
возникают, в частности, при использовании ограничения, которое определено с использованием
параметра абстрактного синтаксиса (см. ИСО/МЭК 8824-4. раздел 10).
45.2 В таких случаях проектировщик приложения нуждается в идентификации действий, кото
рые должны быть предприняты, когда нарушается некоторое зависящее от реализации ограничение.
Идентификатор исключения обеспечивает недвусмысленный способ указания частей специфика
ции ЛСН. I, чтобы выделить действия, которые должны быть предприняты. Идентификатор состоит
из символа Т с последующим факультативным типом ЛСН.1 и значением этого типа. При отсут
ствии типа в качестве типа значения принимается INTEGER.
45.3 Если присутствует продукция "ExceptionSpec”. то она указывает, что в стандарте имеется
текст, говорящий о том. как обрабатывать нарушение ограничения, связанное с "Г. Если она отсут
ствует. то реализаторы будут вынуждены либо идентифицировать текст, описывающий действия,
которые необходимо предпринять, либо предпринимать зависящие от реализации действия, когда
встретиться нарушение ограничения.
45.4 Нотация "ExceptionSpec" определяется следующим образом:
ExceptionSpec :: = "Г Exceptionldentification | empty
Exceptionldemification :; = SignedNumber |
DefinedValue
TypeValue
Первые две альтернативы обозначают идентификаторы исключения целочисленного типа. Третья
альтернатива обозначает идентификатор исключения ("Value") произвольного типа ("Туре").
56