Module cli/arg_parser
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
ArgKind
enum
ArgKind
Kind of command-line argument.
Variants
| Variant | Fields | Description |
|---|---|---|
Flag | Boolean flag (e.g. | |
Opt | Key-value option (e.g. | |
Positional | Positional argument. |
ArgDef
object
ArgDef
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. |
ParsedArgs
object
ParsedArgs
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) |
impl(ParsedArgs, ...)
new : (ParsedArgs) fn() -> ParsedArgsReturns: ParsedArgs
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)
ArgParser
object
ArgParser
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. |
impl(ArgParser, ...)
new : (ArgParser) fn(name : String, description : String) -> ArgParseradd_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)