[857] | 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)
|
---|