Cobol 在源代码中嵌入编译器选项

Cobol 在源代码中嵌入编译器选项,cobol,zos,Cobol,Zos,我正在将一些COBOL代码从zOS迁移到Linux,在COBOL程序的顶部偶然发现了以下代码: CBL DATEPROC(FLAG),YEARWINDOW(-90) 004220CB ID DIVISION. 004220CB PROGRAM-ID. AL0001.

我正在将一些COBOL代码从zOS迁移到Linux,在COBOL程序的顶部偶然发现了以下代码:

   CBL DATEPROC(FLAG),YEARWINDOW(-90)                               004220CB
   ID DIVISION.                                                     004220CB
   PROGRAM-ID.   AL0001.                                            004220C
是COBOL编译器检测到的编译器选项,或者是某种第三方预处理器的指令


我个人的猜测是,它是一个第三方处理器,负责处理代码中的Y2K问题。

对于IBM的Enterprise COBOL,
CBL
语句是提供编译器选项的几种方法之一


您的示例中的选项有点特殊,因为IBM在从版本4移动到版本5时放弃了对Y2K的支持,从而放弃了和选项。对于V5编译器,它们应该由编译器标记,但不应导致编译错误。

正如piet已经指出的,这是原始编译器处理的。根据您的新编译器(是???)的不同,您可能有类似的选项。我将尝试在Linux上使用GnuCOBOL,但如果这不起作用,那么我将使用MicroFocus。我还将考虑编写一个预处理器来对代码进行按摩,以使它与GnuCOBOL一起工作,如果我知道要改变什么。我已经添加了文档引用,因为我认为它们在这里很有用,希望你不要介意:,(-)@西蒙索比希:所以我看到你在攻击GnuCOBOL。当有人编码PICX(2)日期格式YY时,在GnuCOBOL中这与什么是等价的?