PageRenderTime 19ms CodeModel.GetById 8ms app.highlight 7ms RepoModel.GetById 1ms app.codeStats 0ms

/src/contrib/boost-1.52.0/boost/xpressive/detail/static/transforms/as_sequence.hpp

https://gitlab.com/tylerluo/pythonocc
C++ Header | 52 lines | 38 code | 7 blank | 7 comment | 1 complexity | 9f83cd4123a83f050b34048c40938e8a MD5 | raw file
 1///////////////////////////////////////////////////////////////////////////////
 2// as_sequence.hpp
 3//
 4//  Copyright 2008 Eric Niebler. Distributed under the Boost
 5//  Software License, Version 1.0. (See accompanying file
 6//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 7
 8#ifndef BOOST_XPRESSIVE_DETAIL_STATIC_TRANSFORMS_AS_SEQUENCE_HPP_EAN_04_01_2007
 9#define BOOST_XPRESSIVE_DETAIL_STATIC_TRANSFORMS_AS_SEQUENCE_HPP_EAN_04_01_2007
10
11// MS compatible compilers support #pragma once
12#if defined(_MSC_VER) && (_MSC_VER >= 1020)
13# pragma once
14#endif
15
16#include <boost/mpl/assert.hpp>
17#include <boost/type_traits/is_same.hpp>
18#include <boost/xpressive/detail/detail_fwd.hpp>
19#include <boost/xpressive/detail/static/static.hpp>
20
21namespace boost { namespace xpressive { namespace grammar_detail
22{
23    template<typename Grammar, typename Callable = proto::callable>
24    struct in_sequence : proto::transform<in_sequence<Grammar, Callable> >
25    {
26        template<typename Expr, typename State, typename Data>
27        struct impl : proto::transform_impl<Expr, State, Data>
28        {
29            typedef
30                detail::static_xpression<
31                    typename Grammar::template impl<Expr, State, Data>::result_type
32                  , State
33                >
34            result_type;
35
36            result_type operator ()(
37                typename impl::expr_param expr
38              , typename impl::state_param state
39              , typename impl::data_param data
40            ) const
41            {
42                return result_type(
43                    typename Grammar::template impl<Expr, State, Data>()(expr, state, data)
44                  , state
45                );
46            }
47        };
48    };
49
50}}}
51
52#endif