diff options
Diffstat (limited to '3rdParty/Boost/src/boost/spirit/home/lex')
8 files changed, 35 insertions, 134 deletions
diff --git a/3rdParty/Boost/src/boost/spirit/home/lex/argument.hpp b/3rdParty/Boost/src/boost/spirit/home/lex/argument.hpp index edfee0b..fbac3c1 100644 --- a/3rdParty/Boost/src/boost/spirit/home/lex/argument.hpp +++ b/3rdParty/Boost/src/boost/spirit/home/lex/argument.hpp @@ -110,12 +110,6 @@ namespace boost { namespace spirit { namespace lex state_setter(Actor const& actor) : actor_(actor) {} - // see explanation for this constructor at the end of this file -#ifndef BOOST_SPIRIT_USE_PHOENIX_V3 - state_setter(phoenix::actor<state_getter>, Actor const& actor) - : actor_(actor) {} -#endif - Actor actor_; }; @@ -190,12 +184,6 @@ namespace boost { namespace spirit { namespace lex value_setter(Actor const& actor) : actor_(actor) {} -#ifndef BOOST_SPIRIT_USE_PHOENIX_V3 - // see explanation for this constructor at the end of this file - value_setter(phoenix::actor<value_getter>, Actor const& actor) - : actor_(actor) {} -#endif - Actor actor_; }; @@ -281,81 +269,6 @@ namespace boost { namespace spirit { namespace lex #endif }}} -/////////////////////////////////////////////////////////////////////////////// -#ifndef BOOST_SPIRIT_USE_PHOENIX_V3 -namespace boost { namespace phoenix -{ - /////////////////////////////////////////////////////////////////////////// - // The specialization of as_actor_base<> below is needed to convert all - // occurrences of _state in places where it's used as a rvalue into the - // proper Phoenix actor (spirit::state_getter) accessing the lexer state. - template<> - struct as_actor_base<actor<spirit::lex::state_context> > - { - typedef spirit::lex::state_getter type; - - static spirit::lex::state_getter - convert(actor<spirit::lex::state_context>) - { - return spirit::lex::state_getter(); - } - }; - - /////////////////////////////////////////////////////////////////////////// - // The specialization of as_composite<> below is needed to convert all - // assignments to _state (places where it's used as a lvalue) into the - // proper Phoenix actor (spirit::state_setter) allowing to change the - // lexer state. - template <typename RHS> - struct as_composite<assign_eval, actor<spirit::lex::state_context>, RHS> - { - // For an assignment to _state (a spirit::state_context actor), this - // specialization makes Phoenix's compose() function construct a - // spirit::state_setter actor from 1. the LHS, a spirit::state_getter - // actor (due to the specialization of as_actor_base<> above), - // and 2. the RHS actor. - // This is why spirit::state_setter needs a constructor which takes - // a dummy spirit::state_getter as its first argument in addition - // to its real, second argument (the RHS actor). - typedef spirit::lex::state_setter<typename as_actor<RHS>::type> type; - }; - - /////////////////////////////////////////////////////////////////////////// - // The specialization of as_actor_base<> below is needed to convert all - // occurrences of _val in places where it's used as a rvalue into the - // proper Phoenix actor (spirit::value_getter) accessing the token value. - template<> - struct as_actor_base<actor<spirit::lex::value_context> > - { - typedef spirit::lex::value_getter type; - - static spirit::lex::value_getter - convert(actor<spirit::lex::value_context>) - { - return spirit::lex::value_getter(); - } - }; - - /////////////////////////////////////////////////////////////////////////// - // The specialization of as_composite<> below is needed to convert all - // assignments to _val (places where it's used as a lvalue) into the - // proper Phoenix actor (spirit::value_setter) allowing to change the - // token value. - template <typename RHS> - struct as_composite<assign_eval, actor<spirit::lex::value_context>, RHS> - { - // For an assignment to _val (a spirit::value_context actor), this - // specialization makes Phoenix's compose() function construct a - // spirit::value_setter actor from 1. the LHS, a spirit::value_getter - // actor (due to the specialization of as_actor_base<> above), - // and 2. the RHS actor. - // This is why spirit::value_setter needs a constructor which takes - // a dummy spirit::value_getter as its first argument in addition - // to its real, second argument (the RHS actor). - typedef spirit::lex::value_setter<typename as_actor<RHS>::type> type; - }; -}} -#endif #undef SPIRIT_DECLARE_ARG #endif diff --git a/3rdParty/Boost/src/boost/spirit/home/lex/argument_phoenix.hpp b/3rdParty/Boost/src/boost/spirit/home/lex/argument_phoenix.hpp index da24503..7989b01 100644 --- a/3rdParty/Boost/src/boost/spirit/home/lex/argument_phoenix.hpp +++ b/3rdParty/Boost/src/boost/spirit/home/lex/argument_phoenix.hpp @@ -82,7 +82,6 @@ namespace boost { namespace spirit { namespace lex }}} /////////////////////////////////////////////////////////////////////////////// -#ifdef BOOST_SPIRIT_USE_PHOENIX_V3 BOOST_PHOENIX_DEFINE_EXPRESSION( (boost)(spirit)(lex)(value_setter) @@ -246,6 +245,4 @@ namespace boost { namespace phoenix {}; }} -#endif // BOOST_SPIRIT_USE_PHOENIX_V3 - #endif diff --git a/3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexer.hpp b/3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexer.hpp index 93412ce..e733533 100644 --- a/3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexer.hpp +++ b/3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexer.hpp @@ -285,7 +285,7 @@ namespace boost { namespace spirit { namespace lex lexer_def_& operator= (lexer_def_ const&); }; -#if defined(BOOST_NO_RVALUE_REFERENCES) +#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) // allow to assign a token definition expression template <typename LexerDef, typename Expr> inline lexer_def_<LexerDef>& diff --git a/3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/functor_data.hpp b/3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/functor_data.hpp index 207b374..dfad49b 100644 --- a/3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/functor_data.hpp +++ b/3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/functor_data.hpp @@ -300,7 +300,7 @@ namespace boost { namespace spirit { namespace lex { namespace lexertl data (IterData const& data_, Iterator& first, Iterator const& last) : base_type(data_, first, last) , actions_(data_.actions_), hold_() - , value_(iterator_range<Iterator>(first, last)) + , value_(iterator_range<Iterator>(last, last)) , has_value_(false), has_hold_(false) {} // invoke attached semantic actions, if defined diff --git a/3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/iterator.hpp b/3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/iterator.hpp index f2793ba..1b05720 100644 --- a/3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/iterator.hpp +++ b/3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/iterator.hpp @@ -10,6 +10,7 @@ #pragma once #endif +#include <boost/spirit/home/support/multi_pass_wrapper.hpp> #if defined(BOOST_SPIRIT_DEBUG) #include <boost/spirit/home/support/iterators/detail/buf_id_check_policy.hpp> #else @@ -115,7 +116,34 @@ namespace boost { namespace spirit { namespace lex { namespace lexertl : 0; } }; +}} -}}}} +namespace traits +{ + template <typename Functor> + struct is_multi_pass<spirit::lex::lexertl::iterator<Functor> > + : mpl::true_ {}; + + template <typename Functor> + void clear_queue(spirit::lex::lexertl::iterator<Functor> & mp + , BOOST_SCOPED_ENUM(traits::clear_mode) mode) + { + mp.clear_queue(mode); + } + + template <typename Functor> + void inhibit_clear_queue(spirit::lex::lexertl::iterator<Functor>& mp, bool flag) + { + mp.inhibit_clear_queue(flag); + } + + template <typename Functor> + bool inhibit_clear_queue(spirit::lex::lexertl::iterator<Functor>& mp) + { + return mp.inhibit_clear_queue(); + } +} + +}} #endif diff --git a/3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/token.hpp b/3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/token.hpp index 90961af..9f4bdb3 100644 --- a/3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/token.hpp +++ b/3rdParty/Boost/src/boost/spirit/home/lex/lexer/lexertl/token.hpp @@ -35,9 +35,7 @@ #include <boost/mpl/or.hpp> #include <boost/type_traits/is_same.hpp> #include <boost/range/iterator_range.hpp> -#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) #include <boost/static_assert.hpp> -#endif #if defined(BOOST_SPIRIT_DEBUG) #include <iosfwd> @@ -330,14 +328,12 @@ namespace boost { namespace spirit { namespace lex { namespace lexertl struct token : token<Iterator, lex::omit, HasState, Idtype> { private: // precondition assertions -#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) BOOST_STATIC_ASSERT((mpl::is_sequence<AttributeTypes>::value || is_same<AttributeTypes, lex::omit>::value)); -#endif typedef token<Iterator, lex::omit, HasState, Idtype> base_type; protected: - // If no additional token value types are given, the the token will + // If no additional token value types are given, the token will // hold the plain pair of iterators pointing to the matched range // in the underlying input sequence. Otherwise the token value is // stored as a variant and will again hold the pair of iterators but diff --git a/3rdParty/Boost/src/boost/spirit/home/lex/lexer/support_functions.hpp b/3rdParty/Boost/src/boost/spirit/home/lex/lexer/support_functions.hpp index f3987c6..8467560 100644 --- a/3rdParty/Boost/src/boost/spirit/home/lex/lexer/support_functions.hpp +++ b/3rdParty/Boost/src/boost/spirit/home/lex/lexer/support_functions.hpp @@ -47,11 +47,11 @@ namespace boost { namespace spirit { namespace lex template <typename Env> struct result { - typedef typename - remove_const< + typedef typename remove_reference< + typename remove_const< typename mpl::at_c<typename Env::args_type, 4>::type >::type - context_type; + >::type context_type; typedef typename context_type::base_iterator_type type; }; diff --git a/3rdParty/Boost/src/boost/spirit/home/lex/lexer/support_functions_expression.hpp b/3rdParty/Boost/src/boost/spirit/home/lex/lexer/support_functions_expression.hpp index 613a4a4..3c7572d 100644 --- a/3rdParty/Boost/src/boost/spirit/home/lex/lexer/support_functions_expression.hpp +++ b/3rdParty/Boost/src/boost/spirit/home/lex/lexer/support_functions_expression.hpp @@ -21,37 +21,6 @@ namespace boost { namespace spirit { namespace lex }}} /////////////////////////////////////////////////////////////////////////////// -#ifndef BOOST_SPIRIT_USE_PHOENIX_V3 - -namespace boost { namespace spirit { namespace lex -{ - namespace expression - { - template <typename Eval> - struct less - { - typedef phoenix::actor<lex::less_type<Eval> > type; - - static type make(Eval const & eval) - { - return lex::less_type<Eval>(eval); - } - }; - - template <typename IdType, typename State> - struct lookahead - { - typedef phoenix::actor<lex::lookahead_type<IdType, State> > type; - - static type make(IdType const & id_type, State const & state) - { - return lex::lookahead_type<IdType, State>(id_type, state); - } - }; - } -}}} - -#else // BOOST_SPIRIT_USE_PHOENIX_V3 BOOST_PHOENIX_DEFINE_EXPRESSION( (boost)(spirit)(lex)(less) @@ -130,6 +99,4 @@ namespace boost { namespace phoenix {}; }} -#endif // BOOST_SPIRIT_USE_PHOENIX_V3 - #endif |