91 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			91 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | // 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 | ||
|  | 
 |