ГОСТ Р ИСО/М ЭК 8824-4-2003
А.5 Пример определения множества параметришванных значений
Если два множества параметризованных значений определены следующим обратом:
QuestListl{!ASSlnng:cxtraQuest} lASString : : =■("Джек" | "Джон" | cxtraQucsl)
Quest List2 {lA5String:ExtraQucsts} lASString : : = ("Джек" | “Джон" ’ ExtniQuests)
то следующие множества значений обозначают одно и то же множество значений:
SetOlQuestsI lA5String :: = (QucsiList! ("Джилл"}}
SctOfQucsts2 IA5String : : = {QucslList2 ((("Джнлл"}}}
Set01Qucsts3 lASString : : = ("Джек" | "Джон" | “Джилл"}
и следующие множества значении обозначают одно и то же множество значений:
SctOIQucsts4 lASStnng :: “ (QucstList2 {{“Джнлл" | “Мэри"}}}
SclOfQucstsS lASString : : - ("Джек" | “Джон" | “Джилл" | “Мэри"}
Следует обратить внимание, что множество значений всегда задается в фигурных скобках, даже когда
это —ссылка на параметризованное множество значений. Опуская фигурные скобки у ссылки на “identifier",
который был создан в присвоении множества значений, или уссылки на “ParameterizedValueSetTypc". получим
нотацию для “Туре", а не для множества значений.
А.6 Пример определения параметризованного класса
Следующий параметризованный класс может использоваться для определения классов ошибок, которые
содержат коды ошибок различных типов. Следует обратить внимание, что параметр “ErrorCodeType" исполь
зуется только как “Dummy-Governor” для параметра "ValidErrorCodesT.
GENERIC-ERROR {ErrorCodeType, ErrorCodeType:
ValidErrorCodcs} : : “ CLASS {
&crrorCodc ValidErrorC’odcs
)
WITH SYNTAX {
CODE «SicTTorCode
)
Определение параметризованного класса может использоваться для определения различных классов,
которые совместно используют некоторые характеристики, подобные одному и тому же синтаксису:
ERROR-1 : : - GENERIC-ERROR (INTEGER. (1|2|3}}
ERROR-2 : : - GENERIC-ERROR (ErrorCodcStnng. (StnngErrorCodcs}}
ERROR-3 : : ** GENERIC-ERROR (EnumeratcdErrorCodc. {fatal|crror}}
ErrorCodeString : : «* lASString (SIZE (4))
StringErrorCodcs ErrorCodeString : : ш )“EOO1"|”E002"|"E0U3’}
EnumcratcdErrorCode : : = ENUMERATED (fatal, error, warning)
Определяемые классы тогда могут использоваться следующим образом:
Му-Errors ERROR-2 : : = {{CODE "Е00Г) | {CODE "E002’}}
fatal Error, ERROR-3 : : - {CODE fatal}
A.7 Пример определения множества параметризованных объектов
Определение множества параметризованных объектов AlfTypcs формирует множество объектов, которые
содержит базовое множествообъектов BascTvpes и множсст во дополнительных объектов, которые поставляются
как параметр AdditionalTypcs.
AIITypcs {TYPE-IDENTIFIER: AdditionalTypcs} TYPE-IDENTIFIER :: = {
BaseTypes iAdditionalTypcs}
BaseTypes TYPE-IDENTIFIER : : - {
{BasicTypc-l IDENTIFIER BY basic-type-obj-id-value-1}|
{BasicTypc-2 IDENTIFIER BY basic-typc-obj-id-valuc-2} |
{BasicTypc-3 IDENTIFIER BY basic-type-obj-id-value-3}
}
Определение множества параметризованных объектов. AIITypcs, может использоваться следующим
образом:
{My-AU-Types TYPE-IDENTIFIER : : = {AIITypcs {
{Му-Туре-1 IDENTIFIER BY my-obj-id-valuc-l} |
12