1 | /*=============================================================================
|
---|
2 | Boost.Wave: A Standard compliant C++ preprocessor library
|
---|
3 |
|
---|
4 | http://www.boost.org/
|
---|
5 |
|
---|
6 | Copyright (c) 2001-2005 Hartmut Kaiser. Distributed under the Boost
|
---|
7 | Software License, Version 1.0. (See accompanying file
|
---|
8 | LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
---|
9 | =============================================================================*/
|
---|
10 |
|
---|
11 | #if !defined(CPP_EXPRESSION_GRAMMAR_GEN_HPP_42399258_6CDC_4101_863D_5C7D95B5A6CA_INCLUDED)
|
---|
12 | #define CPP_EXPRESSION_GRAMMAR_GEN_HPP_42399258_6CDC_4101_863D_5C7D95B5A6CA_INCLUDED
|
---|
13 |
|
---|
14 | #include <list>
|
---|
15 | #include <boost/pool/pool_alloc.hpp>
|
---|
16 |
|
---|
17 | #include <boost/wave/cpp_iteration_context.hpp>
|
---|
18 |
|
---|
19 | ///////////////////////////////////////////////////////////////////////////////
|
---|
20 | namespace boost {
|
---|
21 | namespace wave {
|
---|
22 | namespace grammars {
|
---|
23 |
|
---|
24 | ///////////////////////////////////////////////////////////////////////////////
|
---|
25 | //
|
---|
26 | // expression_grammar_gen template class
|
---|
27 | //
|
---|
28 | // This template helps separating the compilation of the
|
---|
29 | // expression_grammar class from the compilation of the main
|
---|
30 | // pp_iterator. This is done to safe compilation time.
|
---|
31 | //
|
---|
32 | ///////////////////////////////////////////////////////////////////////////////
|
---|
33 |
|
---|
34 | template <typename TokenT>
|
---|
35 | struct expression_grammar_gen {
|
---|
36 |
|
---|
37 | typedef TokenT token_type;
|
---|
38 | typedef std::list<token_type, boost::fast_pool_allocator<token_type> >
|
---|
39 | token_sequence_type;
|
---|
40 |
|
---|
41 | static bool evaluate(
|
---|
42 | typename token_sequence_type::const_iterator const &first,
|
---|
43 | typename token_sequence_type::const_iterator const &last,
|
---|
44 | typename token_type::position_type const &tok,
|
---|
45 | bool if_block_status);
|
---|
46 | };
|
---|
47 |
|
---|
48 | ///////////////////////////////////////////////////////////////////////////////
|
---|
49 | } // namespace grammars
|
---|
50 | } // namespace wave
|
---|
51 | } // namespace boost
|
---|
52 |
|
---|
53 | #endif // !defined(CPP_EXPRESSION_GRAMMAR_GEN_HPP_42399258_6CDC_4101_863D_5C7D95B5A6CA_INCLUDED)
|
---|