ГОСТ Р ИСО/МЭК 8824-4-2003
ParameterizedObjectAssignment : : = objectreference ParameterList DefinedObjectClass
ii. . _??
ObjectClass
ParameterizedObjectSetAssignment : : = objectsetreference ParameterList DefinedObjectClass
it. . _??
ObjectSet
8.3 Конструкция “ParameterList” есть список параметров “Parameter”, заключенных в фигурные скобки.
ParameterList :: = “{” Parameter “,” + “}”
Каждый параметр “Parameter” состоит из пустой ссылки “DummyReference” и, возможно, из параметра управляющего слова “ParamGovernor”.
Parameter : : = ParamGovernor “:” DummyReference | DummyReference
ParamGovernor : : = Governor | DummyGovernor
Governor : : = Type | DefinedObjectClass
DummyGovernor : : = DummyReference
DummyReference : : = Reference
“DummyReference” в “Parameter” может замещаться:
а) “Type” или “DefinedObjectClass”, в том случае, когда не должно быть “ParamGovernor”;
б) “Value” или “ValueSet”; в этом случае должен присутствовать “ParamGovernor”; когда “ParamGovernor” есть “Governor”, он должен быть “Type”, когда “ParamGovernor” есть “Dummy-Governor”, фактическим параметром для “ParamGovernor” должен быть “Type”;
в) “Object” или “ObjectSet”; в этом случае должен присутствовать “ParamGovernor”; если “ParamGovernor” есть “Governor”, это должен быть “DefinedObjectClass”, если “ParamGovernor” есть “DummyGovernor”, то фактическим параметром для “ParamGovernor” должен быть “DefinedObjectClass”;
“DummyGovernor” должен быть “DummyReference”, который не имеет “Governor”.
8.4 Областью действия “DummyReference”, появляющейся в конструкции “ParameterList”, является сам “ParameterList” вместе с той частью “ParameterizedAssignment”, которая следует за “: : =”. “DummyReference” скрывает любую другую ссылку “Reference” с таким же именем в этой области действия.
8.5 Использование пустой ссылки “DummyReference” в ее области действия должно быть согласовано с ее синтаксической формой, и (там, где применимо) с управляющим параметром, а все использования той же самой “DummyReference” должны быть согласованы друг с другом.
Примечание — Когда синтаксическая форма имени пустой ссылки двусмысленна (например, не ясно, используется “objectclassreference” или “typereference”), неоднозначность может быть разрешена при первом использовании имени пустой ссылки справа от оператора присваивания. После этого характер имени пустой ссылки становится известным. Однако характер пустой ссылки не определяется полностью по правой стороне оператора присваивания, когда он, в свою очередь, используется только как фактический параметр в параметризованной ссылке; в этом случае характер пустой ссылки должен быть определен при рассмотрении определения этой параметризованной ссылки. Пользователи нотации должны учитывать, что такая практика может сделать спецификации ASN. 1 менее понятными, поэтому рекомендуется предусматривать соответствующие комментарии для пояснений.
4