1 ------------------------------------------------------------------------------
3 -- GNAT COMPILER COMPONENTS --
10 -- Copyright (C) 2001-2002 Free Software Foundation, Inc. --
12 -- GNAT is free software; you can redistribute it and/or modify it under --
13 -- terms of the GNU General Public License as published by the Free Soft- --
14 -- ware Foundation; either version 2, or (at your option) any later ver- --
15 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
16 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
17 -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
18 -- for more details. You should have received a copy of the GNU General --
19 -- Public License distributed with GNAT; see file COPYING. If not, write --
20 -- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, --
21 -- MA 02111-1307, USA. --
23 -- GNAT was originally developed by the GNAT team at New York University. --
24 -- It is now maintained by Ada Core Technologies Inc (http://www.gnat.com). --
26 ------------------------------------------------------------------------------
30 package body Validsw
is
32 ----------------------------------
33 -- Reset_Validity_Check_Options --
34 ----------------------------------
36 procedure Reset_Validity_Check_Options
is
38 Validity_Check_Copies
:= False;
39 Validity_Check_Default
:= True;
40 Validity_Check_Floating_Point
:= False;
41 Validity_Check_In_Out_Params
:= False;
42 Validity_Check_In_Params
:= False;
43 Validity_Check_Operands
:= False;
44 Validity_Check_Returns
:= False;
45 Validity_Check_Subscripts
:= False;
46 Validity_Check_Tests
:= False;
47 end Reset_Validity_Check_Options
;
49 ---------------------------------
50 -- Save_Validity_Check_Options --
51 ---------------------------------
53 procedure Save_Validity_Check_Options
54 (Options
: out Validity_Check_Options
)
58 procedure Add
(C
: Character; S
: Boolean);
59 -- Add given character C to string if switch S is true
61 procedure Add
(C
: Character; S
: Boolean) is
69 -- Start of processing for Save_Validity_Check_Options
72 for K
in Options
'Range loop
76 Add
('n', not Validity_Check_Default
);
78 Add
('c', Validity_Check_Copies
);
79 Add
('f', Validity_Check_Floating_Point
);
80 Add
('i', Validity_Check_In_Params
);
81 Add
('m', Validity_Check_In_Out_Params
);
82 Add
('o', Validity_Check_Operands
);
83 Add
('r', Validity_Check_Returns
);
84 Add
('s', Validity_Check_Subscripts
);
85 Add
('t', Validity_Check_Tests
);
86 end Save_Validity_Check_Options
;
88 ----------------------------------------
89 -- Set_Default_Validity_Check_Options --
90 ----------------------------------------
92 procedure Set_Default_Validity_Check_Options
is
94 Reset_Validity_Check_Options
;
95 Set_Validity_Check_Options
("d");
96 end Set_Default_Validity_Check_Options
;
98 --------------------------------
99 -- Set_Validity_Check_Options --
100 --------------------------------
102 -- Version used when no error checking is required
104 procedure Set_Validity_Check_Options
(Options
: String) is
109 Set_Validity_Check_Options
(Options
, OK
, EC
);
110 end Set_Validity_Check_Options
;
112 -- Normal version with error checking
114 procedure Set_Validity_Check_Options
117 Err_Col
: out Natural)
123 Reset_Validity_Check_Options
;
126 while J
<= Options
'Last loop
130 -- Turn on validity checking (gets turned off by Vn)
132 Validity_Checks_On
:= True;
137 Validity_Check_Copies
:= True;
140 Validity_Check_Default
:= True;
143 Validity_Check_Floating_Point
:= True;
146 Validity_Check_In_Params
:= True;
149 Validity_Check_In_Out_Params
:= True;
152 Validity_Check_Operands
:= True;
155 Validity_Check_Returns
:= True;
158 Validity_Check_Subscripts
:= True;
161 Validity_Check_Tests
:= True;
164 Validity_Check_Copies
:= False;
167 Validity_Check_Default
:= False;
170 Validity_Check_In_Params
:= False;
173 Validity_Check_Floating_Point
:= False;
176 Validity_Check_In_Out_Params
:= False;
179 Validity_Check_Operands
:= False;
182 Validity_Check_Returns
:= False;
185 Validity_Check_Subscripts
:= False;
188 Validity_Check_Tests
:= False;
191 Validity_Check_Copies
:= True;
192 Validity_Check_Default
:= True;
193 Validity_Check_Floating_Point
:= True;
194 Validity_Check_In_Out_Params
:= True;
195 Validity_Check_In_Params
:= True;
196 Validity_Check_Operands
:= True;
197 Validity_Check_Returns
:= True;
198 Validity_Check_Subscripts
:= True;
199 Validity_Check_Tests
:= True;
202 Validity_Check_Copies
:= False;
203 Validity_Check_Default
:= False;
204 Validity_Check_Floating_Point
:= False;
205 Validity_Check_In_Out_Params
:= False;
206 Validity_Check_In_Params
:= False;
207 Validity_Check_Operands
:= False;
208 Validity_Check_Returns
:= False;
209 Validity_Check_Subscripts
:= False;
210 Validity_Check_Tests
:= False;
211 Validity_Checks_On
:= False;
224 Err_Col
:= Options
'Last + 1;
225 end Set_Validity_Check_Options
;