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

时间:2013-07-12 13:06:10

标签: comments cobol

大多数现代编程语言都提供了添加inline 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}

4 个答案:

答案 0 :(得分:5)

Pre Cobol 2002否

在Cobol 2002 *中>被介绍了。请参阅Cobol 2002并搜索内嵌评论,该示例为:

05 Field-X Pic XX *> Used in calculating the current THINGY
...
MOVE ABC to XYZ  *> Current-XYZ
             LMN *> Saved XYZ

还有其他一些例外

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

答案 1 :(得分:5)

不,但是当您将代码提交给编译器时,您可以编写一个程序来“WRAP”您的代码。我们20年前做过这件事。

例如。

   SOME COBOL CODE  -- DOUBLE DASH INDICATES COMMENT TO END OF LINE

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

 INSPECT LINE, TALLYING CHARACTERS BEFORE INITIAL "--".
 MOVE SPACES TO LINE(TALLY:),

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

答案 2 :(得分:4)

Enterprise COBOL V5.1将支持内联评论

来自Release Highlights

  

引入浮动评论指标以在任何地方创建评论   在程序文本区域Enterprise COBOL for z / OS中,V5.1引入   浮动评论指标('*>')。

     

您可以在任何地方指定它   程序文本区域表示一行中的后续文本是a   评论行或内联评论。

     

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

答案 3 :(得分:2)

COBOL文档。开放,免费。

并且在有限的时间内,它仍然是草稿并且可以发表评论

当COBOL 20xx草案成为已批准的ISO标准时,最后一个链接几乎可以保证到期,除了ISO PL22 WG4来源之外,它不是真正用于再分发。

COBOL支持FIXED和免费源代码格式。 FIXED较旧,基于80列卡,序列号为1至6列,指令为7列,程序文本为8至72列。

第7列中的星号是固定形式的COBOL注释行。

OCOBOL* Sequence number field "OCOBOL" in this case, it can be anything
      * and comment line indicator

      *> inline comment, can be used for FREE format COBOL, as well as FIXED.

有一招;将第7列中的星号放在第8列中的大于号,并且您有一条注释行,它以固定格式和自由格式COBOL工作。

对于将遵循草案20xx和

的编译器
>>

指令,还有另一个技巧可以帮助FIXED / FREE源代码编译支持。

123456
    >>D free format debug line directives

如果D在第7列中,并且在5和6中有两个更大的数字,那么您对调试行也有混合的FIXED和FREE源文本支持。