+++ /dev/null
--- sarge.ads - Specification file for the Sarge command line argument parser project.
-
--- Revision 0
-
--- Notes:
--- -
-
--- 2019/04/10, Maya Posch
-
-
-with Ada.Strings.Unbounded;
-use Ada.Strings.Unbounded;
-with Ada.Containers.Vectors;
-with Ada.Containers.Indefinite_Ordered_Maps;
-use Ada.Containers;
-
-
-package Sarge is
- type Argument is record
- arg_short: aliased Unbounded_String;
- arg_long: aliased Unbounded_String;
- description: aliased Unbounded_String;
- hasValue: aliased boolean := False;
- value: aliased Unbounded_String;
- parsed: aliased boolean := False;
- end record;
-
- type Argument_Access is access all Argument;
-
- procedure setArgument(arg_short: in Unbounded_String; arg_long: in Unbounded_String; desc: in Unbounded_String; hasVal: in boolean);
- procedure setDescription(desc: in Unbounded_String);
- procedure setUsage(usage: in Unbounded_String);
- function parseArguments return boolean;
- function getFlag(arg_flag: in Unbounded_String; arg_value: out Unbounded_String) return boolean;
- function exists(arg_flag: in Unbounded_String) return boolean;
- function getTextArgument(index: in Integer; value: out Unbounded_String) return boolean;
- procedure printHelp;
- function flagCount return integer;
- function executableName return Unbounded_String;
-
-private
- function "+"(S : in String) return Unbounded_String renames Ada.Strings.Unbounded.To_Unbounded_String;
- package arg_vector is new Vectors(Natural, Argument);
- args: arg_vector.vector;
- --package argNames_map is new Indefinite_Ordered_Maps(Unbounded_String, Argument_Access);
- package argNames_map is new Indefinite_Ordered_Maps(Unbounded_String, Natural);
- argNames: argNames_map.map;
- parsed: boolean;
- flagCounter: Integer := 0;
- execName: Unbounded_String;
- description: Unbounded_String;
- usageStr: Unbounded_String;
- package tArgVector is new Vectors(Natural, Unbounded_String);
- textArguments: tArgVector.vector;
-end Sarge;