diff options
Diffstat (limited to 'src/third_party/boost-1.56.0/libs/program_options/src/parsers.cpp')
-rw-r--r-- | src/third_party/boost-1.56.0/libs/program_options/src/parsers.cpp | 249 |
1 files changed, 0 insertions, 249 deletions
diff --git a/src/third_party/boost-1.56.0/libs/program_options/src/parsers.cpp b/src/third_party/boost-1.56.0/libs/program_options/src/parsers.cpp deleted file mode 100644 index 2361a4832f0..00000000000 --- a/src/third_party/boost-1.56.0/libs/program_options/src/parsers.cpp +++ /dev/null @@ -1,249 +0,0 @@ -// Copyright Vladimir Prus 2002-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) - - -#include <boost/config.hpp> - -#define BOOST_PROGRAM_OPTIONS_SOURCE -#include <boost/program_options/config.hpp> -#include <boost/program_options/parsers.hpp> -#include <boost/program_options/options_description.hpp> -#include <boost/program_options/positional_options.hpp> -#include <boost/program_options/detail/cmdline.hpp> -#include <boost/program_options/detail/config_file.hpp> -#include <boost/program_options/environment_iterator.hpp> -#include <boost/program_options/detail/convert.hpp> - -#include <boost/bind.hpp> -#include <boost/throw_exception.hpp> - -#include <cctype> -#include <fstream> - -#if !defined(__GNUC__) || __GNUC__ < 3 -#include <iostream> -#else -#include <istream> -#endif - -#ifdef _WIN32 -#include <stdlib.h> -#else -#include <unistd.h> -#endif - -// The 'environ' should be declared in some cases. E.g. Linux man page says: -// (This variable must be declared in the user program, but is declared in -// the header file unistd.h in case the header files came from libc4 or libc5, -// and in case they came from glibc and _GNU_SOURCE was defined.) -// To be safe, declare it here. - -// It appears that on Mac OS X the 'environ' variable is not -// available to dynamically linked libraries. -// See: http://article.gmane.org/gmane.comp.lib.boost.devel/103843 -// See: http://lists.gnu.org/archive/html/bug-guile/2004-01/msg00013.html -#if defined(__APPLE__) && defined(__DYNAMIC__) -// The proper include for this is crt_externs.h, however it's not -// available on iOS. The right replacement is not known. See -// https://svn.boost.org/trac/boost/ticket/5053 -extern "C" { extern char ***_NSGetEnviron(void); } -#define environ (*_NSGetEnviron()) -#else -#if defined(__MWERKS__) -#include <crtl.h> -#else -#if !defined(_WIN32) || defined(__COMO_VERSION__) -extern char** environ; -#endif -#endif -#endif - -using namespace std; - -namespace boost { namespace program_options { - -#ifndef BOOST_NO_STD_WSTRING - namespace { - woption woption_from_option(const option& opt) - { - woption result; - result.string_key = opt.string_key; - result.position_key = opt.position_key; - result.unregistered = opt.unregistered; - - std::transform(opt.value.begin(), opt.value.end(), - back_inserter(result.value), - boost::bind(from_utf8, _1)); - - std::transform(opt.original_tokens.begin(), - opt.original_tokens.end(), - back_inserter(result.original_tokens), - boost::bind(from_utf8, _1)); - return result; - } - } - - basic_parsed_options<wchar_t> - ::basic_parsed_options(const parsed_options& po) - : description(po.description), - utf8_encoded_options(po), - m_options_prefix(po.m_options_prefix) - { - for (unsigned i = 0; i < po.options.size(); ++i) - options.push_back(woption_from_option(po.options[i])); - } -#endif - - template<class charT> - basic_parsed_options<charT> - parse_config_file(std::basic_istream<charT>& is, - const options_description& desc, - bool allow_unregistered) - { - set<string> allowed_options; - - const vector<shared_ptr<option_description> >& options = desc.options(); - for (unsigned i = 0; i < options.size(); ++i) - { - const option_description& d = *options[i]; - - if (d.long_name().empty()) - boost::throw_exception( - error("abbreviated option names are not permitted in options configuration files")); - - allowed_options.insert(d.long_name()); - } - - // Parser return char strings - parsed_options result(&desc); - copy(detail::basic_config_file_iterator<charT>( - is, allowed_options, allow_unregistered), - detail::basic_config_file_iterator<charT>(), - back_inserter(result.options)); - // Convert char strings into desired type. - return basic_parsed_options<charT>(result); - } - - template - BOOST_PROGRAM_OPTIONS_DECL basic_parsed_options<char> - parse_config_file(std::basic_istream<char>& is, - const options_description& desc, - bool allow_unregistered); - -#ifndef BOOST_NO_STD_WSTRING - template - BOOST_PROGRAM_OPTIONS_DECL basic_parsed_options<wchar_t> - parse_config_file(std::basic_istream<wchar_t>& is, - const options_description& desc, - bool allow_unregistered); -#endif - - template<class charT> - basic_parsed_options<charT> - parse_config_file(const char* filename, - const options_description& desc, - bool allow_unregistered) - { - // Parser return char strings - std::basic_ifstream< charT > strm(filename); - if (!strm) - { - boost::throw_exception(reading_file(filename)); - } - return parse_config_file(strm, desc, allow_unregistered); - } - - template - BOOST_PROGRAM_OPTIONS_DECL basic_parsed_options<char> - parse_config_file(const char* filename, - const options_description& desc, - bool allow_unregistered); - -#ifndef BOOST_NO_STD_WSTRING - template - BOOST_PROGRAM_OPTIONS_DECL basic_parsed_options<wchar_t> - parse_config_file(const char* filename, - const options_description& desc, - bool allow_unregistered); -#endif - - -// This versio, which accepts any options without validation, is disabled, -// in the hope that nobody will need it and we cant drop it altogether. -// Besides, probably the right way to handle all options is the '*' name. -#if 0 - BOOST_PROGRAM_OPTIONS_DECL parsed_options - parse_config_file(std::istream& is) - { - detail::config_file_iterator cf(is, false); - parsed_options result(0); - copy(cf, detail::config_file_iterator(), - back_inserter(result.options)); - return result; - } -#endif - - BOOST_PROGRAM_OPTIONS_DECL parsed_options - parse_environment(const options_description& desc, - const function1<std::string, std::string>& name_mapper) - { - parsed_options result(&desc); - - for(environment_iterator i(environ), e; i != e; ++i) { - string option_name = name_mapper(i->first); - - if (!option_name.empty()) { - option n; - n.string_key = option_name; - n.value.push_back(i->second); - result.options.push_back(n); - } - } - - return result; - } - - namespace detail { - class prefix_name_mapper { - public: - prefix_name_mapper(const std::string& prefix) - : prefix(prefix) - {} - - std::string operator()(const std::string& s) - { - string result; - if (s.find(prefix) == 0) { - for(string::size_type n = prefix.size(); n < s.size(); ++n) - { - // Intel-Win-7.1 does not understand - // push_back on string. - result += tolower(s[n]); - } - } - return result; - } - private: - std::string prefix; - }; - } - - BOOST_PROGRAM_OPTIONS_DECL parsed_options - parse_environment(const options_description& desc, - const std::string& prefix) - { - return parse_environment(desc, detail::prefix_name_mapper(prefix)); - } - - BOOST_PROGRAM_OPTIONS_DECL parsed_options - parse_environment(const options_description& desc, const char* prefix) - { - return parse_environment(desc, string(prefix)); - } - - - - -}} |