Справочное руководство по языку Ада-83


Именуемые типы - часть 5


Ограничение дискриминанта задает значения этих дискриминантов.

ограничение-дискриминанта ::= (сопоставление-дискриминанта {, сопоставление-дискриминанта})

сопоставление-дискриминанта ::= [простое-имя-дискриминанта {|простое-имя-дискриминанта} =>] выражение

Каждое сопоставление дискриминанта связывает выражение с одним или несколькими дискриминантами. Сопоставление дискриминанта называется

именованным,

если дискриминанты заданы явно своими именами; иначе оно называется

позиционным.

Для позиционного сопоставления (единственный) дискриминант неявно задан позицией в текстуальном порядке. Именованные сопоставления могут быть даны в любом порядке, но если в одном и том же ограничении дискриминанта использованы позиционные и именованные сопоставления, то позиционные сопоставления должны стоять первыми, в их обычной позиции. Следовательно, если однажды было использовано именованное сопоставление, то в остальной части ограничения дискриминанта должны употребляться только именованные сопоставления.

Для именованного сопоставления дискриминанта имена дискриминантов должны обозначать дискриминанты того типа, для которого дано ограничение дискриминанта. Сопоставление дискриминанта с более чем одним именем дискриминанта допустимо, только если все дискриминанты имеют один и тот же тип. Более того, для каждого сопоставления дискриминанта (именованного или позиционного) выражение и связанные дискриминанты должны иметь один и тот же тип. Ограничение дискриминанта должно задавать точно одно значение для каждого дискриминанта типа.

Ограничение дискриминанта совместимо с типом, указанным обозначением типа, если и только если каждое значение дискриминанта принадлежит подтипу соответствующего дискриминанта. Более того, для каждой подкомпоненты, спецификация подтипа которой зависит от дискриминанта, дискриминант в этой спецификации подтипа компоненты заменяется значением дискриминанта и производится проверка совместимости результирующего указания подтипа.

Составное значение удовлетворяет ограничению дискриминанта, если и только если каждый дискриминант составного значения имеет налагаемое ограничением дискриминанта значение.




Начало  Назад  Вперед