我知道很多COBOL编译器都允许嵌套的副本(具有不同的深度),但我没有找到任何"官方"规则。 问题:
是否有任何COBOL标准明确允许或禁止嵌套的副本?
是否有任何COBOL编译器不允许嵌套的副本?
答案 0 :(得分:2)
该标准允许嵌套的副本,但不允许在#pp_close,#pp_close1 {
position: absolute;
top: 0px;
right: 0px;
color: red;
font-size: 25px;
}
子句中提及或操纵任何COPY
语句。从标准REPLACING
声明,一般规则11到14(COBOL 2014 7.2.2.3,COBOL 2002 7.1.2.3中相同):
- 如果指定了
COPY
短语,则库文本不应包含REPLACING
语句。- ...
- 如果未指定
COPY
短语,则库文本可能包含不包含REPLACING
短语的COPY
语句。实现应支持至少5个级别的嵌套,包括序列中的第一个REPLACING
语句。正在复制的库文本不应导致处理直接或间接复制自身的COPY
语句。- 醇>
COPY
语句的替换操作不得引入COPY
语句,COPY
指令,注释或空行。
答案 1 :(得分:1)
您可以在主程序中使用COPY REPLACING来插入副本。
您可以在副本中使用COPY REPLACING将其他副本书复制到副本中。
所以,是的,允许使用嵌套的复制书。所以COBOL编译器允许这样做。 他们在实践中不会发生很多事情,但确实会发生。
答案 2 :(得分:1)
标准(2010年草案)有7.2.2.3 13)
实现应支持至少5个级别的嵌套,包括序列中的第一个COPY语句。正在复制的库文本不应导致处理直接或间接复制自身的COPY语句。
但是11)12)和14)提到对这些嵌套书籍的限制,不包括任何替换短语,或者替换包括COPY。这一切都有意义,因为单个COPY语句不是递归的,而是可以在处理过程中封装其他COPY语句。