ГОСТ I* ИСО/МЭК 8824-1-2001
18.2 Вторая альтернатива для "SignedNumber" не должна использоваться, если “number" есть
нуль.
18.3 "NamedNumberList" не является существенной составной частью определения типа. Эта
последовательность используется только в нотации для значения, определенной в 18.9.
18.4 Ссылка "valuereference" в "DefinedValue" должна быть целочисленного типа.
П
р и м е ч а н и е - Гак как ’’identifier’’ не может использоваться для спеиифмкаиии значения, снизан
ного с "NamcdNumbcr", то"DefinedValue"никогда не можетбыть ошибочно интерпретировано как "IntegerValue".
Следовательно, в следующем случае
a INTEGER::- I
И : : - IMEGER(a(2)>
Т 2 : : - INTEGER<a(3),b(u)>
с Т2 :: - h
d Т2 :: ■>а
"с" обозначает значение 1. так как нс может относится ни ко второму, ни к rpcrbexiy появлению "а* н этом
примере, a ”d" обозначает значение 3.
18.5 Значения каждого из "SignedNumber" и "DefinedValue-, иходящего в "NamedNumberList".
должны быть различными и представлять разные значения целочисленного типа.
18.6 Все "identifier" входящие в "NamedNumberList", должны быть различными.
18.7 Порядок последовательностей "NamedNumber" в “NamedNumberList" не существенен.
18.8 Тины, определенные этой нотацией, имеют тег универсального класса 2.
18.9 Значение целочисленного типа должно определяться нотацией “IntegerValue":
IntegerValue : : =
SignedNumber |
identifier
18.10 Идентификатор "identifier" в продукции "IntegerValue" должен быть одним из идентифи
каторов "identifier” в "IntegerType", с которым связано значение, и представляет соответствующее
число.
П
р и м е ч а н и е —Когда указывается целочисленное значение, для которого был определен иденти
фикатор “identifier”, использование формы "identifier" для "IntegerValue" является предпочтительным.
19 Нотация для перечислимого типа
19.1 Перечислимый тип (см. 3.8.24) должен указываться нотацией "EnumeratedType":
EnumeratedType :: =
ENUMERATED "{" Enumerations
Enumerations :: = RootEnumcration|
Root Enumeration|
RootEnumeration ", "AdditionalEnumeration
RootEnumcration : : = Enumeration
AdditionalEnumeration : : = Enumeration
Enumeration :: =
EnumerationItem | EnunterationltemEnumeration
Enumerationltem :: =
identifier | NamedNumber
fl p и м с ч а н и я
1 Каждое значение "EnumeratedType" имеет идентификатор, который связан с отличным от других ис-
лым чистом. Однако не подразумевается, что само значение должно иметь какую-либо целочисленную семан
тику. Спецификация альтернативы "NamedNumber"для "Enumcrutionltem" обеспечивает управление представ
лением значении для облегчения совместимости выражений.
2 Численные значения внутри "NamedNumber* в "RootEnumcration" не обязательно должны быть упоря
доченными или последовательными, а численные значения внутри "NamedNumber’’ в "AdditionalEnumeration"
должны быть упорядоченными или, но нс обязательно, последовательными.
19.2 Для каждой альтернативы "NamedNumber" идентификаторы "identifier" и "SignedNumber”
должны отличаться от всех других "identifier" и "SignedNumber” в "Enumeration". Кроме того, для
каждой "NamedNumber" выполняются положения 18.2 и 18.4.
27