summaryrefslogtreecommitdiff
path: root/odb/mssql/details/pregenerated/odb/mssql/details/options.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/mssql/details/pregenerated/odb/mssql/details/options.cxx')
-rw-r--r--odb/mssql/details/pregenerated/odb/mssql/details/options.cxx1125
1 files changed, 0 insertions, 1125 deletions
diff --git a/odb/mssql/details/pregenerated/odb/mssql/details/options.cxx b/odb/mssql/details/pregenerated/odb/mssql/details/options.cxx
deleted file mode 100644
index 905beb8..0000000
--- a/odb/mssql/details/pregenerated/odb/mssql/details/options.cxx
+++ /dev/null
@@ -1,1125 +0,0 @@
-// -*- C++ -*-
-//
-// This file was generated by CLI, a command line interface
-// compiler for C++.
-//
-
-// Begin prologue.
-//
-//
-// End prologue.
-
-#include <odb/mssql/details/options.hxx>
-
-#include <map>
-#include <set>
-#include <string>
-#include <vector>
-#include <utility>
-#include <ostream>
-#include <sstream>
-#include <cstring>
-#include <fstream>
-
-namespace odb
-{
- namespace mssql
- {
- namespace details
- {
- namespace cli
- {
- // unknown_option
- //
- unknown_option::
- ~unknown_option () throw ()
- {
- }
-
- void unknown_option::
- print (::std::ostream& os) const
- {
- os << "unknown option '" << option ().c_str () << "'";
- }
-
- const char* unknown_option::
- what () const throw ()
- {
- return "unknown option";
- }
-
- // unknown_argument
- //
- unknown_argument::
- ~unknown_argument () throw ()
- {
- }
-
- void unknown_argument::
- print (::std::ostream& os) const
- {
- os << "unknown argument '" << argument ().c_str () << "'";
- }
-
- const char* unknown_argument::
- what () const throw ()
- {
- return "unknown argument";
- }
-
- // missing_value
- //
- missing_value::
- ~missing_value () throw ()
- {
- }
-
- void missing_value::
- print (::std::ostream& os) const
- {
- os << "missing value for option '" << option ().c_str () << "'";
- }
-
- const char* missing_value::
- what () const throw ()
- {
- return "missing option value";
- }
-
- // invalid_value
- //
- invalid_value::
- ~invalid_value () throw ()
- {
- }
-
- void invalid_value::
- print (::std::ostream& os) const
- {
- os << "invalid value '" << value ().c_str () << "' for option '"
- << option ().c_str () << "'";
-
- if (!message ().empty ())
- os << ": " << message ().c_str ();
- }
-
- const char* invalid_value::
- what () const throw ()
- {
- return "invalid option value";
- }
-
- // eos_reached
- //
- void eos_reached::
- print (::std::ostream& os) const
- {
- os << what ();
- }
-
- const char* eos_reached::
- what () const throw ()
- {
- return "end of argument stream reached";
- }
-
- // file_io_failure
- //
- file_io_failure::
- ~file_io_failure () throw ()
- {
- }
-
- void file_io_failure::
- print (::std::ostream& os) const
- {
- os << "unable to open file '" << file ().c_str () << "' or read failure";
- }
-
- const char* file_io_failure::
- what () const throw ()
- {
- return "unable to open file or read failure";
- }
-
- // unmatched_quote
- //
- unmatched_quote::
- ~unmatched_quote () throw ()
- {
- }
-
- void unmatched_quote::
- print (::std::ostream& os) const
- {
- os << "unmatched quote in argument '" << argument ().c_str () << "'";
- }
-
- const char* unmatched_quote::
- what () const throw ()
- {
- return "unmatched quote";
- }
-
- // scanner
- //
- scanner::
- ~scanner ()
- {
- }
-
- // argv_scanner
- //
- bool argv_scanner::
- more ()
- {
- return i_ < argc_;
- }
-
- const char* argv_scanner::
- peek ()
- {
- if (i_ < argc_)
- return argv_[i_];
- else
- throw eos_reached ();
- }
-
- const char* argv_scanner::
- next ()
- {
- if (i_ < argc_)
- {
- const char* r (argv_[i_]);
-
- if (erase_)
- {
- for (int i (i_ + 1); i < argc_; ++i)
- argv_[i - 1] = argv_[i];
-
- --argc_;
- argv_[argc_] = 0;
- }
- else
- ++i_;
-
- ++start_position_;
- return r;
- }
- else
- throw eos_reached ();
- }
-
- void argv_scanner::
- skip ()
- {
- if (i_ < argc_)
- {
- ++i_;
- ++start_position_;
- }
- else
- throw eos_reached ();
- }
-
- std::size_t argv_scanner::
- position ()
- {
- return start_position_;
- }
-
- // argv_file_scanner
- //
- int argv_file_scanner::zero_argc_ = 0;
- std::string argv_file_scanner::empty_string_;
-
- bool argv_file_scanner::
- more ()
- {
- if (!args_.empty ())
- return true;
-
- while (base::more ())
- {
- // See if the next argument is the file option.
- //
- const char* a (base::peek ());
- const option_info* oi = 0;
- const char* ov = 0;
-
- if (!skip_)
- {
- if ((oi = find (a)) != 0)
- {
- base::next ();
-
- if (!base::more ())
- throw missing_value (a);
-
- ov = base::next ();
- }
- else if (std::strncmp (a, "-", 1) == 0)
- {
- if ((ov = std::strchr (a, '=')) != 0)
- {
- std::string o (a, 0, ov - a);
- if ((oi = find (o.c_str ())) != 0)
- {
- base::next ();
- ++ov;
- }
- }
- }
- }
-
- if (oi != 0)
- {
- if (oi->search_func != 0)
- {
- std::string f (oi->search_func (ov, oi->arg));
-
- if (!f.empty ())
- load (f);
- }
- else
- load (ov);
-
- if (!args_.empty ())
- return true;
- }
- else
- {
- if (!skip_)
- skip_ = (std::strcmp (a, "--") == 0);
-
- return true;
- }
- }
-
- return false;
- }
-
- const char* argv_file_scanner::
- peek ()
- {
- if (!more ())
- throw eos_reached ();
-
- return args_.empty () ? base::peek () : args_.front ().value.c_str ();
- }
-
- const std::string& argv_file_scanner::
- peek_file ()
- {
- if (!more ())
- throw eos_reached ();
-
- return args_.empty () ? empty_string_ : *args_.front ().file;
- }
-
- std::size_t argv_file_scanner::
- peek_line ()
- {
- if (!more ())
- throw eos_reached ();
-
- return args_.empty () ? 0 : args_.front ().line;
- }
-
- const char* argv_file_scanner::
- next ()
- {
- if (!more ())
- throw eos_reached ();
-
- if (args_.empty ())
- return base::next ();
- else
- {
- hold_[i_ == 0 ? ++i_ : --i_].swap (args_.front ().value);
- args_.pop_front ();
- ++start_position_;
- return hold_[i_].c_str ();
- }
- }
-
- void argv_file_scanner::
- skip ()
- {
- if (!more ())
- throw eos_reached ();
-
- if (args_.empty ())
- return base::skip ();
- else
- {
- args_.pop_front ();
- ++start_position_;
- }
- }
-
- const argv_file_scanner::option_info* argv_file_scanner::
- find (const char* a) const
- {
- for (std::size_t i (0); i < options_count_; ++i)
- if (std::strcmp (a, options_[i].option) == 0)
- return &options_[i];
-
- return 0;
- }
-
- std::size_t argv_file_scanner::
- position ()
- {
- return start_position_;
- }
-
- void argv_file_scanner::
- load (const std::string& file)
- {
- using namespace std;
-
- ifstream is (file.c_str ());
-
- if (!is.is_open ())
- throw file_io_failure (file);
-
- files_.push_back (file);
-
- arg a;
- a.file = &*files_.rbegin ();
-
- for (a.line = 1; !is.eof (); ++a.line)
- {
- string line;
- getline (is, line);
-
- if (is.fail () && !is.eof ())
- throw file_io_failure (file);
-
- string::size_type n (line.size ());
-
- // Trim the line from leading and trailing whitespaces.
- //
- if (n != 0)
- {
- const char* f (line.c_str ());
- const char* l (f + n);
-
- const char* of (f);
- while (f < l && (*f == ' ' || *f == '\t' || *f == '\r'))
- ++f;
-
- --l;
-
- const char* ol (l);
- while (l > f && (*l == ' ' || *l == '\t' || *l == '\r'))
- --l;
-
- if (f != of || l != ol)
- line = f <= l ? string (f, l - f + 1) : string ();
- }
-
- // Ignore empty lines, those that start with #.
- //
- if (line.empty () || line[0] == '#')
- continue;
-
- string::size_type p (string::npos);
- if (line.compare (0, 1, "-") == 0)
- {
- p = line.find (' ');
-
- string::size_type q (line.find ('='));
- if (q != string::npos && q < p)
- p = q;
- }
-
- string s1;
- if (p != string::npos)
- {
- s1.assign (line, 0, p);
-
- // Skip leading whitespaces in the argument.
- //
- if (line[p] == '=')
- ++p;
- else
- {
- n = line.size ();
- for (++p; p < n; ++p)
- {
- char c (line[p]);
- if (c != ' ' && c != '\t' && c != '\r')
- break;
- }
- }
- }
- else if (!skip_)
- skip_ = (line == "--");
-
- string s2 (line, p != string::npos ? p : 0);
-
- // If the string (which is an option value or argument) is
- // wrapped in quotes, remove them.
- //
- n = s2.size ();
- char cf (s2[0]), cl (s2[n - 1]);
-
- if (cf == '"' || cf == '\'' || cl == '"' || cl == '\'')
- {
- if (n == 1 || cf != cl)
- throw unmatched_quote (s2);
-
- s2 = string (s2, 1, n - 2);
- }
-
- if (!s1.empty ())
- {
- // See if this is another file option.
- //
- const option_info* oi;
- if (!skip_ && (oi = find (s1.c_str ())))
- {
- if (s2.empty ())
- throw missing_value (oi->option);
-
- if (oi->search_func != 0)
- {
- string f (oi->search_func (s2.c_str (), oi->arg));
- if (!f.empty ())
- load (f);
- }
- else
- {
- // If the path of the file being parsed is not simple and the
- // path of the file that needs to be loaded is relative, then
- // complete the latter using the former as a base.
- //
-#ifndef _WIN32
- string::size_type p (file.find_last_of ('/'));
- bool c (p != string::npos && s2[0] != '/');
-#else
- string::size_type p (file.find_last_of ("/\\"));
- bool c (p != string::npos && s2[1] != ':');
-#endif
- if (c)
- s2.insert (0, file, 0, p + 1);
-
- load (s2);
- }
-
- continue;
- }
-
- a.value = s1;
- args_.push_back (a);
- }
-
- a.value = s2;
- args_.push_back (a);
- }
- }
-
- template <typename X>
- struct parser
- {
- static void
- parse (X& x, bool& xs, scanner& s)
- {
- using namespace std;
-
- const char* o (s.next ());
- if (s.more ())
- {
- string v (s.next ());
- istringstream is (v);
- if (!(is >> x && is.peek () == istringstream::traits_type::eof ()))
- throw invalid_value (o, v);
- }
- else
- throw missing_value (o);
-
- xs = true;
- }
- };
-
- template <>
- struct parser<bool>
- {
- static void
- parse (bool& x, bool& xs, scanner& s)
- {
- const char* o (s.next ());
-
- if (s.more ())
- {
- const char* v (s.next ());
-
- if (std::strcmp (v, "1") == 0 ||
- std::strcmp (v, "true") == 0 ||
- std::strcmp (v, "TRUE") == 0 ||
- std::strcmp (v, "True") == 0)
- x = true;
- else if (std::strcmp (v, "0") == 0 ||
- std::strcmp (v, "false") == 0 ||
- std::strcmp (v, "FALSE") == 0 ||
- std::strcmp (v, "False") == 0)
- x = false;
- else
- throw invalid_value (o, v);
- }
- else
- throw missing_value (o);
-
- xs = true;
- }
- };
-
- template <>
- struct parser<std::string>
- {
- static void
- parse (std::string& x, bool& xs, scanner& s)
- {
- const char* o (s.next ());
-
- if (s.more ())
- x = s.next ();
- else
- throw missing_value (o);
-
- xs = true;
- }
- };
-
- template <typename X>
- struct parser<std::pair<X, std::size_t> >
- {
- static void
- parse (std::pair<X, std::size_t>& x, bool& xs, scanner& s)
- {
- x.second = s.position ();
- parser<X>::parse (x.first, xs, s);
- }
- };
-
- template <typename X>
- struct parser<std::vector<X> >
- {
- static void
- parse (std::vector<X>& c, bool& xs, scanner& s)
- {
- X x;
- bool dummy;
- parser<X>::parse (x, dummy, s);
- c.push_back (x);
- xs = true;
- }
- };
-
- template <typename X, typename C>
- struct parser<std::set<X, C> >
- {
- static void
- parse (std::set<X, C>& c, bool& xs, scanner& s)
- {
- X x;
- bool dummy;
- parser<X>::parse (x, dummy, s);
- c.insert (x);
- xs = true;
- }
- };
-
- template <typename K, typename V, typename C>
- struct parser<std::map<K, V, C> >
- {
- static void
- parse (std::map<K, V, C>& m, bool& xs, scanner& s)
- {
- const char* o (s.next ());
-
- if (s.more ())
- {
- std::size_t pos (s.position ());
- std::string ov (s.next ());
- std::string::size_type p = ov.find ('=');
-
- K k = K ();
- V v = V ();
- std::string kstr (ov, 0, p);
- std::string vstr (ov, (p != std::string::npos ? p + 1 : ov.size ()));
-
- int ac (2);
- char* av[] =
- {
- const_cast<char*> (o),
- 0
- };
-
- bool dummy;
- if (!kstr.empty ())
- {
- av[1] = const_cast<char*> (kstr.c_str ());
- argv_scanner s (0, ac, av, false, pos);
- parser<K>::parse (k, dummy, s);
- }
-
- if (!vstr.empty ())
- {
- av[1] = const_cast<char*> (vstr.c_str ());
- argv_scanner s (0, ac, av, false, pos);
- parser<V>::parse (v, dummy, s);
- }
-
- m[k] = v;
- }
- else
- throw missing_value (o);
-
- xs = true;
- }
- };
-
- template <typename K, typename V, typename C>
- struct parser<std::multimap<K, V, C> >
- {
- static void
- parse (std::multimap<K, V, C>& m, bool& xs, scanner& s)
- {
- const char* o (s.next ());
-
- if (s.more ())
- {
- std::size_t pos (s.position ());
- std::string ov (s.next ());
- std::string::size_type p = ov.find ('=');
-
- K k = K ();
- V v = V ();
- std::string kstr (ov, 0, p);
- std::string vstr (ov, (p != std::string::npos ? p + 1 : ov.size ()));
-
- int ac (2);
- char* av[] =
- {
- const_cast<char*> (o),
- 0
- };
-
- bool dummy;
- if (!kstr.empty ())
- {
- av[1] = const_cast<char*> (kstr.c_str ());
- argv_scanner s (0, ac, av, false, pos);
- parser<K>::parse (k, dummy, s);
- }
-
- if (!vstr.empty ())
- {
- av[1] = const_cast<char*> (vstr.c_str ());
- argv_scanner s (0, ac, av, false, pos);
- parser<V>::parse (v, dummy, s);
- }
-
- m.insert (typename std::multimap<K, V, C>::value_type (k, v));
- }
- else
- throw missing_value (o);
-
- xs = true;
- }
- };
-
- template <typename X, typename T, T X::*M>
- void
- thunk (X& x, scanner& s)
- {
- parser<T>::parse (x.*M, s);
- }
-
- template <typename X, bool X::*M>
- void
- thunk (X& x, scanner& s)
- {
- s.next ();
- x.*M = true;
- }
-
- template <typename X, typename T, T X::*M, bool X::*S>
- void
- thunk (X& x, scanner& s)
- {
- parser<T>::parse (x.*M, x.*S, s);
- }
- }
- }
- }
-}
-
-#include <map>
-
-namespace odb
-{
- namespace mssql
- {
- namespace details
- {
- // options
- //
-
- options::
- options ()
- : user_ (),
- user_specified_ (false),
- password_ (),
- password_specified_ (false),
- database_ (),
- database_specified_ (false),
- server_ (),
- server_specified_ (false),
- driver_ (),
- driver_specified_ (false),
- options_file_ (),
- options_file_specified_ (false)
- {
- }
-
- options::
- options (int& argc,
- char** argv,
- bool erase,
- ::odb::mssql::details::cli::unknown_mode opt,
- ::odb::mssql::details::cli::unknown_mode arg)
- : user_ (),
- user_specified_ (false),
- password_ (),
- password_specified_ (false),
- database_ (),
- database_specified_ (false),
- server_ (),
- server_specified_ (false),
- driver_ (),
- driver_specified_ (false),
- options_file_ (),
- options_file_specified_ (false)
- {
- ::odb::mssql::details::cli::argv_scanner s (argc, argv, erase);
- _parse (s, opt, arg);
- }
-
- options::
- options (int start,
- int& argc,
- char** argv,
- bool erase,
- ::odb::mssql::details::cli::unknown_mode opt,
- ::odb::mssql::details::cli::unknown_mode arg)
- : user_ (),
- user_specified_ (false),
- password_ (),
- password_specified_ (false),
- database_ (),
- database_specified_ (false),
- server_ (),
- server_specified_ (false),
- driver_ (),
- driver_specified_ (false),
- options_file_ (),
- options_file_specified_ (false)
- {
- ::odb::mssql::details::cli::argv_scanner s (start, argc, argv, erase);
- _parse (s, opt, arg);
- }
-
- options::
- options (int& argc,
- char** argv,
- int& end,
- bool erase,
- ::odb::mssql::details::cli::unknown_mode opt,
- ::odb::mssql::details::cli::unknown_mode arg)
- : user_ (),
- user_specified_ (false),
- password_ (),
- password_specified_ (false),
- database_ (),
- database_specified_ (false),
- server_ (),
- server_specified_ (false),
- driver_ (),
- driver_specified_ (false),
- options_file_ (),
- options_file_specified_ (false)
- {
- ::odb::mssql::details::cli::argv_scanner s (argc, argv, erase);
- _parse (s, opt, arg);
- end = s.end ();
- }
-
- options::
- options (int start,
- int& argc,
- char** argv,
- int& end,
- bool erase,
- ::odb::mssql::details::cli::unknown_mode opt,
- ::odb::mssql::details::cli::unknown_mode arg)
- : user_ (),
- user_specified_ (false),
- password_ (),
- password_specified_ (false),
- database_ (),
- database_specified_ (false),
- server_ (),
- server_specified_ (false),
- driver_ (),
- driver_specified_ (false),
- options_file_ (),
- options_file_specified_ (false)
- {
- ::odb::mssql::details::cli::argv_scanner s (start, argc, argv, erase);
- _parse (s, opt, arg);
- end = s.end ();
- }
-
- options::
- options (::odb::mssql::details::cli::scanner& s,
- ::odb::mssql::details::cli::unknown_mode opt,
- ::odb::mssql::details::cli::unknown_mode arg)
- : user_ (),
- user_specified_ (false),
- password_ (),
- password_specified_ (false),
- database_ (),
- database_specified_ (false),
- server_ (),
- server_specified_ (false),
- driver_ (),
- driver_specified_ (false),
- options_file_ (),
- options_file_specified_ (false)
- {
- _parse (s, opt, arg);
- }
-
- ::odb::mssql::details::cli::usage_para options::
- print_usage (::std::ostream& os, ::odb::mssql::details::cli::usage_para p)
- {
- CLI_POTENTIALLY_UNUSED (os);
-
- if (p != ::odb::mssql::details::cli::usage_para::none)
- os << ::std::endl;
-
- os << "--user|-U <name> SQL Server database user. If not specified, then Windows" << ::std::endl
- << " authentication is used." << ::std::endl;
-
- os << std::endl
- << "--password|-P <str> SQL Server database password. Omit this option if the" << ::std::endl
- << " user password is blank or Windows authentication is used." << ::std::endl;
-
- os << std::endl
- << "--database|-d <name> SQL Server database name. If not specified, then the" << ::std::endl
- << " default database for this user is used." << ::std::endl;
-
- os << std::endl
- << "--server|-S <addr> SQL Server instance address in the" << ::std::endl
- << " [protocol:]host[\\instance][,port] format, where protocol" << ::std::endl
- << " can be tcp (TCP/IP), lpc (shared memory), or np (named" << ::std::endl
- << " pipe). If not specifid, then localhost is used." << ::std::endl;
-
- os << std::endl
- << "--driver <name> SQL Server Native Client ODBC driver name. If not" << ::std::endl
- << " specified, then the latest available driver is used." << ::std::endl;
-
- os << std::endl
- << "--options-file <file> Read additional options from <file>. Each option should" << ::std::endl
- << " appear on a separate line optionally followed by space or" << ::std::endl
- << " equal sign (=) and an option value. Empty lines and lines" << ::std::endl
- << " starting with # are ignored." << ::std::endl;
-
- p = ::odb::mssql::details::cli::usage_para::option;
-
- return p;
- }
-
- typedef
- std::map<std::string, void (*) (options&, ::odb::mssql::details::cli::scanner&)>
- _cli_options_map;
-
- static _cli_options_map _cli_options_map_;
-
- struct _cli_options_map_init
- {
- _cli_options_map_init ()
- {
- _cli_options_map_["--user"] =
- &::odb::mssql::details::cli::thunk< options, std::string, &options::user_,
- &options::user_specified_ >;
- _cli_options_map_["-U"] =
- &::odb::mssql::details::cli::thunk< options, std::string, &options::user_,
- &options::user_specified_ >;
- _cli_options_map_["--password"] =
- &::odb::mssql::details::cli::thunk< options, std::string, &options::password_,
- &options::password_specified_ >;
- _cli_options_map_["-P"] =
- &::odb::mssql::details::cli::thunk< options, std::string, &options::password_,
- &options::password_specified_ >;
- _cli_options_map_["--database"] =
- &::odb::mssql::details::cli::thunk< options, std::string, &options::database_,
- &options::database_specified_ >;
- _cli_options_map_["-d"] =
- &::odb::mssql::details::cli::thunk< options, std::string, &options::database_,
- &options::database_specified_ >;
- _cli_options_map_["--server"] =
- &::odb::mssql::details::cli::thunk< options, std::string, &options::server_,
- &options::server_specified_ >;
- _cli_options_map_["-S"] =
- &::odb::mssql::details::cli::thunk< options, std::string, &options::server_,
- &options::server_specified_ >;
- _cli_options_map_["--driver"] =
- &::odb::mssql::details::cli::thunk< options, std::string, &options::driver_,
- &options::driver_specified_ >;
- _cli_options_map_["--options-file"] =
- &::odb::mssql::details::cli::thunk< options, std::string, &options::options_file_,
- &options::options_file_specified_ >;
- }
- };
-
- static _cli_options_map_init _cli_options_map_init_;
-
- bool options::
- _parse (const char* o, ::odb::mssql::details::cli::scanner& s)
- {
- _cli_options_map::const_iterator i (_cli_options_map_.find (o));
-
- if (i != _cli_options_map_.end ())
- {
- (*(i->second)) (*this, s);
- return true;
- }
-
- return false;
- }
-
- bool options::
- _parse (::odb::mssql::details::cli::scanner& s,
- ::odb::mssql::details::cli::unknown_mode opt_mode,
- ::odb::mssql::details::cli::unknown_mode arg_mode)
- {
- bool r = false;
- bool opt = true;
-
- while (s.more ())
- {
- const char* o = s.peek ();
-
- if (std::strcmp (o, "--") == 0)
- {
- opt = false;
- s.skip ();
- r = true;
- continue;
- }
-
- if (opt)
- {
- if (_parse (o, s))
- {
- r = true;
- continue;
- }
-
- if (std::strncmp (o, "-", 1) == 0 && o[1] != '\0')
- {
- // Handle combined option values.
- //
- std::string co;
- if (const char* v = std::strchr (o, '='))
- {
- co.assign (o, 0, v - o);
- ++v;
-
- int ac (2);
- char* av[] =
- {
- const_cast<char*> (co.c_str ()),
- const_cast<char*> (v)
- };
-
- ::odb::mssql::details::cli::argv_scanner ns (0, ac, av);
-
- if (_parse (co.c_str (), ns))
- {
- // Parsed the option but not its value?
- //
- if (ns.end () != 2)
- throw ::odb::mssql::details::cli::invalid_value (co, v);
-
- s.next ();
- r = true;
- continue;
- }
- else
- {
- // Set the unknown option and fall through.
- //
- o = co.c_str ();
- }
- }
-
- switch (opt_mode)
- {
- case ::odb::mssql::details::cli::unknown_mode::skip:
- {
- s.skip ();
- r = true;
- continue;
- }
- case ::odb::mssql::details::cli::unknown_mode::stop:
- {
- break;
- }
- case ::odb::mssql::details::cli::unknown_mode::fail:
- {
- throw ::odb::mssql::details::cli::unknown_option (o);
- }
- }
-
- break;
- }
- }
-
- switch (arg_mode)
- {
- case ::odb::mssql::details::cli::unknown_mode::skip:
- {
- s.skip ();
- r = true;
- continue;
- }
- case ::odb::mssql::details::cli::unknown_mode::stop:
- {
- break;
- }
- case ::odb::mssql::details::cli::unknown_mode::fail:
- {
- throw ::odb::mssql::details::cli::unknown_argument (o);
- }
- }
-
- break;
- }
-
- return r;
- }
- }
- }
-}
-
-// Begin epilogue.
-//
-//
-// End epilogue.
-