Отрезки типа
Отрезок типа представляет собой диапазон значений из поряд- кового типа, называемого главным типом. Определение отрезка типа включает наименьшее и наибольшее значение в поддиапазоне. Оно имеет следующий синтаксис:
отрезок ------------ ----- ------------ типа ----------->¦ константа +--->¦ .. +--->¦ константа +---> L------------ L----- L------------
Обе константы должны иметь один и тот же порядковый тип. От- резки типов, имеющие вид a..b, предполагают, что a меньше или равно b.
Приведем примеры отрезков типов:
0..99 -128..127 club..heart
Переменная отрезка типа имеет все свойства переменных глав- ного типа, однако ее значение на этапе выполнения должно принад- лежать указанному интервалу.
Разрешение использования выражений-констант там, где стан- дартный Паскаль допускает только простые константы, приводит к некоторой синтаксической неоднозначности. Рассмотрим следующие описания:
const X = 50; Y = 10; type Color = (Red, Green, Blue); Scale = (X - Y) * 2..(X + Y) * 2;
Согласно синтаксису стандартного Паскаля, если определение типа начинается с круглой скобки, то это перечислимый тип (такой как Color в данном примере). Однако Scale предназначен для опре- деления отрезка типа. Решение состоит в том, чтобы переупорядо- чить первое выражение поддиапазона или задать другую константу, равную значению данного выражения, и использовать эту константу в определении типа:
type Scale = 2 * (X - Y)..(X + Y);