| 1 | /*============================================================================= | 
|---|
| 2 |     Boost.Wave: A Standard compliant C++ preprocessor library | 
|---|
| 3 |     http://www.boost.org/ | 
|---|
| 4 |  | 
|---|
| 5 |     Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost | 
|---|
| 6 |     Software License, Version 1.0. (See accompanying file | 
|---|
| 7 |     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | 
|---|
| 8 | =============================================================================*/ | 
|---|
| 9 |  | 
|---|
| 10 | #define BOOST_WAVE_SOURCE 1 | 
|---|
| 11 | #include <boost/wave/wave_config.hpp> | 
|---|
| 12 |  | 
|---|
| 13 | #if BOOST_WAVE_SEPARATE_GRAMMAR_INSTANTIATION != 0 | 
|---|
| 14 |  | 
|---|
| 15 | #include <string> | 
|---|
| 16 | #include <list> | 
|---|
| 17 |  | 
|---|
| 18 | #include <boost/wave/cpplexer/cpp_lex_token.hpp> | 
|---|
| 19 | #include <boost/wave/cpplexer/cpp_lex_iterator.hpp> | 
|---|
| 20 |  | 
|---|
| 21 | #include <boost/wave/grammars/cpp_grammar.hpp> | 
|---|
| 22 |  | 
|---|
| 23 | // this must occur after all of the includes and before any code appears | 
|---|
| 24 | #ifdef BOOST_HAS_ABI_HEADERS | 
|---|
| 25 | #include BOOST_ABI_PREFIX | 
|---|
| 26 | #endif | 
|---|
| 27 |  | 
|---|
| 28 | /////////////////////////////////////////////////////////////////////////////// | 
|---|
| 29 | //   | 
|---|
| 30 | //  Explicit instantiation of the cpp_grammar_gen template with the correct | 
|---|
| 31 | //  token type. This instantiates the corresponding pt_parse function, which | 
|---|
| 32 | //  in turn instantiates the cpp_grammar object  | 
|---|
| 33 | //  (see wave/grammars/cpp_grammar.hpp) | 
|---|
| 34 | // | 
|---|
| 35 | /////////////////////////////////////////////////////////////////////////////// | 
|---|
| 36 |  | 
|---|
| 37 | typedef boost::wave::cpplexer::lex_token<> token_type; | 
|---|
| 38 | typedef boost::wave::cpplexer::lex_iterator<token_type> lexer_type; | 
|---|
| 39 | typedef std::list<token_type, boost::fast_pool_allocator<token_type> >  | 
|---|
| 40 |     token_sequence_type; | 
|---|
| 41 |      | 
|---|
| 42 | template struct boost::wave::grammars::cpp_grammar_gen<lexer_type, token_sequence_type>; | 
|---|
| 43 |  | 
|---|
| 44 | // the suffix header occurs after all of the code | 
|---|
| 45 | #ifdef BOOST_HAS_ABI_HEADERS | 
|---|
| 46 | #include BOOST_ABI_SUFFIX | 
|---|
| 47 | #endif | 
|---|
| 48 |  | 
|---|
| 49 | #endif // #if BOOST_WAVE_SEPARATE_GRAMMAR_INSTANTIATION != 0 | 
|---|
| 50 |  | 
|---|