是否可以在Cobol中添加内联注释

psy*_*ave 4 cobol comments

大多数现代编程语言都提供了添加内联注释的方法,通常是那些使用换行符表示注释结束的注释,以及用于指示注释开头的任意分隔符或标记序列,同时让行开头是一种解释性指令.

在COBOL中,虽然对整行进行注释已有详细记录(可以通过*在第7列中添加星号符号()来完成),但是找到关于是否可以从任意位置开始注释其余行的文档更难.

问题是:你能否在COBOL的任意位置开始评论一行的其余部分?

想象一下这#是这种评论的特殊性,这里是一个虚构的例子:

   *--- This structure is a dummy example
    01 MY-STRUCTURE.
        05 MY-VARIABLE PIC X VALUE '-'. # Valid values are in {-, a, b}
Run Code Online (Sandbox Code Playgroud)

Bru*_*tin 5

Pre Cobol 2002 No

在Cobol 2002*中被引入.参见Cobol 2002并搜索在线评论,这个例子如下:

05 Field-X Pic XX *> Used in calculating the current THINGY
...
MOVE ABC to XYZ  *> Current-XYZ
             LMN *> Saved XYZ
Run Code Online (Sandbox Code Playgroud)

还有一些例外

  • Exec Sql中 - End-Exec.您可以对某些SQL供应商(例如Oracle)使用内联注释(/**/).这不是真正的Cobol,而是一种嵌入式语言,通常通过预编译器实现.Othere Exec End-exec声明也可以允许内嵌注释.
  • 可能有其他Cobols实现允许在线注释
  • 默认情况下,许多前Cobol 20002编译器只查看第7列到第72 .因此第1列到第6列以及第71列之后的任何内容都可以保留注释.


sah*_*hhm 5

Enterprise COBOL V5.1将支持内联注释

来自发布亮点

引入浮动注释指示符以在程序文本区域的任何位置创建注释 Enterprise COBOL for z/OS,V5.1 引入了浮动注释指示符 ('*>')。

您可以在程序文本区域的任何位置指定它,以指示行上的后续文本是注释行还是内嵌注释。

浮动注释指示符表示注释行,如果它是程序文本区域中的第一个字符串(区域 A 加区域 B,第 8 - 72 列),或者如果它在程序文本中的一个或多个字符串之后,则表示行内注释。程序文本区。

  • 企业 COBOL 只是 COBOL 的一个供应商实现。V5.1 只是让 IBM Enterprise COBOL 更接近 COBOL 2002 标准。最好说内联注释是作为 COBOL 2002 标准的一部分引入的,并且任何实施该标准的供应商(例如 Microfocus)都将支持内联注释作为结果。之前的 COBOL 标准不支持内联注释。 (3认同)

Bar*_*tta 5

不,但是当您将代码提交给编译器时,您可以编写一个程序来"WRAP"您的代码.我们20年前这样做了.

例如.

   SOME COBOL CODE  -- DOUBLE DASH INDICATES COMMENT TO END OF LINE
Run Code Online (Sandbox Code Playgroud)

然后编写一个程序,查找双破折号并删除 - 和文本.然后在编译jcl中,将源代码输入到程序中,并将输出输出到编译器.简单.使用INSPECT语句.

 INSPECT LINE, TALLYING CHARACTERS BEFORE INITIAL "--".
 MOVE SPACES TO LINE(TALLY:),
Run Code Online (Sandbox Code Playgroud)

就是这样.删除注释并发送给编译器.