From cea7bb8db9080e510951f7e6f469197f265bdc87 Mon Sep 17 00:00:00 2001 From: Folkert Kevelam Date: Fri, 11 Jul 2025 22:04:47 +0200 Subject: [PATCH] Initial commit --- src/argument_parser.ads | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/argument_parser.ads 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;