Scarab  v2.2.3
Project 8 C++ Utility Library
nonoption_parser.hh
Go to the documentation of this file.
1 #ifndef SCARAB_NONOPTION_PARSER_HH_
2 #define SCARAB_NONOPTION_PARSER_HH_
3 
4 #include "param.hh"
5 
6 #include "member_variables.hh"
7 
8 #include <string>
9 
10 namespace scarab
11 {
12 
14  {
15  public:
16  nonoption_parser( std::vector< std::string > an_args );
17  virtual ~nonoption_parser();
18 
19  //void parse( int an_argc, char** an_argv );
20 
21  mv_referrable_const( param_array, ord_args );
22  mv_referrable_const( param_node, kw_args );
23 
24  private:
25  void parse( const std::string& an_arg );
26 
27  param_ptr_t parse_kw_arg( const std::string& an_addr, const std::string& a_value );
28 
29  void add_next( param& a_parent, const std::string& an_addr_in_parent, const std::string& a_next_addr, const std::string& a_value );
30 
31  param_ptr_t new_param_from_addr( const std::string& an_addr );
32 
33  param_ptr_t parse_value( const std::string& a_value );
34 
35  public:
36  static const char f_value_separator = '=';
37  static const char f_node_separator = '.';
38  static const char f_option_starter = '-';
39 
40  };
41 
42 } /* namespace scarab */
43 
44 #endif /* SCARAB_NONOPTION_PARSER_HH_ */
auto parse(const std::basic_string< CharT, Traits, Alloc > &format, Parsable &tp) -> decltype(from_stream(std::declval< std::basic_istream< CharT, Traits > & >(), format.c_str(), tp), parse_manip< Parsable, CharT, Traits, Alloc >
Definition: date.h:7239
#define mv_referrable_const(x_type, x_variable)
#define SCARAB_API
Definition: scarab_api.hh:24
std::unique_ptr< param > param_ptr_t
Definition: param_base.hh:23