Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:53:39

0001 /*=============================================================================
0002     Boost.Wave: A Standard compliant C++ preprocessor library
0003 
0004     http://www.boost.org/
0005 
0006     Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost
0007     Software License, Version 1.0. (See accompanying file
0008     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0009 =============================================================================*/
0010 
0011 #if !defined(BOOST_CPP_EXPRESSION_GRAMMAR_GEN_HPP_42399258_6CDC_4101_863D_5C7D95B5A6CA_INCLUDED)
0012 #define BOOST_CPP_EXPRESSION_GRAMMAR_GEN_HPP_42399258_6CDC_4101_863D_5C7D95B5A6CA_INCLUDED
0013 
0014 #include <boost/wave/wave_config.hpp>
0015 #include <boost/wave/cpp_iteration_context.hpp>
0016 #include <boost/wave/grammars/cpp_value_error.hpp>
0017 
0018 #include <list>
0019 #include <boost/pool/pool_alloc.hpp>
0020 
0021 // this must occur after all of the includes and before any code appears
0022 #ifdef BOOST_HAS_ABI_HEADERS
0023 #include BOOST_ABI_PREFIX
0024 #endif
0025 
0026 // suppress warnings about dependent classes not being exported from the dll
0027 #ifdef BOOST_MSVC
0028 #pragma warning(push)
0029 #pragma warning(disable : 4251 4231 4660)
0030 #endif
0031 
0032 ///////////////////////////////////////////////////////////////////////////////
0033 namespace boost {
0034 namespace wave {
0035 namespace grammars {
0036 
0037 ///////////////////////////////////////////////////////////////////////////////
0038 //
0039 //  expression_grammar_gen template class
0040 //
0041 //      This template helps separating the compilation of the
0042 //      expression_grammar class from the compilation of the main
0043 //      pp_iterator. This is done to safe compilation time.
0044 //
0045 ///////////////////////////////////////////////////////////////////////////////
0046 
0047 template <typename TokenT>
0048 struct BOOST_WAVE_DECL expression_grammar_gen {
0049 
0050     typedef TokenT token_type;
0051     typedef std::list<token_type, boost::fast_pool_allocator<token_type> >
0052         token_sequence_type;
0053 
0054     static bool evaluate(
0055         typename token_sequence_type::const_iterator const &first,
0056         typename token_sequence_type::const_iterator const &last,
0057         typename token_type::position_type const &tok,
0058         bool if_block_status, value_error &status);
0059 };
0060 
0061 ///////////////////////////////////////////////////////////////////////////////
0062 }   //  namespace grammars
0063 }   //  namespace wave
0064 }   //  namespace boost
0065 
0066 #ifdef BOOST_MSVC
0067 #pragma warning(pop)
0068 #endif
0069 
0070 // the suffix header occurs after all of the code
0071 #ifdef BOOST_HAS_ABI_HEADERS
0072 #include BOOST_ABI_SUFFIX
0073 #endif
0074 
0075 #endif // !defined(BOOST_CPP_EXPRESSION_GRAMMAR_GEN_HPP_42399258_6CDC_4101_863D_5C7D95B5A6CA_INCLUDED)