是否可以编写自己的 gnatcheck 规则,如果可以,有人可以指点我一个好的参考吗?我正在寻找一种正在使用的特定“风格”,如果我能简单地写一个规则,如果你看到所说的风格,它会抛出一个警告或错误,这样我们就可以在这种情况下进行标记没有遵循特定的标准。
3 回答
除了trashgod 的参考,我认为此PDF 的第7.1 节可能会有所帮助:
http://extranet.eu.adacore.com/articles/HighIntegrityAda.pdf
一些背景知识在这里可能会有所帮助。虽然样式检查为强制执行用户样式指南提供了很多希望,但这并不是它们的用途。
这些检查的主要目的是在 Ada 编译器本身的源代码上强制执行Ada Core(维护编译器的人)的风格。如果您尝试编译编译器自己的源文件之一,您可能会注意到检查会自动打开。
如果检查本身强制执行的样式是用户可配置的,那么它根本不符合 AdaCore 的目的,因此他们没有添加类似的功能。
如果您想自己使用它,您的第一个选择就是坚持 AdaCore 的编码风格。我过去没有发现它很可怕,所以你可以看看这样做。
尽管如此,对于某些人来说,进行某种可配置性将是一个非常酷的功能。如果您走这条路线,您可能必须使其可配置(以当前行为作为默认行为),而不仅仅是更改检查。原因是您必须修改编译器源代码才能完成此操作,并且正如我上面提到的,编译器在编译自身时会打开检查。你真的不想重新格式化大量工作的 Gnat 编译器源文件。
我真的很想看到有人在某个时候这样做,因为它会使检查对我们这些为 AdaCore 以外的人工作的人更有用。
作为参考,现有的 GNAT 样式检查在GNAT 用户指南中的§3.2.5 Style Checking
. 由于规则是由编译器强制执行的,因此额外的规则将需要相应的修改。