PostScript statusdict 名称查找顺序

PostScript statusdict name lookup order

在 Lvl 2,3,你在 dictstack 上有这个:

systemdict | globaldict | userdict

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

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

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

我记得(自从我看了第 1 级以来已经有很长时间了)使用 statusdict 中的运算符的唯一方法是发出特定的 'statusdict begin' 以将字典推送到字典堆栈上,或者相似。

例如,Ghostscript 的 statusdict 实现旧级别 1 'setpage',如果您尝试:

612 792 0 setpage

然后你会得到一个'undefined'错误。然而这个:

statusdict begin 612 792 0 setpage end

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

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