1/*=============================================================================
2 Copyright (c) 2002-2003 Joel de Guzman
3 Copyright (c) 2002-2003 Hartmut Kaiser
4 http://spirit.sourceforge.net/
5
6 Distributed under the Boost Software License, Version 1.0. (See accompanying
7 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8=============================================================================*/
9#if !defined(BOOST_SPIRIT_CLOSURE_CONTEXT_HPP)
10#define BOOST_SPIRIT_CLOSURE_CONTEXT_HPP
11
12#include <boost/spirit/home/classic/namespace.hpp>
13
14///////////////////////////////////////////////////////////////////////////////
15namespace boost { namespace spirit {
16
17BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
18
19#if !defined(BOOST_SPIRIT_CLOSURE_CONTEXT_LINKER_DEFINED)
20#define BOOST_SPIRIT_CLOSURE_CONTEXT_LINKER_DEFINED
21
22///////////////////////////////////////////////////////////////////////////////
23//
24// closure_context_linker
25// { helper template for the closure extendability }
26//
27// This classes can be 'overloaded' (defined elsewhere), to plug
28// in additional functionality into the closure parsing process.
29//
30///////////////////////////////////////////////////////////////////////////////
31
32template<typename ContextT>
33struct closure_context_linker : public ContextT
34{
35 template <typename ParserT>
36 closure_context_linker(ParserT const& p)
37 : ContextT(p) {}
38
39 template <typename ParserT, typename ScannerT>
40 void pre_parse(ParserT const& p, ScannerT const& scan)
41 { ContextT::pre_parse(p, scan); }
42
43 template <typename ResultT, typename ParserT, typename ScannerT>
44 ResultT&
45 post_parse(ResultT& hit, ParserT const& p, ScannerT const& scan)
46 { return ContextT::post_parse(hit, p, scan); }
47};
48
49#endif // !defined(BOOST_SPIRIT_CLOSURE_CONTEXT_LINKER_DEFINED)
50
51///////////////////////////////////////////////////////////////////////////////
52BOOST_SPIRIT_CLASSIC_NAMESPACE_END
53
54}} // namespace BOOST_SPIRIT_CLASSIC_NS
55
56#endif // BOOST_SPIRIT_CLOSURE_CONTEXT_HPP
57

source code of boost/libs/spirit/include/boost/spirit/home/classic/attribute/closure_context.hpp