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


Пример пакета обработки текстов


Этот пример иллюстрирует простой пакет обработки текстов. Пользователи имеют доступ только к видимому разделу; реализация от них скрыта в личном разделе и теле пакета (тело не показано).

С точки зрения пользователя, TEXT является строкой переменной длины. Каждый текстовый объект имеет максимальную длину, которая должна задаваться при описании этого объекта, и текущую длину, которая равна длине в диапазоне от нуля до максимального. Максимальная возможная длина текстового объекта является константой, определяемой реализацией.

Сначала в пакете определяются необходимые типы, затем функции, возвращающие некоторые характеристики объектов типа, затем функции преобразования текстов и предопределенных типов CHARACTER и STRING и, наконец, некоторые стандартные операции над переменными строками. Большинство операций над строками, символами, а также над типом TEXT совмещены для минимизации числа явных преобразований, которые должен написать пользователь.

package TEXT_HANDLER is MAXIMUM : constant := SOME_VALUE; -— это значение определено реализацией

subtype INDEX it INTEGER range 0 .. MAXIMUM;

type TEXT(MAXIMUM_LENGTH : INDEX) is limited private;

function LENGTH (T TEXT) return INDEX; function VALUE (T TEXT) return STRING; function EMPTY (T TEXT) return BOOLEAN;

function TO_TEXT (S STRING; MAX : INDEX) return TEXT; -- максимальная длина МАХ function TO_TEXT (С CHARACTER; MAX : INDEX) return TEXT; function TO_TEXT (S STRING) return TEXT; - - максимальная длина S'LENGTH function TO_TEXT (C CHARACTER) return TEXT;

function "&" (LEFT : TEXT; RIGHT TEXT) return TEXT; function "&" (LEFT : TEXT; RIGHT STRING) return TEXT; function "&" (LEFT : STRING; RIGHT TEXT) return TEXT; function "&" (LEFT : TEXT; RIGHT CHARACTER) return TEXT; function "&" (LEFT : CHARACTER; RIGHT TEXT) return TEXT;

function "=" (LEFT : TEXT; RIGHT TEXT) return BOOLEAN; function "<" (LEFT : TEXT; RIGHT TEXT) return BOOLEAN; function "<=" (LEFT : TEXT; RIGHT TEXT) return BOOLEAN; function ">" (LEFT : TEXT; RIGHT TEXT) return BOOLEAN; function ">=" (LEFT : TEXT; RIGHT TEXT) return BOOLEAN;




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



Книжный магазин