PostScript ==运算符

时间:2015-06-05 09:13:07

标签: operators postscript

  

==的值不是运算符,而是内置过程。

PLRM第526页(pdf第540页)。

内置过程,这是否意味着这是一个PostScript过程:

{ something here }

或实际功能,例如在Java中你必须自己定义吗?

2 个答案:

答案 0 :(得分:4)

您可以使用/== load ==来查看ghostscript的实现。

或者获得Frank Meritt Braswell撰写的 Inside Postscript 一书。它有一整章关于==程序如何在Adobe的打印机实现中运行。

但是简单的框架基于type运算符的属性,它产生了一个类型名称。更具体地说,它产生一个可执行文件名,它指定参数的类型。因此,您可以轻松地使用字典实现类型开关。

<<
    /integertype { } % handle integer case
    /realtype { }    % handle floating-point case
    /arraytype { }   % handle array case
>> begin
5 type exec
2.0 type exec
{a b c} type exec

不同的类型对象会导致执行不同的过程。

使用它,我们可以处理可能传递给过程的不同类型。

/my== {
     <<
     /integertype { =string cvs print }
     /realtype { =string cvs print }
     /arraytype { dup xcheck {
                      ({ ) print {my==} forall (} ) print
                  }{
                      ([ ) print {my==} forall (] ) print
                  } }
     >> begin dup type exec
} def

=string(在本书中描述)是===过程为此目的使用的预分配的128字节暂存缓冲区:将参数提供给{{ 1}}。

答案 1 :(得分:0)

这是一个程序。

我不会说Java,但在PostScript中如果是可执行文件,而不是操作符(语言的一部分),那么你必须自己定义它。

请注意,在PostScript中,也可以重新定义运算符,因为它具有运算符的名称,并不意味着 是运算符,它可能仍然是一个过程。 / p>