Cobol参考修改:"MOVE变量(变量+文字:文字)到变量"究竟做了什么?

APL*_*APL 0 cobol

关于Cobol中的参考修改,有一点我不明白.

这个例子是这样的:

MOVE VARIABLE(VARIABLE2 +4:2) TO VARIABLE3
Run Code Online (Sandbox Code Playgroud)

现在我不知道"+4:2"引用了什么.是否意味着前两个标志在目标移动后标志4个标志?例如,如果VARIABLE(第1个)填充"123456789"并且VARIABLE2包含该变量中的第2和第3个位置(所以"23"),则目标是"23 + 4",意思是"789".然后目标中的前两个位置(由":2"表示)移动到VARIABLE3.所以到最后VARIABLE3会包含"78".

我理解这一点是正确的,还是我对该指令作出错误的假设?

Ric*_*ith 5

(VARIABLE2 +4:2)是语法错误,因为起始位置必须是算术表达式.在+此之后必须有一个空格reference modification才能生效.并且,VARIABLE2必须是数字,表达式应计算为整数.

一旦纠正,然后4添加到内容VARIABLE2.这是VARIABLE1移动中最左边(或起始位置).2字符被移动到VARIABLE3.如果VARIABLE3长度超过两个字符,则剩余的位置将填充空格.


从2002年的COBOL标准:

8.7.1算术运算符

有五个二进制算术运算符和两个一元算术运算符可用于算术表达式.它们由特定的COBOL字符表示,前面应加一个空格,后跟一个空格,但左括号和一元运算符之间或一元运算符和左括号之间不需要空格.

强调补充说.