]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/spirit/include/boost/spirit/home/classic/core/composite/impl/list.ipp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / spirit / include / boost / spirit / home / classic / core / composite / impl / list.ipp
CommitLineData
7c673cae
FG
1/*=============================================================================
2 Copyright (c) 1998-2003 Joel de Guzman
3 Copyright (c) 2001 Daniel Nuffer
4 Copyright (c) 2002 Hartmut Kaiser
5 http://spirit.sourceforge.net/
6
7 Use, modification and distribution is subject to the Boost Software
8 License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
9 http://www.boost.org/LICENSE_1_0.txt)
10=============================================================================*/
11#if !defined(BOOST_SPIRIT_LIST_IPP)
12#define BOOST_SPIRIT_LIST_IPP
13
14namespace boost { namespace spirit {
15
16BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
17
18 ///////////////////////////////////////////////////////////////////////////
19 //
20 // operator% is defined as:
21 // a % b ---> a >> *(b >> a)
22 //
23 ///////////////////////////////////////////////////////////////////////////
24 template <typename A, typename B>
25 inline sequence<A, kleene_star<sequence<B, A> > >
26 operator%(parser<A> const& a, parser<B> const& b)
27 {
28 return a.derived() >> *(b.derived() >> a.derived());
29 }
30
31 template <typename A>
32 inline sequence<A, kleene_star<sequence<chlit<char>, A> > >
33 operator%(parser<A> const& a, char b)
34 {
35 return a.derived() >> *(b >> a.derived());
36 }
37
38 template <typename B>
39 inline sequence<chlit<char>, kleene_star<sequence<B, chlit<char> > > >
40 operator%(char a, parser<B> const& b)
41 {
42 return a >> *(b.derived() >> a);
43 }
44
45 template <typename A>
46 inline sequence<A, kleene_star<sequence<strlit<char const*>, A> > >
47 operator%(parser<A> const& a, char const* b)
48 {
49 return a.derived() >> *(b >> a.derived());
50 }
51
52 template <typename B>
53 inline sequence<strlit<char const*>,
54 kleene_star<sequence<B, strlit<char const*> > > >
55 operator%(char const* a, parser<B> const& b)
56 {
57 return a >> *(b.derived() >> a);
58 }
59
60 template <typename A>
61 inline sequence<A, kleene_star<sequence<chlit<wchar_t>, A> > >
62 operator%(parser<A> const& a, wchar_t b)
63 {
64 return a.derived() >> *(b >> a.derived());
65 }
66
67 template <typename B>
68 inline sequence<chlit<wchar_t>, kleene_star<sequence<B, chlit<wchar_t> > > >
69 operator%(wchar_t a, parser<B> const& b)
70 {
71 return a >> *(b.derived() >> a);
72 }
73
74 template <typename A>
75 inline sequence<A, kleene_star<sequence<strlit<wchar_t const*>, A> > >
76 operator%(parser<A> const& a, wchar_t const* b)
77 {
78 return a.derived() >> *(b >> a.derived());
79 }
80
81 template <typename B>
82 inline sequence<strlit<wchar_t const*>,
83 kleene_star<sequence<B, strlit<wchar_t const*> > > >
84 operator%(wchar_t const* a, parser<B> const& b)
85 {
86 return a >> *(b.derived() >> a);
87 }
88
89BOOST_SPIRIT_CLASSIC_NAMESPACE_END
90
91}} // namespace boost::spirit
92
93#endif