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

         

Выборка произвольного элемента из стека



Выборка произвольного элемента из стека

Оператор index удаляет неотрицательное целое число n из стека операндов, отсчитывает n-й элемент от вершины стека и помещает копию этого элемента в стек. Это очень напоминает выборку элемента массива. При этом первый элемент в стеке имеет индекс 0. Вместе с операторами copy, dup и roll он позволяет свободно манипулировать содержимым стека операндов.

Синтаксис: an ... a0 n index à an ... a0 an

где an ... a0 – элементы стека операндов.

Пример.

Обозначим буквами содержимое стека, тогда:

A D G 0 index à A D G G

A D G J F 4 index à A D G J F A

Оператор clear извлекает все объекты из стека операндов и уничтожает их.

Синтаксис: a1 ... an clear à -

Оператор count пересчитывает число элементов в стеке операндов и возвращает его в вершине стека.

Синтаксис: a1 ... an count a1 ... an n

Примеры.

clear count -à 0

clear 1 2 3 count à 1 2 3 3

Оператор countexecstack считает число объектов в стеке исполнения и помещает это число в стек операндов.



Синтаксис:- countexecstack à int

Оператор counttomark считает число любых объектов в стеке операндов начиная с вершины стека и до первого маркера (не включая его самого).

Синтаксис: mark ob1 ... obn counttomark à mark ob1 ... obn n

Пример.

1 mark 2 3 counttomark à 1 mark 2 3 2

Оператор cleartomark извлекает любые объекты из стека операндов, пока не будет достигнут маркер, который также удаляется из стека.

Синтаксис: mark ob1 ... obn cleartomark à -



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