︙ | | | ︙ | |
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
----------------------------
type Argument_Requirement is
(No_Argument, Required_Argument, Optional_Argument);
type Configuration is tagged private;
procedure Add_Option
(Config : in out Configuration;
Long_Name : String;
Short_Name : Character;
Has_Arg : Argument_Requirement;
Id : Option_Id);
-- Add an option with both a short and a long name to the database.
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
----------------------------
type Argument_Requirement is
(No_Argument, Required_Argument, Optional_Argument);
type Configuration is tagged private;
-- Simple parameters --
function Posixly_Correct (Config : Configuration) return Boolean;
procedure Posixly_Correct
(Config : in out Configuration;
To : Boolean := True);
function Long_Only (Config : Configuration) return Boolean;
procedure Use_Long_Only
(Config : in out Configuration;
Value : Boolean := True);
-- Option list management --
procedure Add_Option
(Config : in out Configuration;
Long_Name : String;
Short_Name : Character;
Has_Arg : Argument_Requirement;
Id : Option_Id);
-- Add an option with both a short and a long name to the database.
|
︙ | | | ︙ | |
161
162
163
164
165
166
167
168
169
170
171
172
173
174
|
-- Remove from the database an option identified by its long name.
procedure Del_Option
(Config : in out Configuration;
Short_Name : Character);
-- Remove from the database an option identified by its short name.
function Format_Long_Names
(Config : Configuration;
Id : Option_Id;
Separator : String := ", ";
Name_Prefix : String := "--")
return String;
-- Return a human-readable list of long names for the given option.
|
>
>
>
|
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
|
-- Remove from the database an option identified by its long name.
procedure Del_Option
(Config : in out Configuration;
Short_Name : Character);
-- Remove from the database an option identified by its short name.
-- Formatting subprograms --
function Format_Long_Names
(Config : Configuration;
Id : Option_Id;
Separator : String := ", ";
Name_Prefix : String := "--")
return String;
-- Return a human-readable list of long names for the given option.
|
︙ | | | ︙ | |
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
|
--------------------------------------
-- Command line argument processing --
--------------------------------------
procedure Process
(Config : Configuration;
Handler : in out Handlers.Callback'Class;
Posixly_Correct : Boolean := True;
Long_Only : Boolean := False;
Argument_Count : not null access function return Natural
:= Ada.Command_Line.Argument_Count'Access;
Argument : not null access function (Number : Positive) return String
:= Ada.Command_Line.Argument'Access);
-- Process system command line argument list, using the provided option
-- definitions and handler callbacks.
|
<
<
|
258
259
260
261
262
263
264
265
266
267
268
269
270
271
|
--------------------------------------
-- Command line argument processing --
--------------------------------------
procedure Process
(Config : Configuration;
Handler : in out Handlers.Callback'Class;
Argument_Count : not null access function return Natural
:= Ada.Command_Line.Argument_Count'Access;
Argument : not null access function (Number : Positive) return String
:= Ada.Command_Line.Argument'Access);
-- Process system command line argument list, using the provided option
-- definitions and handler callbacks.
|
︙ | | | ︙ | |
264
265
266
267
268
269
270
271
272
273
|
package Short_Option_Maps is
new Ada.Containers.Indefinite_Ordered_Maps (Character, Option);
type Configuration is tagged record
By_Long_Name : Long_Option_Maps.Map;
By_Short_Name : Short_Option_Maps.Map;
end record;
end Natools.Getopt_Long;
|
>
>
|
283
284
285
286
287
288
289
290
291
292
293
294
|
package Short_Option_Maps is
new Ada.Containers.Indefinite_Ordered_Maps (Character, Option);
type Configuration is tagged record
By_Long_Name : Long_Option_Maps.Map;
By_Short_Name : Short_Option_Maps.Map;
Posixly_Correct : Boolean := True;
Long_Only : Boolean := False;
end record;
end Natools.Getopt_Long;
|