2
Q   ZR $ZTLP I Q=-1 S Q,A=F G T
I Q< S A=F G R

如何识别 MUMPS 中的标签、关键字和变量?
上面代码中的 Q 是什么?即标签、变量或关键字?

定义变量关键字和子程序的规则是什么?
否则很难确定您能否提出原因,因为我无法理解我现有的代码是什么?

4

2 回答 2

3

Q means QUIT in first instance but then I Q=-1 is IF Q EQUALS -1 - Q is a variable here too - not very good practice

S Q,A=F  again SET Q and A = F

I Q< S A=F G R  if Q is less than null (???) SET A=F  then GOTO line R.
于 2011-04-28T08:03:05.157 回答
2

秘诀是:空格。

一般 MUMPS 程序行语法为: ...

Lebel 和参数是可选的:当一行没有标签时,它以制表符开头,当一个命令没有参数时(在极少数情况下会发生,例如:Quit),该命令后跟两个空格。

当一行以命令开头(没有标签和制表符)时,它不是程序的一部分,但它是一个立即执行的命令。

您可能会觉得这很混乱,但请记住,MUMPS 是在机器运行缓慢时设计的;如果命令被严格分隔,则很容易解析命令。这就是命令可以缩写为单字母的原因,也是 MUMPS 没有操作优先级的原因(较新的 MUMPS 系统可配置为使用操作员优先级而不是传统的从左到右的处理顺序)。

于 2013-08-19T20:18:37.457 回答