我目前正在Sonar 中实施一些MISRA C 规则。我目前的规则是避免递归。我从
//statement[@tokenValue=ancestor::functionDefinition/functionDeclarator/functionName/@tokenValue]
为了避免在函数定义中使用相同的函数名称,当然可以使用具有相同名称但不同签名的其他函数。
因此我有两个问题:
- 是否可以找出方法签名(通过内置的 xpath 函数等)?在这里,我可以将签名与调用语句进行比较。
- 是否可以扩展插件,因为有 MISRA 规则,使用源代码通过抽象语法树可能更有效?非常感谢您的回复:)(ps :- 是否有任何关于 SSLR C 工具包/内置 xpath 规则的文档?)