KI       BSD-StyleSafe Option help#It describes the Command parameterslan option can have multiple symbols, mainly a short option and a long option for example [ "-h", "--help" ]&an option can have an argument, or notoption description A commandThe Command Options parameterThis is the Command Line Context This object embeds: * the commands to trigger * a default command in case no command is given * a program description * a Helper Command: the command to trigger in case of a wrong command (example: Usage) get the default command (if any)Program's description'get the program's help function (usage)Create a CLIContext$Insert a command into the CLIContextrIf the command with the same name is already present, the old one will be removed and the new one will take place%Insert a default Command into the CLIThis command won't be added into the command to trigger If there was already a Default Command this command will replace the old one &Lookup a command by its command's name!Pretty print a command"-This function is a helper to print an OptHelp#Print all the Command's Option help# Print the all the commands helps$+Pretty printer: list the available commands%Print the defaul usage (if any)&Cwill list all the description's commands present in the CLI Context'print a command's description ()*+,-.'the command helper (example: the Usage)a description about the programthe command to insertthe CLIContext to updateThe Default Command the command's namethe commands to look up into! indentationthe command to pretty print" indentation program name command list#$ indentation program namethe command to print%prefix program name&prefix the context'/0()*+, !"$()*+,-. !"#$%&'/0 BSD-StyleSafe jThis is the CLI Class All command you want to add into the CLIContext must be an instance of this class. This is the name of the command. It is also the command line option the action will be triggered every time this string is found to be the first argument of the program UA description of this command Will be use in the default Usage and the Help function iThe list of Options It is only for printing, the parser won't use this to parse the command parameters. $The action to perfom every time the name; is found to be the first string of the program parameters1>Make the transformation of a CLI instance to a Command object NThis could be use in order to know all the different available commands etc...The Command Parameters1 1  1 BSD-StyleSafe  This is the default help commandfIt is triggered by the command "help" and also provides an option to print a specific command options2Default usage Command Interface/Add a new Command into a collection of commands#Initialize a collection of commands"Initialize a collection of command:This function is to expect an argument at the Head of the Optionsd if the command is not found at the head, the program fails and the description message is printed`This function is to expect an optional argument of the command is not found at the Head of the OptionsX the function will be executed with Nothing, otherwise it will be executed with (Just String)Look for a parameterized option The given list of flags are the potential list of flags that can be use to find the position of the optionsThis parameter can be found anywhere in the Options list and the argument of the function will be the string following one of this Flags The parameter and its value are removed from the options before being use into the function.idem as withParameterStr but it is an optional parameter~This function is to expect Flag in the Options it will look into all the options and will remove the string from the OptionsThis function makes the use of the other function easier and also provide a verification that there is no "unused function". If there is unexpected options remaining, the program will stop and an error message will be printed_The default Main It will analyze the program's parameters and will trigger the right command.234A new Command Interface#The original Collection of commands,The command to execute if no option is givenCLI DescriptionCLI Description!a description of what is expectedthe reference flagthe reference flagthe flag to lookupthe function to execute the optionsA collection of commands56  234567      !"#$%&'()*+,- ./01223456cli_7kJNISSCdkVKoVQvZqVLYyApplication.CLIApplication.CLI.TypesApplication.CLI.ClassOptHelp optSymbols optArgumentoptDescriptionOptions CLIContext getHeader printHelpCLInamedescoptionsactionHelpwithinitializeWithDefault initializewithStrwithOptionalStrwithParameterStrwithOptionalParameterStrwithFlagexecute defaultMainCommand getDefault getHelper createContext insertCommand insertDefault lookupCommandprintCommandHelp printOptHelp listCommands printUsage defaultUsagelistDescriptionscommandDescriptioncmdNamecmdDesc cmdOptions cmdAction getCommands $fShowCommand $fEqCommand cliToCommandUsageusage $fCLIHelp $fCLIUsage