ГОСТ Р ИСО/МЭК 8824-4-2003
my-message-parameters MESSAGE-PARAMETERS :: = {
THE MAXIMUM PRIORITY LEVEL IS 10
THE MAXIMUM MESSAGE BUFFER SIZE IS 2000
THE MAXIMUM REFERENCE BUFFER SIZE IS 100
}
- - Абстрактный синтаксис теперь может быть определен всеми
- - специфицированными переменными ограничениями. my-message-Abstract-SintaxABSTRACT-SINTAX : : =
message-Abstract- Sintax {my-message-parameters}
А.З Пример определения параметризованного типа, который является конечным
При спецификации параметризованного типа, который представляет родовой список, определяют тип так, чтобы результирующая нотация ACH.1 была конченной. Например, можно определить:
Listl {ElementTypeParam} : : = SEQUENCE { elem ElementTypeParam,
next Listl {ElementTypeParam} OPTIONAL
который является конечным, а затем его использовать.
IntegerListl : : = Listl {INTEGER},
где результирующая нотация АСН. 1 является такой, какой Вы ее обычно определили бы: IntegerListl : : = SEQUENCE { elem INTEGER,
next IntegerListl OPTIONAL
}
Напротив, при
List2 {ElementTypeParam} : : = SEQUENCE { elem ElementTypeParam,
next List2 {[0]} ElementTypeParam} OPTIONAL
}
IntegerList2 : : = List2 {INTEGER}, где результирующая нотация ACH. l является бесконечной:
IntegerList2 : : = SEQUENCE { elem INTEGER
next SEQUENCE {
elem [0] INTEGER, next SEQUENCE {
elem [0] [0] INTEGER, next SEQUENCE {
elem [0] [0] [0] INTEGER, next SEQUENCE {
... - - и так далее } OPTIONAL } OPTIONAL } OPTIONAL
} OPTIONAL
}
А.4 Пример определения параметризованного значения
Если значение параметризованной строки определяется следующим образом:
generioBirthdayGreeting {IA5String: name}
IA5String : : = {“С днем рождения”, имя, “| |”},
то следующие две строки являются такими же:
greetingl IA5String : : = generioBirthdayGreeting {“Джон”} greeting2 IA5String : : = “С днем рождения, Джон | |”
ll