在源代码中嵌入编译器选项
Posted
技术标签:
【中文标题】在源代码中嵌入编译器选项【英文标题】:Embedding Compiler Options in source 【发布时间】:2018-07-02 11:59:47 【问题描述】:我正在将一些 COBOL 代码从 zOS 移动到 Linux,并在 COBOL 程序的顶部偶然发现了这段代码:
CBL DATEPROC(FLAG),YEARWINDOW(-90) 004220CB
ID DIVISION. 004220CB
PROGRAM-ID. AL0001. 004220C
是 COBOL 编译器检测到的那些编译器选项,还是它们对某种第三方预处理器的指令。
我个人的猜测是,它是处理代码中 Y2K 问题的第三方处理器。
【问题讨论】:
正如 piet 已经指出的,这是原始编译器处理的内容。根据您的新编译器(即???),您可能有类似的选项。 我将尝试在 Linux 上使用 GnuCOBOL,但如果这不起作用,那么我将使用 MicroFocus。如果我了解要更改的内容,我还将考虑编写一个预处理器来处理代码以使其与 GnuCOBOL 一起使用。 【参考方案1】:对于 IBM 的 Enterprise COBOL,CBL
语句是提供编译器选项的几种方法之一。
您示例中的选项有点特殊,因为 IBM 放弃了 Y2K 支持,因此在从版本 4 迁移到版本 5 时,DATEPROC
和 YEARWINDOW
选项。对于 V5 编译器,它们应该由编译器,但不应导致编译错误。
【讨论】:
我添加了文档参考,因为我认为它们在这里很有用,希望你不介意:;-) @SimonSobisch:所以我看到你破解了 GnuCOBOL。当有人编码 PIC X(2) DATE FORMAT YY 时,这在 GnuCOBOL 中的等价物是什么?以上是关于在源代码中嵌入编译器选项的主要内容,如果未能解决你的问题,请参考以下文章