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

时间:2018-10-09 13:23:35

标签: sonarqube

enter image description here在SonarQube中的COBOL中验证评论的最佳方法是什么? 我想验证IDMYIFIDATION 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注释吗?

1 个答案:

答案 0 :(得分:1)

SonarCOBOL不能将注释表示为语法树的节点,因为它们可以出现在节点的中间。 注释存储在令牌上,您可以通过在实例上调用getTrivia来获取它们 Token中的。 每个令牌都存储位于令牌之前的注释。

如果要访问文件的所有令牌,则自定义规则类应实现AstAndTokenVisitor。 您还可以通过使用AstNode上的getTokens方法来检查特定节点的令牌。

您还应该检查documentation for writing custom rules中的SonarCOBOL。