Postscript Operators 't'






timeout (error)

A time limit has been exceeded; that is, a PostScript language program has executed for too long or has waited too long for some external event to occur.

Execution of timeout is sandwiched between execution of two objects being interpreted in normal sequence. Unlike most other errors, occurrence of a timeout does not cause the object being executed to be pushed on the operand stack nor does it disturb the operand stack in any way.

The PostScript language does not define any standard causes for timeout errors. However, a PostScript interpreter running in a particular environment may provide a set of timeout facilities appropriate for that environment.

Troubleshooting index Back to Postscript index



token file token any true (if found)
false (if not found)
string token post any true (if found)
false (if not found)

reads characters from file or string, interpreting them according to the PostScript language syntax rules, until it has scanned and constructed an entire object.

In the file case, token normally pushes the scanned object followed by true. If token reaches end-of-file before encountering any characters besides white space, it closes file and returns false.

In the string case, token normally pushes post (the substring of string beyond the portion consumed by token), the scanned object, and true. If token reaches the end of string before encountering any characters besides white space, it simply returns false.

In either case, the any result is an ordinary object. It may be simple-an integer, real, or name-or composite-a string bracketed by (...) or a procedure bracketed by /{

...}. The object returned by token is the same as the object that would be encountered by the interpreter if the file or string were executed directly. However, token scans just a single object and it always pushes that object on the operand stack rather than executing it.

token consumes all characters of the token and sometimes the terminating character as well. If the token is a name or a number followed by a white-space character, token consumes the white-space character (only the first one if there are several). If the token is terminated by a special character that is part of the token-one of ), >, ], or }-token consumes that character, but no following ones. If the token is terminated by a special character that is part of the next token-one of /, (, <, [, or /{

-token does not consume that character, but leaves it in the input sequence. If the token is a binary token or a binary object sequence, token consumes no additional characters.

EXAMPLE:

(15(St1) /{

1 2 add}) token -> ((St1) /{

1 2 add}) 15 true
((St1) /{

1 2 add}) token -> ( /{

1 2 add}) (St1) true
( /{

1 2 add}) token -> ( ) /{

1 2 add} true
( ) token -> false


ERRORS: invalidaccess, ioerror,

limitcheck, stackoverflow,

stackunderflow, syntaxerror,

typecheck, undefinedresult,

VMerror

SEE ALSO: search, anchorsearch,

read


Troubleshooting index Back to Postscript index



transform x y transform x' y'
x y matrix transform x' y'

With no matrix operand, transform transforms the user space coordinate (x, y) by CTM to produce the corresponding device space coordinate (x', y'). If the matrix operand is supplied, transform transforms (x, y) by matrix rather than by CTM.

ERRORS: rangecheck, stackunderflow,

typecheck

SEE ALSO: itransform, dtransform,

idtransform


Troubleshooting index Back to Postscript index



translate tx ty translate
- tx ty matrix translate matrix

With no matrix operand, translate builds a temporary matrix and concatenates this matrix with the current transformation matrix (CTM). Precisely, translate replaces the CTM by T x CTM. The effect of this is to move the origin of the user coordinate system by tx units in the x direction and ty units in the y direction relative to the former user coordinate system. The sizes of the x and y units and the orientation of the axes are unchanged.

If the matrix operand is supplied, translate replaces the value of matrix by T and pushes the modified matrix back on the operand stack. In this case, translate does not affect the CTM.

ERRORS: rangecheck, stackunderflow,

typecheck


SEE ALSO: rotate, scale,

concat, setmatrix


Troubleshooting index Back to Postscript index


true - true true

pushes a boolean object whose value is true on the operand stack. true is not an operator; it is a name in systemdict associated with the boolean value true.

ERRORS: stackoverflow

SEE ALSO: false, and,

or, not, xor


Troubleshooting index Back to Postscript index


truncate num1 truncate num2

truncates num1 toward zero by removing its fractional part. The type of the result is the same as the type of the operand.

EXAMPLE:

3.2 truncate -> 3.0
-4.8 truncate -> -4.0
99 truncate -> 99

ERRORS: stackunderflow, typecheck

SEE ALSO: ceiling, floor,

round, cvi


Troubleshooting index Back to Postscript index


type any type name
returns a name object that identifies the type of the object any. The possible names that type can return are as follows:
arraytype marktype
booleantype nametype
conditiontype nulltype
dicttype operatortype
filetype packedarraytype
fonttype realtype
gstatetype savetype
integertype stringtype
locktype

The name fonttype identifies an object of type fontID. It has nothing to do with a font dictionary, which is identified by dicttype the same as any other dictionary.

The returned name has the executable attribute. This makes it convenient to perform type-dependent processing of an object simply by executing the name returned by type in the context of a dictionary that defines all the type names to have procedure values (this is how == works).

The set of types is subject to enlargement in future revisions of the language. A program that examines the types of arbitrary objects should be prepared to behave reasonably if type returns a name that is not in this list.

ERRORS: stackunderflow

Troubleshooting index Back to Postscript index


typecheck (error)

Some operand's type is different from what an operator expects. This is probably the most frequent error encountered. It is often the result of faulty stack manipulation, such as operands supplied in the wrong order or procedures leaving results on the stack when they are not supposed to.

Certain operators require dictionaries or other composite objects as operands, constructed according to specific rules (for example, pattern dictionaries or user paths). A typecheck error can occur if the contents of such objects are of incorrect type or are otherwise malformed.

Troubleshooting index Back to Postscript index





Original file name: PSL2t.html