parse method
Parses args
and returns the result, converting an ArgParserException
to a UsageException
.
This is notionally a protected method. It may be overridden or called from subclasses, but it shouldn't be called externally.
Implementation
ArgResults parse(Iterable<String> args) {
try {
return argParser.parse(args);
} on ArgParserException catch (error) {
if (error.commands.isEmpty) usageException(error.message);
var command = commands[error.commands.first]!;
for (var commandName in error.commands.skip(1)) {
command = command.subcommands[commandName]!;
}
command.usageException(error.message);
}
}