sequence.hpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*==============================================================================
  2. Copyright (c) 2001-2010 Joel de Guzman
  3. Copyright (c) 2010 Eric Niebler
  4. Copyright (c) 2010 Thomas Heller
  5. Distributed under the Boost Software License, Version 1.0. (See accompanying
  6. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  7. ==============================================================================*/
  8. #ifndef BOOST_PHOENIX_STATEMENT_SEQUENCE_HPP
  9. #define BOOST_PHOENIX_STATEMENT_SEQUENCE_HPP
  10. #include <boost/phoenix/core/limits.hpp>
  11. #include <boost/phoenix/core/expression.hpp>
  12. #include <boost/phoenix/core/meta_grammar.hpp>
  13. #include <boost/proto/operators.hpp> // Included to solve #5715
  14. namespace boost { namespace phoenix
  15. {
  16. namespace expression
  17. {
  18. template <typename A0, typename A1>
  19. struct sequence
  20. : expr<proto::tag::comma, A0, A1>
  21. {};
  22. }
  23. namespace rule
  24. {
  25. struct sequence
  26. : expression::sequence<
  27. meta_grammar
  28. , meta_grammar
  29. >
  30. {};
  31. }
  32. template <typename Dummy>
  33. struct meta_grammar::case_<proto::tag::comma, Dummy>
  34. : enable_rule<rule::sequence, Dummy>
  35. {};
  36. }}
  37. #endif