Ada gnatyo实际执行什么样式检查?

Ada gnatyo实际执行什么样式检查?,ada,gnat,Ada,Gnat,草案内容如下: 检查子程序体的顺序。如果字母o出现在-gnanty之后的字符串中,则给定范围内的所有子程序体(例如包体)必须按字母顺序排列。排序规则使用普通的Ada规则来比较字符串,忽略字母的大小写,但如果有尾随数字后缀,则在排序中使用该后缀的值(例如,Junk2在Junk10之前) 我认为Junk2来参加Junk10是一种奇怪风格强制执行的实际灵感。但是什么样的代码会触发它呢?我不能让这个选项抱怨函数定义或任务体混乱。例如,使用gnatmake-gnatyo编译以下内容时,我没有收到任何投诉:

草案内容如下:

检查子程序体的顺序。如果字母o出现在-gnanty之后的字符串中,则给定范围内的所有子程序体(例如包体)必须按字母顺序排列。排序规则使用普通的Ada规则来比较字符串,忽略字母的大小写,但如果有尾随数字后缀,则在排序中使用该后缀的值(例如,Junk2在Junk10之前)

我认为
Junk2
来参加
Junk10
是一种奇怪风格强制执行的实际灵感。但是什么样的代码会触发它呢?我不能让这个选项抱怨函数定义或任务体混乱。例如,使用
gnatmake-gnatyo
编译以下内容时,我没有收到任何投诉:

程序混乱
功能测试回归自然;
功能热情回归自然;
--无序功能体
功能热情回归自然为(1);
功能测试返回自然值为(2);
开始
无效的
末端紊乱;
您有:

——无序的功能体
功能热情回归自然为(1);
功能测试返回自然值为(2);
但从技术上讲,这些不是子程序体。它们被称为表达式函数。这种清晰分离的原因是在包规范中不允许使用子程序体,而表达式函数是。 在您的示例中使用实际子程序体将给出预期的样式警告:

功能热情回归自然
开始
返回1;
结束热情;
函数测试返回自然值
开始
返回2;
结束试验;

(既然您提到了任务体;它们也不是子程序体)

我认为不要求表达式函数排序可能是一个疏忽。样式检查肯定是在表达式函数存在之前实现的,所以很有可能。。。然而,这可能要求它们始终是以前声明的完成,因为它们可能具有需要不同顺序的相互依赖性