开发一个 COBOL 插件来验证 SonarQube 中的评论

问题描述 投票:0回答:1

在 SonarQube 中验证 COBOL 注释的最佳方式是什么? 我想验证 IDENTIFICATION DIVISION 的注释中是否存在标签 MYTAG。

   IDENTIFICATION DIVISION.                                         00010000
   PROGRAM-ID.  ABC00000.                                            00020000
  *@<MYTAG>                                                         00030000
  *@      PROGRAM    : ABC00000                                     00040000
  *@      OBJECTIVE  : MODULO DE ACESSO A XYZ                       00050000
  *@      DATA       : MAIO 2018                                    00060000
  *@      AUTHOR     : JOHN DOE                                     00070000
  *@</MYTAG>                                                        00080000
   ENVIRONMENT DIVISION.                                            00090000
  **********************        

探索 SSLR COBOL Toolkit 后,似乎 SSLR COBOL 不会将注释检测为节点。

我可以使用 SSLR 验证 COBOL 注释吗?

sonarqube cobol
1个回答
1
投票

SonarCOBOL 不将注释表示为语法树的节点,因为它们可以出现在节点的中间。 评论存储在令牌上,您可以通过在实例上调用

getTrivia
来获取它们
Token
。 每个标记都存储位于该标记之前的评论。

如果您想访问文件的所有标记,您的自定义规则类应该实现

AstAndTokenVisitor
。 您还可以使用 getTokens
 上的 
AstNode
 方法来检查特定节点的令牌。

您还应该检查为 SonarCOBOL 编写自定义规则的文档。

© www.soinside.com 2019 - 2024. All rights reserved.