21.11.1 Продукцией типа "RangeCondition" является:
RangeCondition ::= ENUMERATED
{ unbounded-or-no-lower-bound,
semi-bounded-with-negatives,
bounded-with-negatives,
semi-bounded-without-negatives,
bounded-without-negatives
test-lower-bound,
test-upper-bound,
test-range}
21.11.2 Безусловным значением (по умолчанию) для признака кодирования этого типа всегда является "unboundedor-no-lower-bound".
21.11.3 Признак кодирования типа "RangeCondition" используется в спецификации предиката (логического условия), который проверяет наличие и природу границ целочисленных значений, связанных с классом кодирования в "целочисленной" категории.
21.11.4 Предикат удовлетворяет каждому из первых пяти перечисленных значений из 21.11.1, если, и только если, следующие условия удовлетворяются границами класса кодирования в "целочисленной" категории:
a) unbounded-or-no-lower-bound: либо нет границ, либо имеется только верхняя граница, но нет нижней границы;
b) semi-bounded-with-negatives: имеется нижняя граница, которая меньше нуля, но нет верхней границы;
c) bounded-with-negatives: имеется нижняя граница, которая меньше нуля, и имеется верхняя граница;
d) semi-bounded-without-negatives: имеется нижняя граница, которая больше нуля или равна нулю, но нет верхней границы;
e) bounded-without-negatives: имеется нижняя граница, которая больше нуля или равна нулю, и имеется верхняя граница.
Примечание - Для любого заданного набора границ будет удовлетворяться только один предикат.
21.11.5 Если используются последние три enumeration значения из 21.11.1, значение "Comparison" типа (см. 21.12) должно быть предоставлено вместе с целочисленным значением comparator. Если используются остальные значения, данные не должны предоставляться.