ГОСТ 1» ИСО/МЭК 8824-2-2001
10.12Для того чтобы обеспечить простой синтаксический разбор нового синтаксиса и пред
отвратить правильное употребление, следующие дополнительные ограничения накладываются на
автора определения нового синтаксиса:
а)требуется, чтобы каждая продукция «OptionalGroup* содержала в себе по крайней мере одну
продукцию «PrimitiveFieldName» или «OptionalGroup*;
Примечание 1—Эго помогает предотвратить видимое скопление информации, которое не отража
ется ни в каком поле информационного объекта:
б) использование продукции «OptionalGroup* должно быть таким, чтобы в процессе синтак
сического разбора никогда не могла появиться продукция «Setting», которая потенциально может
быть установкой для более чем одного «Fie IdName»:
в) если продукция «OptionalGroup* начинается с альтернативы «Literal*, то первый признак,
следующий за «OptionalGroup*, должен также быть «Literal* и отличаться от первого литерала
«Literal» во всех непосредственно следующих конструкциях «OptionalGroup*.
Следующие ограничения накладываются на пользователя продукции «DefinedSyntax»:
г) всякий раз, когда альтернатива «Literal* присутствует в «DefinedSyntax*, которая встречается
в «OptionalGroup*, альтернатива «Setting* для «PrimitiveFieldName* в этой «OptionalGroup* также
должна присутствовать.
П р и м е ч а н и я
2 Эго ограничение помогает предотвратить видимое скопление информации, коиграя нс отражается ни
в каком иоле информационного объекта.
3 Следующий пример является допустимым синтаксисом, но ограничение г) нс позволяет пользователю
писать «LITERAL» без следующих за ним одной или обеих факультативных групп.
|LITERAL (A &ficld| |В &ПеШЦ
10.13 Примеры
Примеры определений классов из 9.16 могут быть дополнены определяемым синтаксисом азя
обеспечения дружественного пользователям способа определения экземпляров классов. (Этот опре
деляемый синтаксис используется в примере в 11.10).
OPERATION : : = CLASS
&ArgumentType
&ResultType
&Errors
&Linked
&resultReturned
&operat ionCode
}
WITH SYNTAX
OPTIONAL.
OPTIONAL,
ERROR OPTIONAL,
OPERATION OPTIONAL,
BOOLEAN DEFAULT TRUE,
INTEGER UNIQUE
IARGUMENT&AigumentType|
|RESULT&ResuliTvpej
|RETURN RESULT
&
resultRet urned|
|ERRORS&Errors)
&Linked|
&operationCode
| LINKED
CODE
I
ERROR : : = CLASS
l
&ParameterTvpe
&errorCode
OPTIONAL
INTEGER UNIQUE
}
WITH SYNTAX
|PARAMETER
CODE
&
ParameterType|
&errorCode
II