Module cli/arg_parser
Command-line argument parsing.
Supports flags (--verbose), options (--output file), short aliases (-v),
and positional arguments. Automatically generates help text.
Example
{ ArgParser } :: import "std/cli/arg_parser";
parser := ArgParser.new(`myapp`, `A sample CLI tool`);
parser.flag(`verbose`, `v`, `Enable verbose output`);
parser.option(`output`, `o`, `Output file`, `out.txt`);
args := parser.parse();
Types
Kind of command-line argument.
Variants
| Variant | Fields | Description |
|---|---|---|
Flag | Boolean flag (e.g. | |
Opt | Key-value option (e.g. | |
Positional | Positional argument. |
Definition of a single command-line argument.
Fields
| Name | Type | Description |
|---|---|---|
_long_name | String | Long name (e.g. |
_short_name | String | Short name (e.g. |
_description | String | Application description shown in help text. |
_kind | ArgKind | Kind of argument (flag, option, or positional). |
_default_value | String | Default value for options. |
_required | bool | Whether this argument is required. |
Result of parsing command-line arguments.
Fields
| Name | Type | Description |
|---|---|---|
_set_flags | ArrayList(String) | |
_option_names | ArrayList(String) | |
_option_values | ArrayList(String) | |
_positionals | ArrayList(String) | |
_positional_names | ArrayList(String) | |
_subcommand | Option(String) | Name of the chosen subcommand ( |
_subcommand_args | Option(object(_set_flags: ArrayList(String), _option_names: ArrayList(String), _option_values: ArrayList(String), _positionals: ArrayList(String), _positional_names: ArrayList(String), _subcommand: Option(String))) | Parsed arguments for the chosen subcommand ( |
impl(ParsedArgs, ...)
new : (ParsedArgs) fn() -> ParsedArgsReturns: ParsedArgs
get_subcommand : (ParsedArgs) fn(self : ParsedArgs) -> Option(String)get_subcommand_args : (ParsedArgs) fn(self : ParsedArgs) -> Option(object(_set_flags: ArrayList(String), _option_names: ArrayList(String), _option_values: ArrayList(String), _positionals: ArrayList(String), _positional_names: ArrayList(String), _subcommand: Option(String)))Returns the parsed arguments of the chosen subcommand, if any.
Parameters
| Name | Type | Notes |
|---|---|---|
self | ParsedArgs |
Returns: Option(object(_set_flags: ArrayList(String), _option_names: ArrayList(String), _option_values: ArrayList(String), _positionals: ArrayList(String), _positional_names: ArrayList(String), _subcommand: Option(String)))
get_flag : (ParsedArgs) fn(self : ParsedArgs, name : String) -> bool_lookup : (ParsedArgs) fn(self : ParsedArgs, names : ArrayList(String), values : ArrayList(String), name : String) -> Option(String)get_option : (ParsedArgs) fn(self : ParsedArgs, name : String) -> Option(String)get_positional : (ParsedArgs) fn(self : ParsedArgs, name : String) -> Option(String)get_positional_at : (ParsedArgs) fn(self : ParsedArgs, index : usize) -> Option(String)Command-line argument parser.
Fields
| Name | Type | Description |
|---|---|---|
_name | String | Application name shown in help text. |
_description | String | Application description shown in help text. |
_args | ArrayList(ArgDef) | Registered argument definitions. |
_subcommand_names | ArrayList(String) | Subcommand names (parallel to |
_subcommand_descriptions | ArrayList(String) | Subcommand descriptions (parallel to |
_subcommand_parsers | ArrayList(object(_name: String, _description: String, _args: ArrayList(ArgDef), _subcommand_names: ArrayList(String), _subcommand_descriptions: ArrayList(String))) | Subcommand parsers (parallel to |
impl(ArgParser, ...)
new : (ArgParser) fn(name : String, description : String) -> ArgParseradd_subcommand : (ArgParser) fn(self : ArgParser, name : String, description : String) -> ArgParser_find_subcommand : (ArgParser) fn(self : ArgParser, name : String) -> Option(usize)add_flag : (ArgParser) fn(self : ArgParser, long_name : String, short_name : String, description : String) -> unitadd_option : (ArgParser) fn(self : ArgParser, long_name : String, short_name : String, description : String, default_value : String) -> unitadd_positional : (ArgParser) fn(self : ArgParser, name : String, description : String) -> unit_find_arg_index : (ArgParser) fn(self : ArgParser, name : String) -> Option(usize)