PostScript 状态字典名称查找顺序



在 Lvl 2,3 中,您在字典堆栈上有这个:

systemdict | globaldict | userdict

在 Lvl 1 中,您拥有与产品相关的运营商的状态。据我了解,statusdict是一个字典,可以通过"systemdict"中的"statusdict"键访问。(如果我错了,请纠正我(。

通常,如果您进行名称查找,它首先在userdict中查找,然后在全局字典中查找,最后在systemdict中查找。

假设我在语言级别 2 或 3,我有 systemdict、globaldict 和 userdict。 为了兼容,我也有状态词典。如果您有状态字典,名称查找的顺序是什么?解释器是在系统字典之前还是在系统字典之后检查状态字典?(或另一点?

我记得(自从我看过级别 1 以来已经有很长时间了(,使用 statusdict 运算符的唯一方法是发出一个特定的"statusdict begin"来推动字典堆栈或类似的东西。

例如,Ghostscript 的状态字典实现了旧的 1 级"设置",如果你尝试:

612 792 0 setpage

然后,您将收到"未定义"错误。然而:

statusdict begin 612 792 0 setpage end

会工作。我在另一个 3 级解释器上尝试了类似的东西,结果相同。

所以我想说你不需要担心查找statusdict,任何想要使用其内容的代码都必须首先将其放在字典堆栈上,使用get或类似的方式来访问字典。

最新更新