cpp_literal_grammar_gen.hpp 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /*=============================================================================
  2. Boost.Wave: A Standard compliant C++ preprocessor library
  3. http://www.boost.org/
  4. Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost
  5. Software License, Version 1.0. (See accompanying file
  6. LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  7. =============================================================================*/
  8. #if !defined(CPP_LITERAL_GRAMMAR_GEN_HPP_67794A6C_468A_4AAB_A757_DEDDB182F5A0_INCLUDED)
  9. #define CPP_LITERAL_GRAMMAR_GEN_HPP_67794A6C_468A_4AAB_A757_DEDDB182F5A0_INCLUDED
  10. #include <boost/wave/wave_config.hpp>
  11. #include <boost/wave/grammars/cpp_value_error.hpp>
  12. // this must occur after all of the includes and before any code appears
  13. #ifdef BOOST_HAS_ABI_HEADERS
  14. #include BOOST_ABI_PREFIX
  15. #endif
  16. // suppress warnings about dependent classes not being exported from the dll
  17. #ifdef BOOST_MSVC
  18. #pragma warning(push)
  19. #pragma warning(disable : 4251 4231 4660)
  20. #endif
  21. ///////////////////////////////////////////////////////////////////////////////
  22. namespace boost {
  23. namespace wave {
  24. namespace grammars {
  25. ///////////////////////////////////////////////////////////////////////////////
  26. //
  27. // cpp_intlit_grammar_gen template class
  28. //
  29. // This template helps separating the compilation of the intlit_grammar
  30. // class from the compilation of the expression_grammar. This is done
  31. // to safe compilation time.
  32. //
  33. ///////////////////////////////////////////////////////////////////////////////
  34. template <typename TokenT>
  35. struct BOOST_WAVE_DECL intlit_grammar_gen {
  36. static uint_literal_type evaluate(TokenT const &tok, bool &is_unsigned);
  37. };
  38. ///////////////////////////////////////////////////////////////////////////////
  39. //
  40. // cpp_chlit_grammar_gen template class
  41. //
  42. // This template helps separating the compilation of the chlit_grammar
  43. // class from the compilation of the expression_grammar. This is done
  44. // to safe compilation time.
  45. //
  46. ///////////////////////////////////////////////////////////////////////////////
  47. template <typename IntegralResult, typename TokenT>
  48. struct BOOST_WAVE_DECL chlit_grammar_gen {
  49. static IntegralResult evaluate(TokenT const &tok, value_error& status);
  50. };
  51. ///////////////////////////////////////////////////////////////////////////////
  52. } // namespace grammars
  53. } // namespace wave
  54. } // namespace boost
  55. #ifdef BOOST_MSVC
  56. #pragma warning(pop)
  57. #endif
  58. // the suffix header occurs after all of the code
  59. #ifdef BOOST_HAS_ABI_HEADERS
  60. #include BOOST_ABI_SUFFIX
  61. #endif
  62. #endif // !defined(CPP_LITERAL_GRAMMAR_GEN_HPP_67794A6C_468A_4AAB_A757_DEDDB182F5A0_INCLUDED)