Use the methods in this class to dynamically build {@link ArgsFormat}
instances. When you are done configuring the builder, call
{@link getFormat()} to build an immutable {@link ArgsFormat}.
For convenience, you can call {@link ArgsFormat::build()} to create a new
builder and use its fluent API to configure and build a format:
php
$format = ArgsFormat::build()
->addCommandName(new CommandName('server'))
->addCommandOption(new CommandOption('add', 'a'))
->addArgument(new Argument('host'))
->addOption(new Option('port', 'p'))
->getFormat();
You can optionally pass a base format to inherit from. The arguments of the
base format are prepended to the arguments of the built format. The options
of the base format are added to the built options:
php
$baseFormat = ArgsFormat::build()
->addOption(new Option('verbose', 'v'))
->getFormat();
$format = ArgsFormat::build($baseFormat)
...
->getFormat();
Read {@link ArgsFormat} for a more detailed description of args formats.