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

VariantFieldsDescription
Flag

Boolean flag (e.g. --verbose).

Opt

Key-value option (e.g. --output file).

Positional

Positional argument.

ArgDef object
ArgDef

Definition of a single command-line argument.

Fields

NameTypeDescription
_long_nameString

Long name (e.g. "verbose" for --verbose).

_short_nameString

Short name (e.g. "v" for -v).

_descriptionString

Application description shown in help text.

_kindArgKind

Kind of argument (flag, option, or positional).

_default_valueString

Default value for options.

_requiredbool

Whether this argument is required.

ParsedArgs object
ParsedArgs

Result of parsing command-line arguments.

Fields

NameTypeDescription
_set_flagsArrayList(String)
_option_namesArrayList(String)
_option_valuesArrayList(String)
_positionalsArrayList(String)
_positional_namesArrayList(String)
impl(ParsedArgs, ...)
new : (ParsedArgs) fn() -> ParsedArgs

Returns: ParsedArgs

get_flag : (ParsedArgs) fn(self : ParsedArgs, name : String) -> bool

Parameters

NameTypeNotes
selfParsedArgs
nameString

Returns: bool

_lookup : (ParsedArgs) fn(self : ParsedArgs, names : ArrayList(String), values : ArrayList(String), name : String) -> Option(String)

Parameters

NameTypeNotes
selfParsedArgs
namesArrayList(String)
valuesArrayList(String)
nameString

Returns: Option(String)

get_option : (ParsedArgs) fn(self : ParsedArgs, name : String) -> Option(String)

Parameters

NameTypeNotes
selfParsedArgs
nameString

Returns: Option(String)

get_positional : (ParsedArgs) fn(self : ParsedArgs, name : String) -> Option(String)

Parameters

NameTypeNotes
selfParsedArgs
nameString

Returns: Option(String)

get_positional_at : (ParsedArgs) fn(self : ParsedArgs, index : usize) -> Option(String)

Parameters

NameTypeNotes
selfParsedArgs
indexusize

Returns: Option(String)

ArgParser object
ArgParser

Command-line argument parser.

Fields

NameTypeDescription
_nameString

Application name shown in help text.

_descriptionString

Application description shown in help text.

_argsArrayList(ArgDef)

Registered argument definitions.

impl(ArgParser, ...)
new : (ArgParser) fn(name : String, description : String) -> ArgParser

Parameters

NameTypeNotes
nameString
descriptionString

Returns: ArgParser

add_flag : (ArgParser) fn(self : ArgParser, long_name : String, short_name : String, description : String) -> unit

Parameters

NameTypeNotes
selfArgParser
long_nameString
short_nameString
descriptionString

Returns: unit

add_option : (ArgParser) fn(self : ArgParser, long_name : String, short_name : String, description : String, default_value : String) -> unit

Parameters

NameTypeNotes
selfArgParser
long_nameString
short_nameString
descriptionString
default_valueString

Returns: unit

add_positional : (ArgParser) fn(self : ArgParser, name : String, description : String) -> unit

Parameters

NameTypeNotes
selfArgParser
nameString
descriptionString

Returns: unit

_find_arg_index : (ArgParser) fn(self : ArgParser, name : String) -> Option(usize)

Parameters

NameTypeNotes
selfArgParser
nameString

Returns: Option(usize)

help_text : (ArgParser) fn(self : ArgParser) -> String

Parameters

NameTypeNotes
selfArgParser

Returns: String

impl(ArgParser, ...)
parse : (ArgParser) fn(self : ArgParser, args : ArrayList(String)) -> Result(ParsedArgs, String)

Parameters

NameTypeNotes
selfArgParser
argsArrayList(String)

Returns: Result(ParsedArgs, String)