Dictionary 如何在postscript中创建以斜杠为键的词典

Dictionary 如何在postscript中创建以斜杠为键的词典,dictionary,key,postscript,slash,Dictionary,Key,Postscript,Slash,所以我知道Postscript中的这些基本dict命令: i dict创建包含i条目的词典 d begin将字典d移动到字典堆栈中 end从字典堆栈中删除最顶层的字典 dnw将值w存储在字典dnamen下 dn get获取字典d中namen的值,并将其放在堆栈上 我想做的是创建一个表示差分操作数的关联性的字典。+操作数和-操作数共享相同的优先级,因此它们都设置为0,*和/操作数也共享相同的优先级,但优先级高于+和-,因此设置为1,依此类推 问题是,我无法将dictionary键设置为/,因为它被

所以我知道Postscript中的这些基本dict命令:

i dict
创建包含
i
条目的词典

d begin
将字典
d
移动到字典堆栈中

end
从字典堆栈中删除最顶层的字典

dnw将值
w
存储在字典
d
name
n

dn get
获取字典
d
中name
n
的值,并将其放在堆栈上

我想做的是创建一个表示差分操作数的关联性的字典。
+
操作数和
-
操作数共享相同的优先级,因此它们都设置为0,
*
/
操作数也共享相同的优先级,但优先级高于
+
-
,因此设置为1,依此类推

问题是,我无法将dictionary键设置为
/
,因为它被视为某种“分隔符”。有没有办法解决这个问题,因为我不能更改键,也不能创建这样的dict:

/prioritydict 5 dict def
prioritydict /(-) 0 put
prioritydict /(+) 0 put
prioritydict /(*) 1 put
prioritydict /(/) 1 put
prioritydict /(^) 2 put
/prioritydict 5 dict def
prioritydict /- 0 put
prioritydict /+ 0 put
prioritydict /* 1 put
prioritydict // 1 put
prioritydict /^ 2 put
也不是这样:

/prioritydict 5 dict def
prioritydict /(-) 0 put
prioritydict /(+) 0 put
prioritydict /(*) 1 put
prioritydict /(/) 1 put
prioritydict /(^) 2 put
/prioritydict 5 dict def
prioritydict /- 0 put
prioritydict /+ 0 put
prioritydict /* 1 put
prioritydict // 1 put
prioritydict /^ 2 put

非常感谢您提供的任何帮助

您可以使用cvn(转换为名称)运算符将任何形式的字符串转换为文字名称。这些都应该是等效的:

%!

/prioritydict 5 dict def

prioritydict begin

/+ 0 def
/- 0 def
/* 1 def
%// 1 def    conflicts with immediately evaluated name
/^ 2 def

* ^ add =
prioritydict <2f> cvn 1 put

prioritydict (\/) cvn 1 put

prioritydict (\057) cvn 1 put
prioritydict cvn 1 put
优先权(\/)cvn 1 put
优先级命令(\057)cvn 1 put

如果您只打算使用文字名称来提及它,那么您可以只使用一个斜面

/ 
也就是说,一个空名称,仅由修饰符表示,在下一个分隔符(空格、换行符、括号或大括号)之前后跟零个字符

您应该能够定义它并加载它,但是您不能直接为它指定一个可执行名称,因此您不能像其他定义一样使用自动加载

/ 1 def
/ load =
/ cvx exec =

从PSLRM3中:A/(斜杠而不是反斜杠)引入文字名称。斜杠不是名称本身的一部分,而是一个前缀,表示以下零个或更多规则字符序列构成了文字名称对象。/和名称之间不能有空格字符。字符//(两个斜杠)引入一个立即计算的名称。注意:标记/(斜杠后跟非常规字符)是一个有效的文字名称。我不完全确定您的中间示例<代码>/
在字符串中并不特殊,因此无需转义它。这可能取决于实现,
(\/)cvn
是否与
(/)cvn
相比较。cvn正是我想要的!(/)对我来说很好,这正是我所需要的。非常感谢:)!