]>
Commit | Line | Data |
---|---|---|
1 | ------------------------------------------------------------------------------ | |
2 | -- -- | |
3 | -- GNAT COMPILER COMPONENTS -- | |
4 | -- -- | |
5 | -- U S A G E -- | |
6 | -- -- | |
7 | -- B o d y -- | |
8 | -- -- | |
9 | -- Copyright (C) 1992-2011, Free Software Foundation, Inc. -- | |
10 | -- -- | |
11 | -- GNAT is free software; you can redistribute it and/or modify it under -- | |
12 | -- terms of the GNU General Public License as published by the Free Soft- -- | |
13 | -- ware Foundation; either version 3, or (at your option) any later ver- -- | |
14 | -- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- | |
15 | -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- | |
16 | -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- | |
17 | -- for more details. You should have received a copy of the GNU General -- | |
18 | -- Public License distributed with GNAT; see file COPYING3. If not, go to -- | |
19 | -- http://www.gnu.org/licenses for a complete copy of the license. -- | |
20 | -- -- | |
21 | -- GNAT was originally developed by the GNAT team at New York University. -- | |
22 | -- Extensive contributions were provided by Ada Core Technologies Inc. -- | |
23 | -- -- | |
24 | ------------------------------------------------------------------------------ | |
25 | ||
26 | -- Warning: the output of this usage for warnings is duplicated in the GNAT | |
27 | -- reference manual. Be sure to update that if you change the warning list. | |
28 | ||
29 | with Targparm; use Targparm; | |
30 | with Namet; use Namet; | |
31 | with Opt; use Opt; | |
32 | with Osint; use Osint; | |
33 | with Output; use Output; | |
34 | ||
35 | with System.WCh_Con; use System.WCh_Con; | |
36 | ||
37 | procedure Usage is | |
38 | ||
39 | procedure Write_Switch_Char (Sw : String; Prefix : String := "gnat"); | |
40 | -- Output two spaces followed by the switch character minus followed | |
41 | -- Prefix, followed by the string given as the argument, and then enough | |
42 | -- blanks to tab to column 13, i.e. assuming Sw is not longer than 5 | |
43 | -- characters, the maximum allowed, Write_Switch_Char will always output | |
44 | -- exactly 12 characters. | |
45 | ||
46 | ----------------------- | |
47 | -- Write_Switch_Char -- | |
48 | ----------------------- | |
49 | ||
50 | procedure Write_Switch_Char (Sw : String; Prefix : String := "gnat") is | |
51 | begin | |
52 | Write_Str (" -"); | |
53 | Write_Str (Prefix); | |
54 | Write_Str (Sw); | |
55 | ||
56 | for J in 1 .. 12 - 3 - Prefix'Length - Sw'Length loop | |
57 | Write_Char (' '); | |
58 | end loop; | |
59 | end Write_Switch_Char; | |
60 | ||
61 | -- Start of processing for Usage | |
62 | ||
63 | begin | |
64 | Find_Program_Name; | |
65 | ||
66 | -- For gnatmake, we are appending this information to the end of | |
67 | -- the normal gnatmake output, so generate appropriate header | |
68 | ||
69 | if Name_Len >= 8 | |
70 | and then (Name_Buffer (Name_Len - 7 .. Name_Len) = "gnatmake" | |
71 | or else | |
72 | Name_Buffer (Name_Len - 7 .. Name_Len) = "GNATMAKE") | |
73 | then | |
74 | Write_Eol; | |
75 | Write_Line ("Compiler switches (passed to the compiler by gnatmake):"); | |
76 | ||
77 | else | |
78 | -- Usage line | |
79 | ||
80 | Write_Str ("Usage: "); | |
81 | Write_Program_Name; | |
82 | Write_Char (' '); | |
83 | Write_Str ("switches sfile"); | |
84 | Write_Eol; | |
85 | Write_Eol; | |
86 | ||
87 | -- Line for sfile | |
88 | ||
89 | Write_Line (" sfile Source file name"); | |
90 | end if; | |
91 | ||
92 | Write_Eol; | |
93 | ||
94 | -- Common GCC switches not available for JVM, .NET, and AAMP targets | |
95 | ||
96 | if VM_Target = No_VM and then not AAMP_On_Target then | |
97 | Write_Switch_Char ("fstack-check ", ""); | |
98 | Write_Line ("Generate stack checking code"); | |
99 | ||
100 | Write_Switch_Char ("fno-inline ", ""); | |
101 | Write_Line ("Inhibit all inlining (makes executable smaller)"); | |
102 | ||
103 | Write_Switch_Char ("fpreserve-control-flow ", ""); | |
104 | Write_Line ("Preserve control flow for coverage analysis"); | |
105 | end if; | |
106 | ||
107 | -- Common switches available to both GCC and JGNAT | |
108 | ||
109 | Write_Switch_Char ("g ", ""); | |
110 | Write_Line ("Generate debugging information"); | |
111 | ||
112 | Write_Switch_Char ("Idir ", ""); | |
113 | Write_Line ("Specify source files search path"); | |
114 | ||
115 | Write_Switch_Char ("I- ", ""); | |
116 | Write_Line ("Do not look for sources in current directory"); | |
117 | ||
118 | Write_Switch_Char ("O[0123] ", ""); | |
119 | Write_Line ("Control the optimization level"); | |
120 | ||
121 | Write_Eol; | |
122 | ||
123 | -- Individual lines for switches. Write_Switch_Char outputs fourteen | |
124 | -- characters, so the remaining message is allowed to be a maximum | |
125 | -- of 65 characters to be comfortable on an 80 character device. | |
126 | -- If the Write_Str fits on one line, it is short enough! | |
127 | ||
128 | -- Line for -gnata switch | |
129 | ||
130 | Write_Switch_Char ("a"); | |
131 | Write_Line ("Assertions enabled. Pragma Assert/Debug to be activated"); | |
132 | ||
133 | -- Line for -gnatA switch | |
134 | ||
135 | Write_Switch_Char ("A"); | |
136 | Write_Line ("Avoid processing gnat.adc, if present file will be ignored"); | |
137 | ||
138 | -- Line for -gnatb switch | |
139 | ||
140 | Write_Switch_Char ("b"); | |
141 | Write_Line ("Generate brief messages to stderr even if verbose mode set"); | |
142 | ||
143 | -- Line for -gnatB switch | |
144 | ||
145 | Write_Switch_Char ("B"); | |
146 | Write_Line ("Assume no bad (invalid) values except in 'Valid attribute"); | |
147 | ||
148 | -- Line for -gnatc switch | |
149 | ||
150 | Write_Switch_Char ("c"); | |
151 | Write_Line ("Check syntax and semantics only (no code generation)"); | |
152 | ||
153 | -- Line for -gnatC switch | |
154 | ||
155 | Write_Switch_Char ("C"); | |
156 | Write_Line ("Generate CodePeer information (no code generation)"); | |
157 | ||
158 | -- Line for -gnatd switch | |
159 | ||
160 | Write_Switch_Char ("d?"); | |
161 | Write_Line ("Compiler debug option ? ([.]a-z,A-Z,0-9), see debug.adb"); | |
162 | ||
163 | -- Line for -gnatD switch | |
164 | ||
165 | Write_Switch_Char ("D"); | |
166 | Write_Line ("Debug expanded generated code (max line length = 72)"); | |
167 | Write_Switch_Char ("Dnn"); | |
168 | Write_Line ("Debug expanded generated code (max line length = nn)"); | |
169 | ||
170 | -- Line for -gnatec switch | |
171 | ||
172 | Write_Switch_Char ("ec=?"); | |
173 | Write_Line ("Specify configuration pragmas file, e.g. -gnatec=/x/f.adc"); | |
174 | ||
175 | -- Line for -gnateD switch | |
176 | ||
177 | Write_Switch_Char ("eD?"); | |
178 | Write_Line ("Define or redefine preprocessing symbol, e.g. -gnateDsym=val"); | |
179 | ||
180 | -- Line for -gnateE switch | |
181 | ||
182 | Write_Switch_Char ("eE"); | |
183 | Write_Line ("Generate extra information in exception messages"); | |
184 | ||
185 | -- Line for -gnatef switch | |
186 | ||
187 | Write_Switch_Char ("ef"); | |
188 | Write_Line ("Full source path in brief error messages"); | |
189 | ||
190 | -- Line for -gnateG switch | |
191 | ||
192 | Write_Switch_Char ("eG"); | |
193 | Write_Line ("Generate preprocessed source"); | |
194 | ||
195 | -- Line for -gnateI switch | |
196 | ||
197 | Write_Switch_Char ("eInn"); | |
198 | Write_Line ("Index in multi-unit source, e.g. -gnateI2"); | |
199 | ||
200 | -- Line for -gnatem switch | |
201 | ||
202 | Write_Switch_Char ("em=?"); | |
203 | Write_Line ("Specify mapping file, e.g. -gnatem=mapping"); | |
204 | ||
205 | -- Line for -gnatep switch | |
206 | ||
207 | Write_Switch_Char ("ep=?"); | |
208 | Write_Line ("Specify preprocessing data file, e.g. -gnatep=prep.data"); | |
209 | ||
210 | -- Line for -gnateP switch | |
211 | ||
212 | Write_Switch_Char ("eP"); | |
213 | Write_Line ("Pure/Prelaborate errors generate warnings rather than errors"); | |
214 | ||
215 | -- Line for -gnateS switch | |
216 | ||
217 | Write_Switch_Char ("eS"); | |
218 | Write_Line ("Generate SCO (Source Coverage Obligation) information"); | |
219 | ||
220 | -- Line for -gnatE switch | |
221 | ||
222 | Write_Switch_Char ("E"); | |
223 | Write_Line ("Dynamic elaboration checking mode enabled"); | |
224 | ||
225 | -- Line for -gnatf switch | |
226 | ||
227 | Write_Switch_Char ("f"); | |
228 | Write_Line ("Full errors. Verbose details, all undefined references"); | |
229 | ||
230 | -- Line for -gnatF switch | |
231 | ||
232 | Write_Switch_Char ("F"); | |
233 | Write_Line ("Force all import/export external names to all uppercase"); | |
234 | ||
235 | -- Line for -gnatg switch | |
236 | ||
237 | Write_Switch_Char ("g"); | |
238 | Write_Line ("GNAT implementation mode (used for compiling GNAT units)"); | |
239 | ||
240 | -- Lines for -gnatG switch | |
241 | ||
242 | Write_Switch_Char ("G"); | |
243 | Write_Line ("Output generated expanded code (max line length = 72)"); | |
244 | Write_Switch_Char ("Gnn"); | |
245 | Write_Line ("Output generated expanded code (max line length = nn)"); | |
246 | ||
247 | -- Line for -gnath switch | |
248 | ||
249 | Write_Switch_Char ("h"); | |
250 | Write_Line ("Output this usage (help) information"); | |
251 | ||
252 | -- Line for -gnati switch | |
253 | ||
254 | Write_Switch_Char ("i?"); | |
255 | Write_Line ("Identifier char set (?=1/2/3/4/5/8/9/p/f/n/w)"); | |
256 | ||
257 | -- Line for -gnatI switch | |
258 | ||
259 | Write_Switch_Char ("I"); | |
260 | Write_Line ("Ignore all representation clauses"); | |
261 | ||
262 | -- Line for -gnatj switch | |
263 | ||
264 | Write_Switch_Char ("jnn"); | |
265 | Write_Line ("Format error and warning messages to fit nn character lines"); | |
266 | ||
267 | -- Line for -gnatk switch | |
268 | ||
269 | Write_Switch_Char ("k"); | |
270 | Write_Line ("Limit file names to nn characters (k = krunch)"); | |
271 | ||
272 | -- Lines for -gnatl switch | |
273 | ||
274 | Write_Switch_Char ("l"); | |
275 | Write_Line ("Output full source listing with embedded error messages"); | |
276 | Write_Switch_Char ("l=f"); | |
277 | Write_Line ("Output full source listing to specified file"); | |
278 | ||
279 | -- Line for -gnatL switch | |
280 | ||
281 | Write_Switch_Char ("L"); | |
282 | Write_Line ("List corresponding source text in -gnatG or -gnatD output"); | |
283 | ||
284 | -- Line for -gnatm switch | |
285 | ||
286 | Write_Switch_Char ("mnn"); | |
287 | Write_Line ("Limit number of detected errors/warnings to nn (1-999999)"); | |
288 | ||
289 | -- Line for -gnatn switch | |
290 | ||
291 | Write_Switch_Char ("n"); | |
292 | Write_Line ("Enable pragma Inline (both within and across units)"); | |
293 | ||
294 | -- Line for -gnatN switch | |
295 | ||
296 | Write_Switch_Char ("N"); | |
297 | Write_Line ("Full (frontend) inlining of subprograms"); | |
298 | ||
299 | -- Line for -gnato switch | |
300 | ||
301 | Write_Switch_Char ("o"); | |
302 | Write_Line ("Enable overflow checking (off by default)"); | |
303 | ||
304 | -- Line for -gnatO switch | |
305 | ||
306 | Write_Switch_Char ("O nm "); | |
307 | Write_Line ("Set name of output ali file (internal switch)"); | |
308 | ||
309 | -- Line for -gnatp switch | |
310 | ||
311 | Write_Switch_Char ("p"); | |
312 | Write_Line ("Suppress all checks"); | |
313 | ||
314 | -- Line for -gnatP switch | |
315 | ||
316 | Write_Switch_Char ("P"); | |
317 | Write_Line ("Generate periodic calls to System.Polling.Poll"); | |
318 | ||
319 | -- Line for -gnatq switch | |
320 | ||
321 | Write_Switch_Char ("q"); | |
322 | Write_Line ("Don't quit, try semantics, even if parse errors"); | |
323 | ||
324 | -- Line for -gnatQ switch | |
325 | ||
326 | Write_Switch_Char ("Q"); | |
327 | Write_Line ("Don't quit, write ali/tree file even if compile errors"); | |
328 | ||
329 | -- Line for -gnatr switch | |
330 | ||
331 | Write_Switch_Char ("r"); | |
332 | Write_Line ("Treat pragma Restrictions as Restriction_Warnings"); | |
333 | ||
334 | -- Lines for -gnatR switch | |
335 | ||
336 | Write_Switch_Char ("R?"); | |
337 | Write_Line ("List rep info (?=0/1/2/3 for none/types/all/variable)"); | |
338 | Write_Switch_Char ("R?s"); | |
339 | Write_Line ("List rep info to file.rep instead of standard output"); | |
340 | ||
341 | -- Lines for -gnats switch | |
342 | ||
343 | Write_Switch_Char ("s"); | |
344 | Write_Line ("Syntax check only"); | |
345 | ||
346 | -- Lines for -gnatS switch | |
347 | ||
348 | Write_Switch_Char ("S"); | |
349 | Write_Line ("Print listing of package Standard"); | |
350 | ||
351 | -- Lines for -gnatt switch | |
352 | ||
353 | Write_Switch_Char ("t"); | |
354 | Write_Line ("Tree output file to be generated"); | |
355 | ||
356 | -- Line for -gnatT switch | |
357 | ||
358 | Write_Switch_Char ("Tnn"); | |
359 | Write_Line ("All compiler tables start at nn times usual starting size"); | |
360 | ||
361 | -- Line for -gnatu switch | |
362 | ||
363 | Write_Switch_Char ("u"); | |
364 | Write_Line ("List units for this compilation"); | |
365 | ||
366 | -- Line for -gnatU switch | |
367 | ||
368 | Write_Switch_Char ("U"); | |
369 | Write_Line ("Enable unique tag for error messages"); | |
370 | ||
371 | -- Line for -gnatv switch | |
372 | ||
373 | Write_Switch_Char ("v"); | |
374 | Write_Line ("Verbose mode. Full error output with source lines to stdout"); | |
375 | ||
376 | -- Line for -gnatV switch | |
377 | ||
378 | Write_Switch_Char ("Vxx"); | |
379 | Write_Line | |
380 | ("Enable selected validity checking mode, xx = list of parameters:"); | |
381 | Write_Line (" a turn on all validity checking options"); | |
382 | Write_Line (" c turn on checking for copies"); | |
383 | Write_Line (" C turn off checking for copies"); | |
384 | Write_Line (" d turn on default (RM) checking"); | |
385 | Write_Line (" D turn off default (RM) checking"); | |
386 | Write_Line (" e turn on checking for elementary components"); | |
387 | Write_Line (" E turn off checking for elementary components"); | |
388 | Write_Line (" f turn on checking for floating-point"); | |
389 | Write_Line (" F turn off checking for floating-point"); | |
390 | Write_Line (" i turn on checking for in params"); | |
391 | Write_Line (" I turn off checking for in params"); | |
392 | Write_Line (" m turn on checking for in out params"); | |
393 | Write_Line (" M turn off checking for in out params"); | |
394 | Write_Line (" o turn on checking for operators/attributes"); | |
395 | Write_Line (" O turn off checking for operators/attributes"); | |
396 | Write_Line (" p turn on checking for parameters"); | |
397 | Write_Line (" P turn off checking for parameters"); | |
398 | Write_Line (" r turn on checking for returns"); | |
399 | Write_Line (" R turn off checking for returns"); | |
400 | Write_Line (" s turn on checking for subscripts"); | |
401 | Write_Line (" S turn off checking for subscripts"); | |
402 | Write_Line (" t turn on checking for tests"); | |
403 | Write_Line (" T turn off checking for tests"); | |
404 | Write_Line (" n turn off all validity checks (including RM)"); | |
405 | ||
406 | -- Lines for -gnatw switch | |
407 | ||
408 | Write_Switch_Char ("wxx"); | |
409 | Write_Line ("Enable selected warning modes, xx = list of parameters:"); | |
410 | Write_Line (" a turn on all info/warnings marked below with +"); | |
411 | Write_Line (" A turn off all optional info/warnings"); | |
412 | Write_Line (" .a*+ turn on warnings for failing assertion"); | |
413 | Write_Line (" .A turn off warnings for failing assertion"); | |
414 | Write_Line (" b+ turn on warnings for bad fixed value " & | |
415 | "(not multiple of small)"); | |
416 | Write_Line (" B* turn off warnings for bad fixed value " & | |
417 | "(not multiple of small)"); | |
418 | Write_Line (" .b*+ turn on warnings for biased representation"); | |
419 | Write_Line (" .B turn off warnings for biased representation"); | |
420 | Write_Line (" c+ turn on warnings for constant conditional"); | |
421 | Write_Line (" C* turn off warnings for constant conditional"); | |
422 | Write_Line (" .c+ turn on warnings for unrepped components"); | |
423 | Write_Line (" .C* turn off warnings for unrepped components"); | |
424 | Write_Line (" d turn on warnings for implicit dereference"); | |
425 | Write_Line (" D* turn off warnings for implicit dereference"); | |
426 | Write_Line (" e treat all warnings (but not info) as errors"); | |
427 | Write_Line (" .e turn on every optional info/warning " & | |
428 | "(no exceptions)"); | |
429 | Write_Line (" f+ turn on warnings for unreferenced formal"); | |
430 | Write_Line (" F* turn off warnings for unreferenced formal"); | |
431 | Write_Line (" g*+ turn on warnings for unrecognized pragma"); | |
432 | Write_Line (" G turn off warnings for unrecognized pragma"); | |
433 | Write_Line (" h turn on warnings for hiding declarations"); | |
434 | Write_Line (" H* turn off warnings for hiding declarations"); | |
435 | Write_Line (" .h turn on warnings for holes in records"); | |
436 | Write_Line (" .H* turn off warnings for holes in records"); | |
437 | Write_Line (" i*+ turn on warnings for implementation unit"); | |
438 | Write_Line (" I turn off warnings for implementation unit"); | |
439 | Write_Line (" .i turn on warnings for overlapping actuals"); | |
440 | Write_Line (" .I* turn off warnings for overlapping actuals"); | |
441 | Write_Line (" j+ turn on warnings for obsolescent " & | |
442 | "(annex J) feature"); | |
443 | Write_Line (" J* turn off warnings for obsolescent " & | |
444 | "(annex J) feature"); | |
445 | Write_Line (" k+ turn on warnings on constant variable"); | |
446 | Write_Line (" K* turn off warnings on constant variable"); | |
447 | Write_Line (" l turn on warnings for missing " & | |
448 | "elaboration pragma"); | |
449 | Write_Line (" L* turn off warnings for missing " & | |
450 | "elaboration pragma"); | |
451 | Write_Line (" .l* turn on info messages for inherited aspects"); | |
452 | Write_Line (" .L turn off info messages for inherited aspects"); | |
453 | Write_Line (" m+ turn on warnings for variable assigned " & | |
454 | "but not read"); | |
455 | Write_Line (" M* turn off warnings for variable assigned " & | |
456 | "but not read"); | |
457 | Write_Line (" .m* turn on warnings for suspicious modulus value"); | |
458 | Write_Line (" .M turn off warnings for suspicious modulus value"); | |
459 | Write_Line (" n* normal warning mode (cancels -gnatws/-gnatwe)"); | |
460 | Write_Line (" o* turn on warnings for address clause overlay"); | |
461 | Write_Line (" O turn off warnings for address clause overlay"); | |
462 | Write_Line (" .o turn on warnings for out parameters assigned " & | |
463 | "but not read"); | |
464 | Write_Line (" .O* turn off warnings for out parameters assigned " & | |
465 | "but not read"); | |
466 | Write_Line (" p+ turn on warnings for ineffective pragma " & | |
467 | "Inline in frontend"); | |
468 | Write_Line (" P* turn off warnings for ineffective pragma " & | |
469 | "Inline in frontend"); | |
470 | Write_Line (" .p+ turn on warnings for suspicious parameter " & | |
471 | "order"); | |
472 | Write_Line (" .P* turn off warnings for suspicious parameter " & | |
473 | "order"); | |
474 | Write_Line (" q*+ turn on warnings for questionable " & | |
475 | "missing parenthesis"); | |
476 | Write_Line (" Q turn off warnings for questionable " & | |
477 | "missing parenthesis"); | |
478 | Write_Line (" r+ turn on warnings for redundant construct"); | |
479 | Write_Line (" R* turn off warnings for redundant construct"); | |
480 | Write_Line (" .r+ turn on warnings for object renaming function"); | |
481 | Write_Line (" .R* turn off warnings for object renaming function"); | |
482 | Write_Line (" s suppress all info/warnings"); | |
483 | Write_Line (" .s turn on warnings for overridden size clause"); | |
484 | Write_Line (" .S* turn off warnings for overridden size clause"); | |
485 | Write_Line (" t turn on warnings for tracking deleted code"); | |
486 | Write_Line (" T* turn off warnings for tracking deleted code"); | |
487 | Write_Line (" u+ turn on warnings for unused entity"); | |
488 | Write_Line (" U* turn off warnings for unused entity"); | |
489 | Write_Line (" .u turn on warnings for unordered enumeration"); | |
490 | Write_Line (" .U* turn off warnings for unordered enumeration"); | |
491 | Write_Line (" v*+ turn on warnings for unassigned variable"); | |
492 | Write_Line (" V turn off warnings for unassigned variable"); | |
493 | Write_Line (" .v*+ turn on info messages for reverse bit order"); | |
494 | Write_Line (" .V turn off info messages for reverse bit order"); | |
495 | Write_Line (" w*+ turn on warnings for wrong low bound assumption"); | |
496 | Write_Line (" W turn off warnings for wrong low bound " & | |
497 | "assumption"); | |
498 | Write_Line (" .w turn on warnings on pragma Warnings Off"); | |
499 | Write_Line (" .W* turn off warnings on pragma Warnings Off"); | |
500 | Write_Line (" x*+ turn on warnings for export/import"); | |
501 | Write_Line (" X turn off warnings for export/import"); | |
502 | Write_Line (" .x+ turn on warnings for non-local exception"); | |
503 | Write_Line (" .X* turn off warnings for non-local exception"); | |
504 | Write_Line (" y*+ turn on warnings for Ada 2005 incompatibility"); | |
505 | Write_Line (" Y turn off warnings for Ada 2005 incompatibility"); | |
506 | Write_Line (" z*+ turn on warnings for suspicious " & | |
507 | "unchecked conversion"); | |
508 | Write_Line (" Z turn off warnings for suspicious " & | |
509 | "unchecked conversion"); | |
510 | Write_Line (" * indicates default in above list"); | |
511 | Write_Line (" + indicates warning flag included in -gnatwa"); | |
512 | ||
513 | -- Line for -gnatW switch | |
514 | ||
515 | Write_Switch_Char ("W"); | |
516 | Write_Str ("Wide character encoding method ("); | |
517 | ||
518 | for J in WC_Encoding_Method loop | |
519 | Write_Char (WC_Encoding_Letters (J)); | |
520 | ||
521 | if J = WC_Encoding_Method'Last then | |
522 | Write_Char (')'); | |
523 | else | |
524 | Write_Char ('/'); | |
525 | end if; | |
526 | end loop; | |
527 | ||
528 | Write_Eol; | |
529 | ||
530 | -- Line for -gnatx switch | |
531 | ||
532 | Write_Switch_Char ("x"); | |
533 | Write_Line ("Suppress output of cross-reference information"); | |
534 | ||
535 | -- Line for -gnatX switch | |
536 | ||
537 | Write_Switch_Char ("X"); | |
538 | Write_Line ("Language extensions permitted"); | |
539 | ||
540 | -- Lines for -gnaty switch | |
541 | ||
542 | Write_Switch_Char ("y"); | |
543 | Write_Line ("Enable default style checks (same as -gnaty3abcefhiklmnprst)"); | |
544 | Write_Switch_Char ("yxx"); | |
545 | Write_Line ("Enable selected style checks xx = list of parameters:"); | |
546 | Write_Line (" 1-9 check indentation"); | |
547 | Write_Line (" a check attribute casing"); | |
548 | Write_Line (" A check array attribute indexes"); | |
549 | Write_Line (" b check no blanks at end of lines"); | |
550 | Write_Line (" B check no use of AND/OR for boolean expressions"); | |
551 | Write_Line (" c check comment format (two spaces)"); | |
552 | Write_Line (" C check comment format (one space)"); | |
553 | Write_Line (" d check no DOS line terminators"); | |
554 | Write_Line (" e check end/exit labels present"); | |
555 | Write_Line (" f check no form feeds/vertical tabs in source"); | |
556 | Write_Line (" g check standard GNAT style rules"); | |
557 | Write_Line (" h check no horizontal tabs in source"); | |
558 | Write_Line (" i check if-then layout"); | |
559 | Write_Line (" I check mode in"); | |
560 | Write_Line (" k check casing rules for keywords"); | |
561 | Write_Line (" l check reference manual layout"); | |
562 | Write_Line (" Lnn check max nest level < nn "); | |
563 | Write_Line (" m check line length <= 79 characters"); | |
564 | Write_Line (" n check casing of package Standard identifiers"); | |
565 | Write_Line (" Mnn check line length <= nn characters"); | |
566 | Write_Line (" N turn off all checks"); | |
567 | Write_Line (" o check subprogram bodies in alphabetical order"); | |
568 | Write_Line (" O check overriding indicators"); | |
569 | Write_Line (" p check pragma casing"); | |
570 | Write_Line (" r check casing for identifier references"); | |
571 | Write_Line (" s check separate subprogram specs present"); | |
572 | Write_Line (" S check separate lines after THEN or ELSE"); | |
573 | Write_Line (" t check token separation rules"); | |
574 | Write_Line (" u check no unnecessary blank lines"); | |
575 | Write_Line (" x check extra parentheses around conditionals"); | |
576 | Write_Line (" y turn on default style checks"); | |
577 | Write_Line (" - subtract (turn off) subsequent checks"); | |
578 | Write_Line (" + add (turn on) subsequent checks"); | |
579 | ||
580 | -- Lines for -gnatyN switch | |
581 | ||
582 | Write_Switch_Char ("yN"); | |
583 | Write_Line ("Cancel all previously set style checks"); | |
584 | ||
585 | -- Lines for -gnatzc switch | |
586 | ||
587 | Write_Switch_Char ("zc"); | |
588 | Write_Line ("Distribution stub generation for caller stubs"); | |
589 | ||
590 | -- Lines for -gnatzr switch | |
591 | ||
592 | Write_Switch_Char ("zr"); | |
593 | Write_Line ("Distribution stub generation for receiver stubs"); | |
594 | ||
595 | -- Line for -gnat83 switch | |
596 | ||
597 | Write_Switch_Char ("83"); | |
598 | Write_Line ("Ada 83 mode"); | |
599 | ||
600 | -- Line for -gnat95 switch | |
601 | ||
602 | Write_Switch_Char ("95"); | |
603 | ||
604 | if Ada_Version_Default = Ada_95 then | |
605 | Write_Line ("Ada 95 mode (default)"); | |
606 | else | |
607 | Write_Line ("Ada 95 mode"); | |
608 | end if; | |
609 | ||
610 | -- Line for -gnat2005 switch | |
611 | ||
612 | Write_Switch_Char ("2005"); | |
613 | ||
614 | if Ada_Version_Default = Ada_2005 then | |
615 | Write_Line ("Ada 2005 mode (default)"); | |
616 | else | |
617 | Write_Line ("Ada 2005 mode"); | |
618 | end if; | |
619 | ||
620 | -- Line for -gnat2012 switch | |
621 | ||
622 | Write_Switch_Char ("2012"); | |
623 | ||
624 | if Ada_Version_Default = Ada_2012 then | |
625 | Write_Line ("Ada 2012 mode (default)"); | |
626 | else | |
627 | Write_Line ("Ada 2012 mode"); | |
628 | end if; | |
629 | ||
630 | -- Line for -gnat-p switch | |
631 | ||
632 | Write_Switch_Char ("-p"); | |
633 | Write_Line ("Cancel effect of previous -gnatp switch"); | |
634 | ||
635 | end Usage; |