• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*=============================================================================
2     Copyright (c) 2006 Tobias Schwinger
3     http://spirit.sourceforge.net/
4 
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 #if !defined(BOOST_SPIRIT_TREE_COMMON_FWD_HPP)
9 #define BOOST_SPIRIT_TREE_COMMON_FWD_HPP
10 
11 #include <boost/spirit/home/classic/namespace.hpp>
12 #include <boost/spirit/home/classic/core/nil.hpp>
13 
14 namespace boost { namespace spirit {
15 
16 BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
17 
18     template <typename T>
19     struct tree_node;
20 
21     template <typename IteratorT = char const*, typename ValueT = nil_t>
22     struct node_iter_data;
23 
24     template <typename ValueT = nil_t>
25     class node_iter_data_factory;
26 
27     template <typename ValueT = nil_t>
28     class node_val_data_factory;
29 
30     template <typename ValueT = nil_t>
31     class node_all_val_data_factory;
32 
33     template <
34         typename IteratorT,
35         typename NodeFactoryT = node_val_data_factory<nil_t>,
36         typename T = nil_t
37     >
38     class tree_match;
39 
40     struct tree_policy;
41 
42     template <
43         typename MatchPolicyT,
44         typename IteratorT,
45         typename NodeFactoryT,
46         typename TreePolicyT,
47         typename T = nil_t
48     >
49     struct common_tree_match_policy;
50 
51     template <typename MatchPolicyT, typename NodeFactoryT>
52     struct common_tree_tree_policy;
53 
54     template <typename T>
55     struct no_tree_gen_node_parser;
56 
57     template <typename T>
58     struct leaf_node_parser;
59 
60     template <typename T, typename NodeParserT>
61     struct node_parser;
62 
63     struct discard_node_op;
64     struct reduced_node_op;
65     struct infix_node_op;
66     struct discard_first_node_op;
67     struct discard_last_node_op;
68     struct inner_node_op;
69 
70     template <typename T, typename ActionParserT>
71     struct action_directive_parser;
72 
73     struct access_match_action
74     {
75         template <typename ParserT, typename ActionT>
76         struct action;
77     };
78 
79     struct access_node_action
80     {
81         template <typename ParserT, typename ActionT>
82         struct action;
83     };
84 
85     template <
86         typename IteratorT = char const *,
87         typename NodeFactoryT = node_val_data_factory<nil_t>,
88         typename T = nil_t
89     >
90     struct tree_parse_info;
91 
92 BOOST_SPIRIT_CLASSIC_NAMESPACE_END
93 
94 }} // namespace BOOST_SPIRIT_CLASSIC_NS
95 
96 #endif
97