summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl')
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/alternative.ipp90
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/difference.ipp90
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/directives.ipp374
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/exclusive_or.ipp90
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/intersection.ipp90
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/kleene_star.ipp34
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/list.ipp93
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/optional.ipp34
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/positive.ipp34
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/sequence.ipp90
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/sequential_and.ipp90
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/sequential_or.ipp90
12 files changed, 1199 insertions, 0 deletions
diff --git a/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/alternative.ipp b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/alternative.ipp
new file mode 100644
index 0000000..7a7599b
--- /dev/null
+++ b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/alternative.ipp
@@ -0,0 +1,90 @@
+/*=============================================================================
+ Copyright (c) 1998-2003 Joel de Guzman
+ Copyright (c) 2001 Daniel Nuffer
+ Copyright (c) 2002 Hartmut Kaiser
+ http://spirit.sourceforge.net/
+
+ Use, modification and distribution is subject to 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)
+=============================================================================*/
+#if !defined(BOOST_SPIRIT_ALTERNATIVE_IPP)
+#define BOOST_SPIRIT_ALTERNATIVE_IPP
+
+namespace boost { namespace spirit {
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
+
+ ///////////////////////////////////////////////////////////////////////////
+ //
+ // alternative class implementation
+ //
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename A, typename B>
+ inline alternative<A, B>
+ operator|(parser<A> const& a, parser<B> const& b)
+ {
+ return alternative<A, B>(a.derived(), b.derived());
+ }
+
+ template <typename A>
+ inline alternative<A, chlit<char> >
+ operator|(parser<A> const& a, char b)
+ {
+ return alternative<A, chlit<char> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline alternative<chlit<char>, B>
+ operator|(char a, parser<B> const& b)
+ {
+ return alternative<chlit<char>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline alternative<A, strlit<char const*> >
+ operator|(parser<A> const& a, char const* b)
+ {
+ return alternative<A, strlit<char const*> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline alternative<strlit<char const*>, B>
+ operator|(char const* a, parser<B> const& b)
+ {
+ return alternative<strlit<char const*>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline alternative<A, chlit<wchar_t> >
+ operator|(parser<A> const& a, wchar_t b)
+ {
+ return alternative<A, chlit<wchar_t> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline alternative<chlit<wchar_t>, B>
+ operator|(wchar_t a, parser<B> const& b)
+ {
+ return alternative<chlit<wchar_t>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline alternative<A, strlit<wchar_t const*> >
+ operator|(parser<A> const& a, wchar_t const* b)
+ {
+ return alternative<A, strlit<wchar_t const*> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline alternative<strlit<wchar_t const*>, B>
+ operator|(wchar_t const* a, parser<B> const& b)
+ {
+ return alternative<strlit<wchar_t const*>, B>(a, b.derived());
+ }
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_END
+
+}} // namespace boost::spirit
+
+#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/difference.ipp b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/difference.ipp
new file mode 100644
index 0000000..f5df8c7
--- /dev/null
+++ b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/difference.ipp
@@ -0,0 +1,90 @@
+/*=============================================================================
+ Copyright (c) 1998-2003 Joel de Guzman
+ Copyright (c) 2001 Daniel Nuffer
+ Copyright (c) 2002 Hartmut Kaiser
+ http://spirit.sourceforge.net/
+
+ Use, modification and distribution is subject to 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)
+=============================================================================*/
+#if !defined(BOOST_SPIRIT_DIFFERENCE_IPP)
+#define BOOST_SPIRIT_DIFFERENCE_IPP
+
+namespace boost { namespace spirit {
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
+
+ ///////////////////////////////////////////////////////////////////////////
+ //
+ // difference class implementation
+ //
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename A, typename B>
+ inline difference<A, B>
+ operator-(parser<A> const& a, parser<B> const& b)
+ {
+ return difference<A, B>(a.derived(), b.derived());
+ }
+
+ template <typename A>
+ inline difference<A, chlit<char> >
+ operator-(parser<A> const& a, char b)
+ {
+ return difference<A, chlit<char> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline difference<chlit<char>, B>
+ operator-(char a, parser<B> const& b)
+ {
+ return difference<chlit<char>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline difference<A, strlit<char const*> >
+ operator-(parser<A> const& a, char const* b)
+ {
+ return difference<A, strlit<char const*> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline difference<strlit<char const*>, B>
+ operator-(char const* a, parser<B> const& b)
+ {
+ return difference<strlit<char const*>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline difference<A, chlit<wchar_t> >
+ operator-(parser<A> const& a, wchar_t b)
+ {
+ return difference<A, chlit<wchar_t> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline difference<chlit<wchar_t>, B>
+ operator-(wchar_t a, parser<B> const& b)
+ {
+ return difference<chlit<wchar_t>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline difference<A, strlit<wchar_t const*> >
+ operator-(parser<A> const& a, wchar_t const* b)
+ {
+ return difference<A, strlit<wchar_t const*> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline difference<strlit<wchar_t const*>, B>
+ operator-(wchar_t const* a, parser<B> const& b)
+ {
+ return difference<strlit<wchar_t const*>, B>(a, b.derived());
+ }
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_END
+
+}} // namespace boost::spirit
+
+#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/directives.ipp b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/directives.ipp
new file mode 100644
index 0000000..b25b25f
--- /dev/null
+++ b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/directives.ipp
@@ -0,0 +1,374 @@
+/*=============================================================================
+ Copyright (c) 1998-2003 Joel de Guzman
+ Copyright (c) 2001 Daniel Nuffer
+ Copyright (c) 2001 Bruce Florman
+ Copyright (c) 2002 Raghavendra Satish
+ http://spirit.sourceforge.net/
+
+ Use, modification and distribution is subject to 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)
+=============================================================================*/
+#if !defined(BOOST_SPIRIT_DIRECTIVES_IPP)
+#define BOOST_SPIRIT_DIRECTIVES_IPP
+
+///////////////////////////////////////////////////////////////////////////////
+#include <boost/spirit/home/classic/core/scanner/skipper.hpp>
+
+namespace boost { namespace spirit {
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
+
+ template <typename BaseT>
+ struct no_skipper_iteration_policy;
+
+ template <typename BaseT>
+ struct inhibit_case_iteration_policy;
+
+ template <typename A, typename B>
+ struct alternative;
+
+ template <typename A, typename B>
+ struct longest_alternative;
+
+ template <typename A, typename B>
+ struct shortest_alternative;
+
+ namespace impl
+ {
+ template <typename RT, typename ST, typename ScannerT, typename BaseT>
+ inline RT
+ contiguous_parser_parse(
+ ST const& s,
+ ScannerT const& scan,
+ skipper_iteration_policy<BaseT> const&)
+ {
+ typedef scanner_policies<
+ no_skipper_iteration_policy<
+ BOOST_DEDUCED_TYPENAME ScannerT::iteration_policy_t>,
+ BOOST_DEDUCED_TYPENAME ScannerT::match_policy_t,
+ BOOST_DEDUCED_TYPENAME ScannerT::action_policy_t
+ > policies_t;
+
+ scan.skip(scan);
+ RT hit = s.parse(scan.change_policies(policies_t(scan)));
+ // We will not do a post skip!!!
+ return hit;
+ }
+
+ template <typename RT, typename ST, typename ScannerT, typename BaseT>
+ inline RT
+ contiguous_parser_parse(
+ ST const& s,
+ ScannerT const& scan,
+ no_skipper_iteration_policy<BaseT> const&)
+ {
+ return s.parse(scan);
+ }
+
+ template <typename RT, typename ST, typename ScannerT>
+ inline RT
+ contiguous_parser_parse(
+ ST const& s,
+ ScannerT const& scan,
+ iteration_policy const&)
+ {
+ return s.parse(scan);
+ }
+
+ template <
+ typename RT,
+ typename ParserT,
+ typename ScannerT,
+ typename BaseT>
+ inline RT
+ implicit_lexeme_parse(
+ ParserT const& p,
+ ScannerT const& scan,
+ skipper_iteration_policy<BaseT> const&)
+ {
+ typedef scanner_policies<
+ no_skipper_iteration_policy<
+ BOOST_DEDUCED_TYPENAME ScannerT::iteration_policy_t>,
+ BOOST_DEDUCED_TYPENAME ScannerT::match_policy_t,
+ BOOST_DEDUCED_TYPENAME ScannerT::action_policy_t
+ > policies_t;
+
+ scan.skip(scan);
+ RT hit = p.parse_main(scan.change_policies(policies_t(scan)));
+ // We will not do a post skip!!!
+ return hit;
+ }
+
+ template <
+ typename RT,
+ typename ParserT,
+ typename ScannerT,
+ typename BaseT>
+ inline RT
+ implicit_lexeme_parse(
+ ParserT const& p,
+ ScannerT const& scan,
+ no_skipper_iteration_policy<BaseT> const&)
+ {
+ return p.parse_main(scan);
+ }
+
+ template <typename RT, typename ParserT, typename ScannerT>
+ inline RT
+ implicit_lexeme_parse(
+ ParserT const& p,
+ ScannerT const& scan,
+ iteration_policy const&)
+ {
+ return p.parse_main(scan);
+ }
+
+ template <typename RT, typename ST, typename ScannerT>
+ inline RT
+ inhibit_case_parser_parse(
+ ST const& s,
+ ScannerT const& scan,
+ iteration_policy const&)
+ {
+ typedef scanner_policies<
+ inhibit_case_iteration_policy<
+ BOOST_DEDUCED_TYPENAME ScannerT::iteration_policy_t>,
+ BOOST_DEDUCED_TYPENAME ScannerT::match_policy_t,
+ BOOST_DEDUCED_TYPENAME ScannerT::action_policy_t
+ > policies_t;
+
+ return s.parse(scan.change_policies(policies_t(scan)));
+ }
+
+ template <typename RT, typename ST, typename ScannerT, typename BaseT>
+ inline RT
+ inhibit_case_parser_parse(
+ ST const& s,
+ ScannerT const& scan,
+ inhibit_case_iteration_policy<BaseT> const&)
+ {
+ return s.parse(scan);
+ }
+
+#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+
+ ///////////////////////////////////////////////////////////////////////
+ //
+ // from spirit 1.1 (copyright (c) 2001 Bruce Florman)
+ // various workarounds to support longest and shortest directives
+ //
+ ///////////////////////////////////////////////////////////////////////
+ template <typename T>
+ struct is_alternative
+ {
+ // Determine at compile time (without partial specialization)
+ // whether a given type is an instance of the alternative<A,B>
+
+ static T t();
+ template <typename A, typename B>
+ static char test_(alternative<A, B> const&); // no implementation
+ static int test_(...); // no implementation
+ enum { r = sizeof(char) == sizeof(test_(t())) };
+ typedef mpl::bool_<r> value;
+ };
+
+ template <typename T> struct select_to_longest;
+
+ template <typename T>
+ struct to_longest_alternative
+ {
+ typedef typename select_to_longest<T>::result_t result_t;
+ typedef typename select_to_longest<T>::plain_t plain_t;
+ typedef typename select_to_longest<T>::choose_t choose_t;
+ static result_t convert(T const& a);
+ };
+
+ template <typename T>
+ struct to_longest_generic
+ {
+ typedef T const& result_t;
+ typedef T plain_t;
+ typedef mpl::false_ choose_t;
+ };
+
+ template <typename T>
+ inline T const&
+ to_longest_convert(T const& a, mpl::false_)
+ { return a; }
+
+ template <typename T>
+ struct to_longest_recursive
+ {
+ typedef typename to_longest_alternative<
+ typename T::left_t>::plain_t a_t;
+ typedef typename to_longest_alternative<
+ typename T::right_t>::plain_t b_t;
+
+ typedef longest_alternative<a_t, b_t> result_t;
+
+ typedef result_t plain_t;
+ typedef mpl::true_ choose_t;
+ };
+
+ template <typename A, typename B>
+ inline typename to_longest_alternative<alternative<A, B> >::result_t
+ to_longest_convert(alternative<A, B> const& alt, mpl::true_)
+ {
+ typedef typename to_longest_alternative<
+ alternative<A, B> >::result_t result_t;
+ return result_t(
+ to_longest_alternative<A>::convert(alt.left()),
+ to_longest_alternative<B>::convert(alt.right()));
+ }
+
+ template <typename T>
+ inline typename to_longest_alternative<T>::result_t
+ to_longest_alternative<T>::convert(T const& a)
+ {
+ return to_longest_convert(
+ a, to_longest_alternative<T>::choose_t());
+ }
+
+ template <typename T>
+ struct select_to_longest
+ {
+ typedef typename mpl::if_<
+ is_alternative<T> // IF
+ , to_longest_recursive<T> // THEN
+ , to_longest_generic<T> // ELSE
+ >::type type;
+
+ typedef typename select_to_longest::type::result_t result_t;
+ typedef typename select_to_longest::type::plain_t plain_t;
+ typedef typename select_to_longest::type::choose_t choose_t;
+ };
+
+ template <typename T> struct select_to_shortest;
+
+ template <typename T>
+ struct to_shortest_alternative
+ {
+ typedef typename select_to_shortest<T>::result_t result_t;
+ typedef typename select_to_shortest<T>::plain_t plain_t;
+ typedef typename select_to_shortest<T>::choose_t choose_t;
+ static result_t convert(T const& a);
+ };
+
+ template <typename T>
+ struct to_shortest_generic
+ {
+ typedef T const& result_t;
+ typedef T plain_t;
+ typedef mpl::false_ choose_t;
+ };
+
+ template <typename T>
+ inline T const&
+ to_shortest_convert(T const& a, mpl::false_) { return a; }
+
+ template <typename T>
+ struct to_shortest_recursive
+ {
+ typedef typename to_shortest_alternative<
+ typename T::left_t>::plain_t a_t;
+ typedef typename to_shortest_alternative<
+ typename T::right_t>::plain_t b_t;
+
+ typedef shortest_alternative<a_t, b_t> result_t;
+
+ typedef result_t plain_t;
+ typedef mpl::true_ choose_t;
+ };
+
+ template <typename A, typename B>
+ inline typename to_shortest_alternative<alternative<A, B> >::result_t
+ to_shortest_convert(alternative<A, B> const& alt, mpl::true_)
+ {
+ typedef typename to_shortest_alternative<
+ alternative<A, B> >::result_t result_t;
+ return result_t(
+ to_shortest_alternative<A>::convert(alt.left()),
+ to_shortest_alternative<B>::convert(alt.right()));
+ }
+
+ template <typename T>
+ inline typename to_shortest_alternative<T>::result_t
+ to_shortest_alternative<T>::convert(T const& a)
+ {
+ return to_shortest_convert(
+ a, to_shortest_alternative<T>::choose_t());
+ }
+
+ template <typename T>
+ struct select_to_shortest
+ {
+ typedef typename mpl::if_<
+ is_alternative<T> // IF
+ , to_shortest_recursive<T> // THEN
+ , to_shortest_generic<T> // ELSE
+ >::type type;
+
+ typedef typename select_to_shortest::type::result_t result_t;
+ typedef typename select_to_shortest::type::plain_t plain_t;
+ typedef typename select_to_shortest::type::choose_t choose_t;
+ };
+#else
+ template <typename T>
+ struct to_longest_alternative
+ {
+ typedef T result_t;
+ static result_t const&
+ convert(T const& a) // Special (end) case
+ { return a; }
+ };
+
+ template <typename A, typename B>
+ struct to_longest_alternative<alternative<A, B> >
+ {
+ typedef typename to_longest_alternative<A>::result_t a_t;
+ typedef typename to_longest_alternative<B>::result_t b_t;
+ typedef longest_alternative<a_t, b_t> result_t;
+
+ static result_t
+ convert(alternative<A, B> const& alt) // Recursive case
+ {
+ return result_t(
+ to_longest_alternative<A>::convert(alt.left()),
+ to_longest_alternative<B>::convert(alt.right()));
+ }
+ };
+
+ template <typename T>
+ struct to_shortest_alternative
+ {
+ typedef T result_t;
+ static result_t const&
+ convert(T const& a) // Special (end) case
+ { return a; }
+ };
+
+ template <typename A, typename B>
+ struct to_shortest_alternative<alternative<A, B> >
+ {
+ typedef typename to_shortest_alternative<A>::result_t a_t;
+ typedef typename to_shortest_alternative<B>::result_t b_t;
+ typedef shortest_alternative<a_t, b_t> result_t;
+
+ static result_t
+ convert(alternative<A, B> const& alt) // Recursive case
+ {
+ return result_t(
+ to_shortest_alternative<A>::convert(alt.left()),
+ to_shortest_alternative<B>::convert(alt.right()));
+ }
+ };
+#endif
+ }
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_END
+
+}} // namespace boost::spirit
+
+#endif
+
diff --git a/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/exclusive_or.ipp b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/exclusive_or.ipp
new file mode 100644
index 0000000..34831a7
--- /dev/null
+++ b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/exclusive_or.ipp
@@ -0,0 +1,90 @@
+/*=============================================================================
+ Copyright (c) 1998-2003 Joel de Guzman
+ Copyright (c) 2001 Daniel Nuffer
+ Copyright (c) 2002 Hartmut Kaiser
+ http://spirit.sourceforge.net/
+
+ Use, modification and distribution is subject to 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)
+=============================================================================*/
+#if !defined(BOOST_SPIRIT_EXCLUSIVE_OR_IPP)
+#define BOOST_SPIRIT_EXCLUSIVE_OR_IPP
+
+namespace boost { namespace spirit {
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
+
+ ///////////////////////////////////////////////////////////////////////////
+ //
+ // exclusive_or class implementation
+ //
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename A, typename B>
+ inline exclusive_or<A, B>
+ operator^(parser<A> const& a, parser<B> const& b)
+ {
+ return exclusive_or<A, B>(a.derived(), b.derived());
+ }
+
+ template <typename A>
+ inline exclusive_or<A, chlit<char> >
+ operator^(parser<A> const& a, char b)
+ {
+ return exclusive_or<A, chlit<char> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline exclusive_or<chlit<char>, B>
+ operator^(char a, parser<B> const& b)
+ {
+ return exclusive_or<chlit<char>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline exclusive_or<A, strlit<char const*> >
+ operator^(parser<A> const& a, char const* b)
+ {
+ return exclusive_or<A, strlit<char const*> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline exclusive_or<strlit<char const*>, B>
+ operator^(char const* a, parser<B> const& b)
+ {
+ return exclusive_or<strlit<char const*>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline exclusive_or<A, chlit<wchar_t> >
+ operator^(parser<A> const& a, wchar_t b)
+ {
+ return exclusive_or<A, chlit<wchar_t> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline exclusive_or<chlit<wchar_t>, B>
+ operator^(wchar_t a, parser<B> const& b)
+ {
+ return exclusive_or<chlit<wchar_t>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline exclusive_or<A, strlit<wchar_t const*> >
+ operator^(parser<A> const& a, wchar_t const* b)
+ {
+ return exclusive_or<A, strlit<wchar_t const*> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline exclusive_or<strlit<wchar_t const*>, B>
+ operator^(wchar_t const* a, parser<B> const& b)
+ {
+ return exclusive_or<strlit<wchar_t const*>, B>(a, b.derived());
+ }
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_END
+
+}} // namespace boost::spirit
+
+#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/intersection.ipp b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/intersection.ipp
new file mode 100644
index 0000000..2810586
--- /dev/null
+++ b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/intersection.ipp
@@ -0,0 +1,90 @@
+/*=============================================================================
+ Copyright (c) 1998-2003 Joel de Guzman
+ Copyright (c) 2001 Daniel Nuffer
+ Copyright (c) 2002 Hartmut Kaiser
+ http://spirit.sourceforge.net/
+
+ Use, modification and distribution is subject to 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)
+=============================================================================*/
+#if !defined(BOOST_SPIRIT_INTERSECTION_IPP)
+#define BOOST_SPIRIT_INTERSECTION_IPP
+
+namespace boost { namespace spirit {
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
+
+ ///////////////////////////////////////////////////////////////////////////
+ //
+ // intersection class implementation
+ //
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename A, typename B>
+ inline intersection<A, B>
+ operator&(parser<A> const& a, parser<B> const& b)
+ {
+ return intersection<A, B>(a.derived(), b.derived());
+ }
+
+ template <typename A>
+ inline intersection<A, chlit<char> >
+ operator&(parser<A> const& a, char b)
+ {
+ return intersection<A, chlit<char> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline intersection<chlit<char>, B>
+ operator&(char a, parser<B> const& b)
+ {
+ return intersection<chlit<char>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline intersection<A, strlit<char const*> >
+ operator&(parser<A> const& a, char const* b)
+ {
+ return intersection<A, strlit<char const*> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline intersection<strlit<char const*>, B>
+ operator&(char const* a, parser<B> const& b)
+ {
+ return intersection<strlit<char const*>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline intersection<A, chlit<wchar_t> >
+ operator&(parser<A> const& a, wchar_t b)
+ {
+ return intersection<A, chlit<wchar_t> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline intersection<chlit<wchar_t>, B>
+ operator&(wchar_t a, parser<B> const& b)
+ {
+ return intersection<chlit<wchar_t>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline intersection<A, strlit<wchar_t const*> >
+ operator&(parser<A> const& a, wchar_t const* b)
+ {
+ return intersection<A, strlit<wchar_t const*> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline intersection<strlit<wchar_t const*>, B>
+ operator&(wchar_t const* a, parser<B> const& b)
+ {
+ return intersection<strlit<wchar_t const*>, B>(a, b.derived());
+ }
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_END
+
+}} // namespace boost::spirit
+
+#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/kleene_star.ipp b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/kleene_star.ipp
new file mode 100644
index 0000000..8c4f513
--- /dev/null
+++ b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/kleene_star.ipp
@@ -0,0 +1,34 @@
+/*=============================================================================
+ Copyright (c) 1998-2003 Joel de Guzman
+ Copyright (c) 2001 Daniel Nuffer
+ Copyright (c) 2002 Hartmut Kaiser
+ http://spirit.sourceforge.net/
+
+ Use, modification and distribution is subject to 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)
+=============================================================================*/
+#if !defined(BOOST_SPIRIT_KLEENE_STAR_IPP)
+#define BOOST_SPIRIT_KLEENE_STAR_IPP
+
+namespace boost { namespace spirit {
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
+
+ ///////////////////////////////////////////////////////////////////////////
+ //
+ // kleene_star class implementation
+ //
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename S>
+ inline kleene_star<S>
+ operator*(parser<S> const& a)
+ {
+ return kleene_star<S>(a.derived());
+ }
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_END
+
+}} // namespace boost::spirit
+
+#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/list.ipp b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/list.ipp
new file mode 100644
index 0000000..cd7965a
--- /dev/null
+++ b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/list.ipp
@@ -0,0 +1,93 @@
+/*=============================================================================
+ Copyright (c) 1998-2003 Joel de Guzman
+ Copyright (c) 2001 Daniel Nuffer
+ Copyright (c) 2002 Hartmut Kaiser
+ http://spirit.sourceforge.net/
+
+ Use, modification and distribution is subject to 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)
+=============================================================================*/
+#if !defined(BOOST_SPIRIT_LIST_IPP)
+#define BOOST_SPIRIT_LIST_IPP
+
+namespace boost { namespace spirit {
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
+
+ ///////////////////////////////////////////////////////////////////////////
+ //
+ // operator% is defined as:
+ // a % b ---> a >> *(b >> a)
+ //
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename A, typename B>
+ inline sequence<A, kleene_star<sequence<B, A> > >
+ operator%(parser<A> const& a, parser<B> const& b)
+ {
+ return a.derived() >> *(b.derived() >> a.derived());
+ }
+
+ template <typename A>
+ inline sequence<A, kleene_star<sequence<chlit<char>, A> > >
+ operator%(parser<A> const& a, char b)
+ {
+ return a.derived() >> *(b >> a.derived());
+ }
+
+ template <typename B>
+ inline sequence<chlit<char>, kleene_star<sequence<B, chlit<char> > > >
+ operator%(char a, parser<B> const& b)
+ {
+ return a >> *(b.derived() >> a);
+ }
+
+ template <typename A>
+ inline sequence<A, kleene_star<sequence<strlit<char const*>, A> > >
+ operator%(parser<A> const& a, char const* b)
+ {
+ return a.derived() >> *(b >> a.derived());
+ }
+
+ template <typename B>
+ inline sequence<strlit<char const*>,
+ kleene_star<sequence<B, strlit<char const*> > > >
+ operator%(char const* a, parser<B> const& b)
+ {
+ return a >> *(b.derived() >> a);
+ }
+
+ template <typename A>
+ inline sequence<A, kleene_star<sequence<chlit<wchar_t>, A> > >
+ operator%(parser<A> const& a, wchar_t b)
+ {
+ return a.derived() >> *(b >> a.derived());
+ }
+
+ template <typename B>
+ inline sequence<chlit<wchar_t>, kleene_star<sequence<B, chlit<wchar_t> > > >
+ operator%(wchar_t a, parser<B> const& b)
+ {
+ return a >> *(b.derived() >> a);
+ }
+
+ template <typename A>
+ inline sequence<A, kleene_star<sequence<strlit<wchar_t const*>, A> > >
+ operator%(parser<A> const& a, wchar_t const* b)
+ {
+ return a.derived() >> *(b >> a.derived());
+ }
+
+ template <typename B>
+ inline sequence<strlit<wchar_t const*>,
+ kleene_star<sequence<B, strlit<wchar_t const*> > > >
+ operator%(wchar_t const* a, parser<B> const& b)
+ {
+ return a >> *(b.derived() >> a);
+ }
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_END
+
+}} // namespace boost::spirit
+
+#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/optional.ipp b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/optional.ipp
new file mode 100644
index 0000000..629eac8
--- /dev/null
+++ b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/optional.ipp
@@ -0,0 +1,34 @@
+/*=============================================================================
+ Copyright (c) 1998-2003 Joel de Guzman
+ Copyright (c) 2001 Daniel Nuffer
+ Copyright (c) 2002 Hartmut Kaiser
+ http://spirit.sourceforge.net/
+
+ Use, modification and distribution is subject to 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)
+=============================================================================*/
+#if !defined(BOOST_SPIRIT_OPTIONAL_IPP)
+#define BOOST_SPIRIT_OPTIONAL_IPP
+
+namespace boost { namespace spirit {
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
+
+ ///////////////////////////////////////////////////////////////////////////
+ //
+ // optional class implementation
+ //
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename S>
+ optional<S>
+ operator!(parser<S> const& a)
+ {
+ return optional<S>(a.derived());
+ }
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_END
+
+}} // namespace boost::spirit
+
+#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/positive.ipp b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/positive.ipp
new file mode 100644
index 0000000..9698e69
--- /dev/null
+++ b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/positive.ipp
@@ -0,0 +1,34 @@
+/*=============================================================================
+ Copyright (c) 1998-2003 Joel de Guzman
+ Copyright (c) 2001 Daniel Nuffer
+ Copyright (c) 2002 Hartmut Kaiser
+ http://spirit.sourceforge.net/
+
+ Use, modification and distribution is subject to 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)
+=============================================================================*/
+#if !defined(BOOST_SPIRIT_POSITIVE_IPP)
+#define BOOST_SPIRIT_POSITIVE_IPP
+
+namespace boost { namespace spirit {
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
+
+ ///////////////////////////////////////////////////////////////////////////
+ //
+ // positive class implementation
+ //
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename S>
+ inline positive<S>
+ operator+(parser<S> const& a)
+ {
+ return positive<S>(a.derived());
+ }
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_END
+
+}} // namespace boost::spirit
+
+#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/sequence.ipp b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/sequence.ipp
new file mode 100644
index 0000000..283d420
--- /dev/null
+++ b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/sequence.ipp
@@ -0,0 +1,90 @@
+/*=============================================================================
+ Copyright (c) 1998-2003 Joel de Guzman
+ Copyright (c) 2001 Daniel Nuffer
+ Copyright (c) 2002 Hartmut Kaiser
+ http://spirit.sourceforge.net/
+
+ Use, modification and distribution is subject to 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)
+=============================================================================*/
+#if !defined(BOOST_SPIRIT_SEQUENCE_IPP)
+#define BOOST_SPIRIT_SEQUENCE_IPP
+
+namespace boost { namespace spirit {
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
+
+ ///////////////////////////////////////////////////////////////////////////
+ //
+ // sequence class implementation
+ //
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename A, typename B>
+ inline sequence<A, B>
+ operator>>(parser<A> const& a, parser<B> const& b)
+ {
+ return sequence<A, B>(a.derived(), b.derived());
+ }
+
+ template <typename A>
+ inline sequence<A, chlit<char> >
+ operator>>(parser<A> const& a, char b)
+ {
+ return sequence<A, chlit<char> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline sequence<chlit<char>, B>
+ operator>>(char a, parser<B> const& b)
+ {
+ return sequence<chlit<char>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline sequence<A, strlit<char const*> >
+ operator>>(parser<A> const& a, char const* b)
+ {
+ return sequence<A, strlit<char const*> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline sequence<strlit<char const*>, B>
+ operator>>(char const* a, parser<B> const& b)
+ {
+ return sequence<strlit<char const*>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline sequence<A, chlit<wchar_t> >
+ operator>>(parser<A> const& a, wchar_t b)
+ {
+ return sequence<A, chlit<wchar_t> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline sequence<chlit<wchar_t>, B>
+ operator>>(wchar_t a, parser<B> const& b)
+ {
+ return sequence<chlit<wchar_t>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline sequence<A, strlit<wchar_t const*> >
+ operator>>(parser<A> const& a, wchar_t const* b)
+ {
+ return sequence<A, strlit<wchar_t const*> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline sequence<strlit<wchar_t const*>, B>
+ operator>>(wchar_t const* a, parser<B> const& b)
+ {
+ return sequence<strlit<wchar_t const*>, B>(a, b.derived());
+ }
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_END
+
+}} // namespace boost::spirit
+
+#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/sequential_and.ipp b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/sequential_and.ipp
new file mode 100644
index 0000000..9f577a4
--- /dev/null
+++ b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/sequential_and.ipp
@@ -0,0 +1,90 @@
+/*=============================================================================
+ Copyright (c) 1998-2003 Joel de Guzman
+ Copyright (c) 2001 Daniel Nuffer
+ Copyright (c) 2002 Hartmut Kaiser
+ http://spirit.sourceforge.net/
+
+ Use, modification and distribution is subject to 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)
+=============================================================================*/
+#if !defined(BOOST_SPIRIT_SEQUENTIAL_AND_IPP)
+#define BOOST_SPIRIT_SEQUENTIAL_AND_IPP
+
+namespace boost { namespace spirit {
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
+
+ ///////////////////////////////////////////////////////////////////////////
+ //
+ // sequential-and operators implementation
+ //
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename A, typename B>
+ inline sequence<A, B>
+ operator&&(parser<A> const& a, parser<B> const& b)
+ {
+ return sequence<A, B>(a.derived(), b.derived());
+ }
+
+ template <typename A>
+ inline sequence<A, chlit<char> >
+ operator&&(parser<A> const& a, char b)
+ {
+ return sequence<A, chlit<char> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline sequence<chlit<char>, B>
+ operator&&(char a, parser<B> const& b)
+ {
+ return sequence<chlit<char>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline sequence<A, strlit<char const*> >
+ operator&&(parser<A> const& a, char const* b)
+ {
+ return sequence<A, strlit<char const*> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline sequence<strlit<char const*>, B>
+ operator&&(char const* a, parser<B> const& b)
+ {
+ return sequence<strlit<char const*>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline sequence<A, chlit<wchar_t> >
+ operator&&(parser<A> const& a, wchar_t b)
+ {
+ return sequence<A, chlit<wchar_t> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline sequence<chlit<wchar_t>, B>
+ operator&&(wchar_t a, parser<B> const& b)
+ {
+ return sequence<chlit<wchar_t>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline sequence<A, strlit<wchar_t const*> >
+ operator&&(parser<A> const& a, wchar_t const* b)
+ {
+ return sequence<A, strlit<wchar_t const*> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline sequence<strlit<wchar_t const*>, B>
+ operator&&(wchar_t const* a, parser<B> const& b)
+ {
+ return sequence<strlit<wchar_t const*>, B>(a, b.derived());
+ }
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_END
+
+}} // namespace boost::spirit
+
+#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/sequential_or.ipp b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/sequential_or.ipp
new file mode 100644
index 0000000..521faf6
--- /dev/null
+++ b/3rdParty/Boost/src/boost/spirit/home/classic/core/composite/impl/sequential_or.ipp
@@ -0,0 +1,90 @@
+/*=============================================================================
+ Copyright (c) 1998-2003 Joel de Guzman
+ Copyright (c) 2001 Daniel Nuffer
+ Copyright (c) 2002 Hartmut Kaiser
+ http://spirit.sourceforge.net/
+
+ Use, modification and distribution is subject to 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)
+=============================================================================*/
+#if !defined(BOOST_SPIRIT_SEQUENTIAL_OR_IPP)
+#define BOOST_SPIRIT_SEQUENTIAL_OR_IPP
+
+namespace boost { namespace spirit {
+
+ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
+
+ ///////////////////////////////////////////////////////////////////////////
+ //
+ // sequential-or class implementation
+ //
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename A, typename B>
+ inline sequential_or<A, B>
+ operator||(parser<A> const& a, parser<B> const& b)
+ {
+ return sequential_or<A, B>(a.derived(), b.derived());
+ }
+
+ template <typename A>
+ inline sequential_or<A, chlit<char> >
+ operator||(parser<A> const& a, char b)
+ {
+ return sequential_or<A, chlit<char> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline sequential_or<chlit<char>, B>
+ operator||(char a, parser<B> const& b)
+ {
+ return sequential_or<chlit<char>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline sequential_or<A, strlit<char const*> >
+ operator||(parser<A> const& a, char const* b)
+ {
+ return sequential_or<A, strlit<char const*> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline sequential_or<strlit<char const*>, B>
+ operator||(char const* a, parser<B> const& b)
+ {
+ return sequential_or<strlit<char const*>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline sequential_or<A, chlit<wchar_t> >
+ operator||(parser<A> const& a, wchar_t b)
+ {
+ return sequential_or<A, chlit<wchar_t> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline sequential_or<chlit<wchar_t>, B>
+ operator||(wchar_t a, parser<B> const& b)
+ {
+ return sequential_or<chlit<wchar_t>, B>(a, b.derived());
+ }
+
+ template <typename A>
+ inline sequential_or<A, strlit<wchar_t const*> >
+ operator||(parser<A> const& a, wchar_t const* b)
+ {
+ return sequential_or<A, strlit<wchar_t const*> >(a.derived(), b);
+ }
+
+ template <typename B>
+ inline sequential_or<strlit<wchar_t const*>, B>
+ operator||(wchar_t const* a, parser<B> const& b)
+ {
+ return sequential_or<strlit<wchar_t const*>, B>(a, b.derived());
+ }
+
+BOOST_SPIRIT_CLASSIC_NAMESPACE_END
+
+}} // namespace boost::spirit
+
+#endif