Postscript symbols





[ - [ mark

pushes a mark object on the operand stack (see mark). The customary use of the [ operator is to mark the beginning of an indefinitely long sequence of objects that will eventually be formed into a new array object by the ] operator.

ERRORS: stackoverflow


SEE ALSO: ], mark, array,

astore


Troubleshooting index Back to Postscript index



] mark obj0 ... objn-1 ] array

creates a new array of n elements, where n is the number of elements above the topmost mark on the operand stack; stores those elements into the array; and returns the array on the operand stack. The ] operator stores the topmost object from the stack into element n-1 of array and the bottommost one (the one immediately above the mark) into element 0 of array. It removes all the array elements from the stack, as well as the mark object.

The array is allocated in local or global VM according to the current VM allocation mode. An invalidaccess error occurs if the array is in global VM and any of obj0 ... objn-1 are in local VM.

EXAMPLE:
[5 4 3] -> % a 3-element array, with elements 5, 4, 3
mark 5 4 3 counttomark array astore exch pop
-> [5 4 3] [1 2 add] -> % a 1-element array, with element 3

The second line of the example has the same effect as the first, but uses lowerlevel array and stack manipulation primitives instead of [ and ] In the last line of the example, note that the PostScript interpreter acts on all of the array elements as it encounters them (unlike its behavior with the /{

...} syntax for executable array construction) so the add operator is executed before the array is constructed.

ERRORS: stackoverflow, unmatchedmark,

VMerror

SEE ALSO: [, mark, array,

astore


Troubleshooting index Back to Postscript index



<< - << mark

LEVEL 2 pushes a mark object on the operand stack (same as mark and [ operators).

ERRORS: stackoverflow

SEE ALSO: >>, mark

Troubleshooting index

Back to Postscript index



>> mark key1 value1 ... keyn valuen >> dict LEVEL 2

creates and returns a dictionary containing the specified key-value pairs. The operands are a mark followed by an even number of objects, which the operator uses alternately as keys and values to be inserted into the dictionary. The dictionary is allocated space for precisely the number of key-value pairs supplied.

The dictionary is allocated in local or global VM according to the current VM allocation mode. An invalidaccess error occurs if the dictionary is in global VM and any keys or values are in local VM. A rangecheck error occurs if there is an odd number of objects above the topmost mark on the stack.

>> is equivalent to:

counttomark 2 idiv dup dict begin
/{

def} repeat
pop currentdict
end

EXAMPLE:
<< /Duplex true /PageSize [612 792] /Collate false >>
setpagedevice

This example constructs a dictionary containing three key-value pairs, which it immediately passes to the setpagedevice operator.

ERRORS: invalidaccess, rangecheck,

unmatchedmark, VMerror

SEE ALSO: <<, mark,

dict


Troubleshooting index Back to Postscript index



= any = - pops an object from the operand stack, produces a text representation of that object's value, and writes the result followed by a newline character to the standard output file. The text is that produced by the cvs operator; thus, = prints the value of a number, boolean, string, name, or operator object and prints --nostringval-- for an object of any other type.

The name = is not special. In PostScript language programs it must be delimited by white space or special characters the same as names composed of alphabetical characters. The value of = is not an operator, but rather a built-in procedure.

ERRORS: stackunderflow

SEE ALSO: ==, stack,

cvs, print,

flush


Troubleshooting index Back to Postscript index



== any == - pops an object from the operand stack, produces a text representation of that object followed by a newline character, and writes the result to the standard output file. == attempts to produce a result that resembles the PostScript syntax for creating the object.
It precedes literal names by /, brackets strings with (...), and expands the values of arrays and packed arrays and brackets them with [...] or /{

...}. For an object with no printable representation, == produces the name of its type in the form -mark- or -dict-. For an operator object, it produces the operator's name in the form --add--.

The name == is not special. In PostScript language programs it must be delimited by white space or special characters the same as names composed of alphabetical characters. The value of == is not an operator, but rather a built-in procedure.

The == operator is intended for convenience in debugging. The details of how == formats its output are intentionally unspecified. A program requiring detailed control over output format should do its own formatting explicitly, using lowerlevel operators, such as cvs. Also, and writeobject (Level 2 features) may be more suitable for generating machine-readable output.

ERRORS: stackunderflow

SEE ALSO: =, print,

pstack, flush


Troubleshooting index Back to Postscript index



$error - $error dict
pushes the dictionary object $error on the operand stack .
$error is not an operator; it is a name in systemdict associated with the dictionary object.

ERRORS: stackoverflow

SEE ALSO: errordict

Troubleshooting index Back to Postscript index




Original file name: PSL2.html