如何编写gnatcheck规则

时间:2011-06-21 18:30:11

标签: coding-style ada gnat

是否有可能编写自己的gnatcheck规则,如果是这样,有人可以指点我一个很好的参考吗?我正在寻找一种正在使用的特定“风格”,如果我能简单地编写一条规则,如果你看到所述风格,它会发出警告或错误,这样我们可以标记没有遵循特定的标准。

3 个答案:

答案 0 :(得分:2)

除了trashgod的参考,我认为本PDF的7.1节可能会有所帮助:

http://extranet.eu.adacore.com/articles/HighIntegrityAda.pdf

答案 1 :(得分:2)

这里的一些背景知识可能会有所帮助。虽然样式检查为实施用户风格指南提供了很多承诺,但这并不是它们的用途。

这些检查的主要目的是在Ada编译器本身的源上强制执行Ada Core(维护编译器的人)样式。您可能会注意到,如果您尝试编译其中一个编译器自己的源文件,则会自动打开检查。

如果支票本身强制执行的样式是用户可配置的,那么它根本不能真正满足AdaCore的用途,因此他们没有添加任何类似的功能。

如果你想自己使用它,你的第一个选择就是坚持使用AdaCore的编码风格。我过去并没有发现它太可怕了,所以你可能只是看着这样做。

尽管如此,制作某种可配置性对于某些人来说是一个非常酷的功能。如果你走这条路,你可能必须使它可配置(当前行为作为默认行为),而不仅仅是更改检查。原因是你必须修改编译器源来实现这一点,正如我上面提到的,编译器在编译时会打开检查。您真的不想重新格式化大量有效的Gnat编译器源文件。

我真的希望看到有人在某个时候这样做,因为这会使我们这些为AdaCore以外的人工作的人更有用。

答案 2 :(得分:1)

作为参考,现有的GNAT样式检查在GNAT User's Guide下的§3.2.5 Style Checking中描述。由于规则由编译器强制执行,因此其他规则需要相应的修改。