声纳 - 自定义C规则,SSLR C工具包 - 避免递归(+内置xpath函数)

时间:2013-09-03 11:37:18

标签: xpath sonarqube

我目前正在Sonar中实施一些MISRA C规则。我目前的规则是避免递归。我从

开始
//statement[@tokenValue=ancestor::functionDefinition/functionDeclarator/functionName/@tokenValue]

为避免在函数定义中使用相同的函数名,但当然可以使用具有相同名称但签名不同的其他函数。

因此我有两个问题:

  1. 是否有可能找到方法签名(通过内置的xpath函数等)?在这里,我可以将签名与调用语句进行比较。
  2. 是否可以扩展插件,因为有MISRA规则,使用源代码浏览抽象语法树可能更有效率? 非常感谢你的回复:) (ps: - 有没有关于SSLR C工具包/内置xpath规则的文档?)

1 个答案:

答案 0 :(得分:0)

不推荐使用C插件。它已被C / C ++插件取代。请参阅http://www.sonarsource.com/products/plugins/languages/cpp/

在实施新的编码规则之前,您应该考虑它是否特定于您自己的上下文,或者可能使其他人受益。如果它可能使其他人受益,您可以在开发人员邮件列表中提出它们。如果SonarQube团队发现您提出的规则很有趣,可以直接在相关语言插件中实现。这对您来说意味着更少的维护,并为他人带来益处。见http://docs.codehaus.org/display/SONAR/Extending+Coding+Rules