]>
Commit | Line | Data |
---|---|---|
1 | /*============================================================================= | |
2 | A Standard compliant C++ preprocessor | |
3 | ||
4 | http://www.boost.org/ | |
5 | ||
6 | Copyright (c) 2001-2012 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_PREDEF_MACROS_GEN_HPP_CADB6D2C_76A4_4988_83E1_EFFC6902B9A2_INCLUDED) | |
12 | #define CPP_PREDEF_MACROS_GEN_HPP_CADB6D2C_76A4_4988_83E1_EFFC6902B9A2_INCLUDED | |
13 | ||
14 | #include <boost/spirit/include/classic_parse_tree.hpp> | |
15 | ||
16 | #include <boost/wave/wave_config.hpp> | |
17 | ||
18 | // this must occur after all of the includes and before any code appears | |
19 | #ifdef BOOST_HAS_ABI_HEADERS | |
20 | #include BOOST_ABI_PREFIX | |
21 | #endif | |
22 | ||
23 | // suppress warnings about dependent classes not being exported from the dll | |
24 | #ifdef BOOST_MSVC | |
25 | #pragma warning(push) | |
26 | #pragma warning(disable : 4251 4231 4660) | |
27 | #endif | |
28 | ||
29 | /////////////////////////////////////////////////////////////////////////////// | |
30 | namespace boost { | |
31 | namespace wave { | |
32 | namespace grammars { | |
33 | ||
34 | /////////////////////////////////////////////////////////////////////////////// | |
35 | // | |
36 | // Here are the node id's of the different node of the cpp_grammar | |
37 | // | |
38 | /////////////////////////////////////////////////////////////////////////////// | |
39 | #define BOOST_WAVE_PLAIN_DEFINE_ID 5 | |
40 | #define BOOST_WAVE_MACRO_PARAMETERS_ID 6 | |
41 | #define BOOST_WAVE_MACRO_DEFINITION_ID 7 | |
42 | ||
43 | /////////////////////////////////////////////////////////////////////////////// | |
44 | // | |
45 | // predefined_macros_grammar_gen template class | |
46 | // | |
47 | // This template helps separating the compilation of the | |
48 | // predefined_macros_grammar class from the compilation of the | |
49 | // main pp_iterator. This is done to safe compilation time. | |
50 | // | |
51 | // This class helps parsing command line given macro definitions in a | |
52 | // similar way, as macros are parsed by the cpp_grammar class. | |
53 | // | |
54 | /////////////////////////////////////////////////////////////////////////////// | |
55 | ||
56 | template <typename LexIteratorT> | |
57 | struct BOOST_WAVE_DECL predefined_macros_grammar_gen | |
58 | { | |
59 | typedef LexIteratorT iterator_type; | |
60 | ||
61 | // parse the cpp_grammar and return the resulting parse tree | |
62 | static boost::spirit::classic::tree_parse_info<iterator_type> | |
63 | parse_predefined_macro (iterator_type const &first, iterator_type const &last); | |
64 | }; | |
65 | ||
66 | /////////////////////////////////////////////////////////////////////////////// | |
67 | } // namespace grammars | |
68 | } // namespace wave | |
69 | } // namespace boost | |
70 | ||
71 | #ifdef BOOST_MSVC | |
72 | #pragma warning(pop) | |
73 | #endif | |
74 | ||
75 | // the suffix header occurs after all of the code | |
76 | #ifdef BOOST_HAS_ABI_HEADERS | |
77 | #include BOOST_ABI_SUFFIX | |
78 | #endif | |
79 | ||
80 | #endif // !defined(CPP_PREDEF_MACROS_GEN_HPP_CADB6D2C_76A4_4988_83E1_EFFC6902B9A2_INCLUDED) |