Back to home page

EIC code displayed by LXR

 
 

    


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

0001 /*=============================================================================
0002     A Standard compliant C++ preprocessor
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_PREDEF_MACROS_GEN_HPP_CADB6D2C_76A4_4988_83E1_EFFC6902B9A2_INCLUDED)
0012 #define BOOST_CPP_PREDEF_MACROS_GEN_HPP_CADB6D2C_76A4_4988_83E1_EFFC6902B9A2_INCLUDED
0013 
0014 #include <boost/spirit/include/classic_parse_tree.hpp>
0015 
0016 #include <boost/wave/wave_config.hpp>
0017 
0018 // this must occur after all of the includes and before any code appears
0019 #ifdef BOOST_HAS_ABI_HEADERS
0020 #include BOOST_ABI_PREFIX
0021 #endif
0022 
0023 // suppress warnings about dependent classes not being exported from the dll
0024 #ifdef BOOST_MSVC
0025 #pragma warning(push)
0026 #pragma warning(disable : 4251 4231 4660)
0027 #endif
0028 
0029 ///////////////////////////////////////////////////////////////////////////////
0030 namespace boost {
0031 namespace wave {
0032 namespace grammars {
0033 
0034 ///////////////////////////////////////////////////////////////////////////////
0035 //
0036 //  Here are the node id's of the different node of the cpp_grammar
0037 //
0038 ///////////////////////////////////////////////////////////////////////////////
0039 #define BOOST_WAVE_PLAIN_DEFINE_ID      5
0040 #define BOOST_WAVE_MACRO_PARAMETERS_ID  6
0041 #define BOOST_WAVE_MACRO_DEFINITION_ID  7
0042 
0043 ///////////////////////////////////////////////////////////////////////////////
0044 //
0045 //  predefined_macros_grammar_gen template class
0046 //
0047 //      This template helps separating the compilation of the
0048 //      predefined_macros_grammar class from the compilation of the
0049 //      main pp_iterator. This is done to safe compilation time.
0050 //
0051 //      This class helps parsing command line given macro definitions in a
0052 //      similar way, as macros are parsed by the cpp_grammar class.
0053 //
0054 ///////////////////////////////////////////////////////////////////////////////
0055 
0056 template <typename LexIteratorT>
0057 struct BOOST_WAVE_DECL predefined_macros_grammar_gen
0058 {
0059     typedef LexIteratorT iterator_type;
0060 
0061     //  parse the cpp_grammar and return the resulting parse tree
0062     static boost::spirit::classic::tree_parse_info<iterator_type>
0063     parse_predefined_macro (iterator_type const &first, iterator_type const &last);
0064 };
0065 
0066 ///////////////////////////////////////////////////////////////////////////////
0067 }   // namespace grammars
0068 }   // namespace wave
0069 }   // namespace boost
0070 
0071 #ifdef BOOST_MSVC
0072 #pragma warning(pop)
0073 #endif
0074 
0075 // the suffix header occurs after all of the code
0076 #ifdef BOOST_HAS_ABI_HEADERS
0077 #include BOOST_ABI_SUFFIX
0078 #endif
0079 
0080 #endif // !defined(BOOST_CPP_PREDEF_MACROS_GEN_HPP_CADB6D2C_76A4_4988_83E1_EFFC6902B9A2_INCLUDED)