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/
7 Distributed under the Boost Software License, Version 1.0. (See accompanying
8 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 =============================================================================*/
10 #if !defined(BOOST_SPIRIT_SEQUENTIAL_AND_HPP)
11 #define BOOST_SPIRIT_SEQUENTIAL_AND_HPP
13 #include <boost/spirit/home/classic/namespace.hpp>
14 #include <boost/spirit/home/classic/core/parser.hpp>
15 #include <boost/spirit/home/classic/core/primitives/primitives.hpp>
16 #include <boost/spirit/home/classic/core/composite/composite.hpp>
17 #include <boost/spirit/home/classic/meta/as_parser.hpp>
19 namespace boost { namespace spirit {
21 BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
23 ///////////////////////////////////////////////////////////////////////////
25 // sequential-and operators
27 // Handles expressions of the form:
33 ///////////////////////////////////////////////////////////////////////////
34 template <typename A, typename B>
36 operator&&(parser<A> const& a, parser<B> const& b);
39 sequence<A, chlit<char> >
40 operator&&(parser<A> const& a, char b);
43 sequence<chlit<char>, B>
44 operator&&(char a, parser<B> const& b);
47 sequence<A, strlit<char const*> >
48 operator&&(parser<A> const& a, char const* b);
51 sequence<strlit<char const*>, B>
52 operator&&(char const* a, parser<B> const& b);
55 sequence<A, chlit<wchar_t> >
56 operator&&(parser<A> const& a, wchar_t b);
59 sequence<chlit<wchar_t>, B>
60 operator&&(wchar_t a, parser<B> const& b);
63 sequence<A, strlit<wchar_t const*> >
64 operator&&(parser<A> const& a, wchar_t const* b);
67 sequence<strlit<wchar_t const*>, B>
68 operator&&(wchar_t const* a, parser<B> const& b);
70 BOOST_SPIRIT_CLASSIC_NAMESPACE_END
72 }} // namespace BOOST_SPIRIT_CLASSIC_NS
76 #include <boost/spirit/home/classic/core/composite/impl/sequential_and.ipp>