common_fwd.hpp 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. /*=============================================================================
  2. Copyright (c) 2006 Tobias Schwinger
  3. http://spirit.sourceforge.net/
  4. Distributed under the Boost Software License, Version 1.0. (See accompanying
  5. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6. =============================================================================*/
  7. #if !defined(BOOST_SPIRIT_TREE_COMMON_FWD_HPP)
  8. #define BOOST_SPIRIT_TREE_COMMON_FWD_HPP
  9. #include <boost/spirit/home/classic/namespace.hpp>
  10. #include <boost/spirit/home/classic/core/nil.hpp>
  11. namespace boost { namespace spirit {
  12. BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
  13. template <typename T>
  14. struct tree_node;
  15. template <typename IteratorT = char const*, typename ValueT = nil_t>
  16. struct node_iter_data;
  17. template <typename ValueT = nil_t>
  18. class node_iter_data_factory;
  19. template <typename ValueT = nil_t>
  20. class node_val_data_factory;
  21. template <typename ValueT = nil_t>
  22. class node_all_val_data_factory;
  23. template <
  24. typename IteratorT,
  25. typename NodeFactoryT = node_val_data_factory<nil_t>,
  26. typename T = nil_t
  27. >
  28. class tree_match;
  29. struct tree_policy;
  30. template <
  31. typename MatchPolicyT,
  32. typename IteratorT,
  33. typename NodeFactoryT,
  34. typename TreePolicyT,
  35. typename T = nil_t
  36. >
  37. struct common_tree_match_policy;
  38. template <typename MatchPolicyT, typename NodeFactoryT>
  39. struct common_tree_tree_policy;
  40. template <typename T>
  41. struct no_tree_gen_node_parser;
  42. template <typename T>
  43. struct leaf_node_parser;
  44. template <typename T, typename NodeParserT>
  45. struct node_parser;
  46. struct discard_node_op;
  47. struct reduced_node_op;
  48. struct infix_node_op;
  49. struct discard_first_node_op;
  50. struct discard_last_node_op;
  51. struct inner_node_op;
  52. template <typename T, typename ActionParserT>
  53. struct action_directive_parser;
  54. struct access_match_action
  55. {
  56. template <typename ParserT, typename ActionT>
  57. struct action;
  58. };
  59. struct access_node_action
  60. {
  61. template <typename ParserT, typename ActionT>
  62. struct action;
  63. };
  64. template <
  65. typename IteratorT = char const *,
  66. typename NodeFactoryT = node_val_data_factory<nil_t>,
  67. typename T = nil_t
  68. >
  69. struct tree_parse_info;
  70. BOOST_SPIRIT_CLASSIC_NAMESPACE_END
  71. }} // namespace BOOST_SPIRIT_CLASSIC_NS
  72. #endif