macro_rules! ARGS {
(@ SomeOrNone $yes : expr) => { ... };
(@ SomeOrNone) => { ... };
(@ Parse) => { ... };
(@ Parse $file : literal, $($prefix : literal) ?,
$(($($config_panic : expr), *)) ?) => { ... };
(@ SetConfig $config : expr, $file : literal,,) => { ... };
(@ SetConfig $config : expr, $file : literal,, ($($config_panic : expr), *)) => { ... };
(@ SetConfig $config : expr, $file : literal, $prefix : literal,) => { ... };
(@ SetConfig $config : expr, $file : literal, $prefix : literal,
($($config_panic : expr), *)) => { ... };
(@ SetConfig @ If $conf : expr, $opts : expr, $ident : ident,,) => { ... };
(@ SetConfig @ If $conf : expr, $opts : expr, $ident : ident, [Config],
$($def_val : expr) ?) => { ... };
(@ Args
{
#[$meta : meta]
$($(#[$f_meta : meta]) * $([$tt : tt]) ? $name : ident : $ty : ty
$(= $default : expr) ?,) *
}) => { ... };
($(#[$main_meta : meta]) * $(version = $version : literal) ?
$(author = $author : literal) ? $(about = $about : literal) ?
$(Config
{
file = $config_file : literal $(prefix = $config_prefix : literal) ?
$(panic = ($($config_panic : expr), *)) ?
}) ? Args
{
$($(#[$args_meta : meta]) * $([$tt : tt]) ? $args_name : ident : $args_ty
: ty $(= $args_default : expr) ?) +
} $($(#[$subcommands_meta : meta]) * commands = $subcommands : ty) ?) => { ... };
}