123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- // Copyright Vladimir Prus 2004.
- // Distributed under the Boost Software License, Version 1.0.
- // (See accompanying file LICENSE_1_0.txt
- // or copy at http://www.boost.org/LICENSE_1_0.txt)
- #ifndef BOOST_CMDLINE_HPP_VP_2004_03_13
- #define BOOST_CMDLINE_HPP_VP_2004_03_13
- namespace boost { namespace program_options { namespace command_line_style {
- /** Various possible styles of options.
-
- There are "long" options, which start with "--" and "short",
- which start with either "-" or "/". Both kinds can be allowed or
- disallowed, see allow_long and allow_short. The allowed character
- for short options is also configurable.
- Option's value can be specified in the same token as name
- ("--foo=bar"), or in the next token.
- It's possible to introduce long options by the same character as
- short options, see allow_long_disguise.
- Finally, guessing (specifying only prefix of option) and case
- insensitive processing are supported.
- */
- enum style_t {
- /// Allow "--long_name" style
- allow_long = 1,
- /// Allow "-<single character" style
- allow_short = allow_long << 1,
- /// Allow "-" in short options
- allow_dash_for_short = allow_short << 1,
- /// Allow "/" in short options
- allow_slash_for_short = allow_dash_for_short << 1,
- /** Allow option parameter in the same token
- for long option, like in
- @verbatim
- --foo=10
- @endverbatim
- */
- long_allow_adjacent = allow_slash_for_short << 1,
- /** Allow option parameter in the next token for
- long options. */
- long_allow_next = long_allow_adjacent << 1,
- /** Allow option parameter in the same token for
- short options. */
- short_allow_adjacent = long_allow_next << 1,
- /** Allow option parameter in the next token for
- short options. */
- short_allow_next = short_allow_adjacent << 1,
- /** Allow to merge several short options together,
- so that "-s -k" become "-sk". All of the options
- but last should accept no parameter. For example, if
- "-s" accept a parameter, then "k" will be taken as
- parameter, not another short option.
- Dos-style short options cannot be sticky.
- */
- allow_sticky = short_allow_next << 1,
- /** Allow abbreviated spellings for long options,
- if they unambiguously identify long option.
- No long option name should be prefix of other
- long option name if guessing is in effect.
- */
- allow_guessing = allow_sticky << 1,
- /** Ignore the difference in case for long options.
- */
- long_case_insensitive = allow_guessing << 1,
- /** Ignore the difference in case for short options.
- */
- short_case_insensitive = long_case_insensitive << 1,
- /** Ignore the difference in case for all options.
- */
- case_insensitive = (long_case_insensitive | short_case_insensitive),
- /** Allow long options with single option starting character,
- e.g <tt>-foo=10</tt>
- */
- allow_long_disguise = short_case_insensitive << 1,
- /** The more-or-less traditional unix style. */
- unix_style = (allow_short | short_allow_adjacent | short_allow_next
- | allow_long | long_allow_adjacent | long_allow_next
- | allow_sticky | allow_guessing
- | allow_dash_for_short),
- /** The default style. */
- default_style = unix_style
- };
- }}}
- #endif
|