COBOL中是否允许使用嵌套副本?

时间:2016-06-03 12:35:34

标签: cobol

我知道很多COBOL编译器都允许嵌套的副本(具有不同的深度),但我没有找到任何"官方"规则。 问题:

  1. 是否有任何COBOL标准明确允许或禁止嵌套的副本?

  2. 是否有任何COBOL编译器不允许嵌套的副本?

3 个答案:

答案 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中相同):

  
      
  1. 如果指定了COPY短语,则库文本不应包含REPLACING语句。
  2.   
  3. ...
  4.   
  5. 如果未指定COPY短语,则库文本可能包含不包含REPLACING短语的COPY语句。实现应支持至少5个级别的嵌套,包括序列中的第一个REPLACING语句。正在复制的库文本不应导致处理直接或间接复制自身的COPY语句。
  6.   
  7. COPY语句的替换操作不得引入COPY语句,COPY指令,注释或空行。
  8.   

答案 1 :(得分:1)

您可以在主程序中使用COPY REPLACING来插入副本。

您可以在副本中使用COPY REPLACING将其他副本书复制到副本中。

所以,是的,允许使用嵌套的复制书。所以COBOL编译器允许这样做。 他们在实践中不会发生很多事情,但确实会发生。

答案 2 :(得分:1)

标准(2010年草案)有7.2.2.3 13)

实现应支持至少5个级别的嵌套,包括序列中的第一个COPY语句。正在复制的库文本不应导致处理直接或间接复制自身的COPY语句。

但是11)12)和14)提到对这些嵌套书籍的限制,不包括任何替换短语,或者替换包括COPY。这一切都有意义,因为单个COPY语句不是递归的,而是可以在处理过程中封装其他COPY语句。