Семь уроков по PostScript

         

Атрибуты объекта



Атрибуты объекта

Каждый объект либо литерал (literal), либо исполняемый(executable). Это важно для интерпретатора при исполнении PostScript-программы. Отметим, что при такие операторы, как "[" и "]" создают литеральные объекты, а операторы "{" и "}" – исполняемые. Другим атрибутом объекта является тип доступа (access) к нему. Имеется четыре типа доступа (расположены в списке по возрастанию ограничений): неограниченный (unlimited), только чтение (read only), только исполнение (execute-only) и без доступа (none).

Как правило, объект имеет неограниченный доступ. Это означает, что допускается применение к нему всех операторов, какие определены для работы с ним. Объекты с атрибутом "только чтение" не допускают модификацию своего значения и могут быть только считаны или выполнены. Аналогично, атрибут "только исполнение" определяет, что объект не может быть прочитан, а только исполнен интерпретатором. И наконец, объекты с атрибутом "без доступа" служат для каких-то внутренних целей, о которых я в данный момент ничего не знаю. Понятно, что они не используются программами напрямую. Для получения типа объекта служит оператор type.

Синтаксис: объект type à имя_типа

Результатом операции может быть одно из перечисленных имен:

arraytype booleantype dicttype

filetype fonttype integertype

marktype nametype nulltype

operatortype realtype savetype

stringtype

Следующие три оператора проверяют соответственно тип доступа объекта: wcheck - возвращает true, если объект имеет атрибут ulimited; xcheck – возвращает true, если объект исполняемый, и false, если литерал; rcheck – возвращает true, если объект "только для чтения".

Синтаксис у них одинаковый. Например, для wcheck он выглядит так:

объект wcheck à лог_значение

Операторы cvlit и cvx позволяют изменить атрибут объекта, находящегося в вершине стека операндов, с исполняемого на литеральный и наоборот.

Синтаксис: объект cvlit à объект

объект cvx à объект



Содержание раздела