g-comlin.ads, [...] (Command_Line_Configuration, [...]): New types
authorEmmanuel Briot <briot@adacore.com>
Wed, 26 Sep 2007 10:44:07 +0000 (12:44 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 26 Sep 2007 10:44:07 +0000 (12:44 +0200)
commitda2ac8c26f63fbe1d5d2c4ff23b99e81967873ff
treef89a3bd22b0a3109cfe01d8c2a977f4780d8bb4a
parentdd05ba2754e8bf033ce3258f0bc64fd7b2220ed9
g-comlin.ads, [...] (Command_Line_Configuration, [...]): New types

2007-09-26  Emmanuel Briot  <briot@adacore.com>

* g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
Command_Line): New types
(Define_Alias, Define_Prefix, Free): New subprograms. These provide
support for defining how switches can be grouped on a command line (as
is the case for -gnatw... for GNAT), and how simple switches can be
used as aliases for more complex switches (-gnatwa is same as
-gnatwbcef...)
(Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
(Start, Current_*): New subprograms
Added support for parsing an array of strings in addition to the real
command line.
(Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
 be moved from the body to the private part of the spec.
(*): All subprograms now have an extra parameter with default value to
specify which parser should be used. For backward compatibility, it
defaults to parsing the command line of the application. They were also
modified to properly handle cases where each of the argument does not
start at index 1 (which is always true for Ada.Command_Line, but not
when processing any Argument_List).
(Free): New subprogram
(Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
Argument): New subprograms
(Switch_Parameter_Type): New enum, which clarifies the code. The extra
special characters like ':', '=',... are now handled in a single place,
which makes the code more extensible eventually.
(Getopt, Full_Switch): When the switch was returned as part of the
special character '*', make sure it is prepended by the switch character
('-' in general), so that the application knows whether "foo" or "-foo"
was specified on the command line.

From-SVN: r128791
gcc/ada/g-comlin.adb
gcc/ada/g-comlin.ads