diff --git a/src/argument_parser.ads b/src/argument_parser.ads new file mode 100644 index 0000000..0dd250b --- /dev/null +++ b/src/argument_parser.ads @@ -0,0 +1,36 @@ +package Argument_Parser is + + type Option is interface; + + function Parse (I : string) return Option is abstract; + + type Argument_Parser is tagged private; + + procedure Add_Positional ( + Parser : in out Argument_Parser; + Input_Type : Option'Class; + Key : string; + Collect_Further_Inputs : Boolean := False); + + procedure Add_Boolean_Option ( + Parser : in out Argument_Parser; + Short_String : string; + Long_String : string) + + procedure Add_Count_Option ( + Parser : in out Argument_Parser; + Short_String : string; + Long_String : string; + Start_Count : Count := 0); + + procedure Add_Option ( + Parser : in out Argument_Parser; + Input_Type : Option'Class; + Short_String : string; + Long_String : string); + +private + + type Argument_Parser is tagged null record; + +end Argument_Parser;