1-- This file contains rules to be used as input data for the SQALE method
2-- For information about the method, and how it is applied to Ada, please
3-- refer to J-P Rosen's paper:
4--   The SQALE Quality and Analysis Models for Assessing the Quality of Ada Source Code
5--   Lecture Notes in Computer Science, n� 6652,  proceedings of the 16th Ada-Europe
6--   International Conference on Reliable Software Technologies, Springer-Verlag, 2011
7-- The paper is also accessible from http://www.adalog.fr/publica2.htm
8
9  SQALE_01: check Parameter_Declarations (all_parameters, max 7);
10--SQALE_02: check
11--SQALE_03: check
12--SQALE_04: check
13--SQALE_04: check
14--SQALE_05: check
15  SQALE_06: check simplifiable_statements (dead);
16  SQALE_07: check units (unreferenced);
17  SQALE_08: check max_call_depth (finite);
18--SQALE_09: check
19  SQALE_10: check declarations (public variable, public tagged_type, public record_type);
20  SQALE_11: check dependencies (direct, max 50);
21--SQALE_12: check
22--SQALE_13: compile time
23--SQALE_14: compile time
24--SQALE_15: compile time
25  SQALE_16: check entities (unchecked_conversion, ada.unchecked_conversion);
26  SQALE_17: check improper_initialization (variable);
27--SQALE_18: check
28  SQALE_19: check statements (function_return, procedure_return);
29--SQALE_20: compile time
30--SQALE_21: compile time
31--SQALE_22: compile time
32--SQALE_23: compile time
33--SQALE_24: compile time
34  SQALE_25: check expressions (real_equality);
35--SQALE_26: compile time
36  SQALE_27: check expressions (mixed_operators);
37  SQALE_28: check global_references (multiple, procedure, function, task, protected);
38--SQALE_29: check
39--SQALE_30: check
40--SQALE_31: check
41--SQALE_32: compile time
42--SQALE_33: compile time
43  SQALE_34: check exception_propagation (interface, c);
44--SQALE_35: check
45--SQALE_36: compile time
46--SQALE_37: compile time
47  SQALE_38: check local_hiding (not_operator overloading);
48--SQALE_39: check
49--SQALE_40: check
50--SQALE_41: compile time
51  SQALE_42: check style (exposed_literal, integer, 0, 1),
52            check style (exposed_literal, real, 0.0, 1.0),
53            check style (exposed_literal, string, "^$");
54  SQALE_43: check reduceable_scope (no_blocks to_body variable,
55                                    no_blocks to_body constant,
56                                    no_blocks to_body type,
57                                    no_blocks to_body use);
58--SQALE_44: check
59  SQALE_45: check usage (object, not read);
60--SQALE_46: check
61--SQALE_47: check
62  SQALE_48: check simplifiable_statements;
63  SQALE_49: check comments (pattern, "if.*then");   --etc.
64--SQALE_50: compile time
65--SQALE_51: check
66--SQALE_52: check
67--SQALE_53: check
68--SQALE_54: check
69--SQALE_55: check
70--SQALE_56: check
71--SQALE_57: check
72  SQALE_58: check style (casing_Attribute,  Uppercase), -- To be adjusted to project
73            check style (casing_identifier, Original),   -- To be adjusted to project
74            check style (casing_keyword,    Lowercase), -- To be adjusted to project
75            check style (casing_pragma,     Uppercase); -- To be adjusted to project
76  SQALE_59: check naming_convention (all, case_sensitive "^[A-Z][a-z0-9]*(_[A-Z0-9][a-z0-9]*)*$");
77                                                         -- To be adjusted to project
78--SQALE_60: check
79--SQALE_61: check
80--SQALE_62: compile time
81--SQALE_63: compile time
82  SQALE_64: check statements (goto);
83--SQALE_65: check
84--SQALE_66: check
85