0

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

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

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

因此我有两个问题:

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

1 回答 1

0

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

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

于 2013-09-03T14:00:31.127 回答