1 /*============================================================================= 2 Boost.Wave: A Standard compliant C++ preprocessor library 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(BOOST_CPP_LITERAL_GRAMMAR_GEN_HPP_67794A6C_468A_4AAB_A757_DEDDB182F5A0_INCLUDED) 12 #define BOOST_CPP_LITERAL_GRAMMAR_GEN_HPP_67794A6C_468A_4AAB_A757_DEDDB182F5A0_INCLUDED 13 14 #include <boost/wave/wave_config.hpp> 15 #include <boost/wave/grammars/cpp_value_error.hpp> 16 17 // this must occur after all of the includes and before any code appears 18 #ifdef BOOST_HAS_ABI_HEADERS 19 #include BOOST_ABI_PREFIX 20 #endif 21 22 // suppress warnings about dependent classes not being exported from the dll 23 #ifdef BOOST_MSVC 24 #pragma warning(push) 25 #pragma warning(disable : 4251 4231 4660) 26 #endif 27 28 /////////////////////////////////////////////////////////////////////////////// 29 namespace boost { 30 namespace wave { 31 namespace grammars { 32 33 /////////////////////////////////////////////////////////////////////////////// 34 // 35 // cpp_intlit_grammar_gen template class 36 // 37 // This template helps separating the compilation of the intlit_grammar 38 // class from the compilation of the expression_grammar. This is done 39 // to safe compilation time. 40 // 41 /////////////////////////////////////////////////////////////////////////////// 42 template <typename TokenT> 43 struct BOOST_WAVE_DECL intlit_grammar_gen { 44 45 static uint_literal_type evaluate(TokenT const &tok, bool &is_unsigned); 46 }; 47 48 /////////////////////////////////////////////////////////////////////////////// 49 // 50 // cpp_chlit_grammar_gen template class 51 // 52 // This template helps separating the compilation of the chlit_grammar 53 // class from the compilation of the expression_grammar. This is done 54 // to safe compilation time. 55 // 56 /////////////////////////////////////////////////////////////////////////////// 57 template <typename IntegralResult, typename TokenT> 58 struct BOOST_WAVE_DECL chlit_grammar_gen { 59 60 static IntegralResult evaluate(TokenT const &tok, value_error& status); 61 }; 62 63 /////////////////////////////////////////////////////////////////////////////// 64 } // namespace grammars 65 } // namespace wave 66 } // namespace boost 67 68 #ifdef BOOST_MSVC 69 #pragma warning(pop) 70 #endif 71 72 // the suffix header occurs after all of the code 73 #ifdef BOOST_HAS_ABI_HEADERS 74 #include BOOST_ABI_SUFFIX 75 #endif 76 77 #endif // !defined(BOOST_CPP_LITERAL_GRAMMAR_GEN_HPP_67794A6C_468A_4AAB_A757_DEDDB182F5A0_INCLUDED) 78