Chris@16: /*============================================================================= Chris@16: Copyright (c) 2006 Tobias Schwinger Chris@16: http://spirit.sourceforge.net/ Chris@16: Chris@16: Distributed under the Boost Software License, Version 1.0. (See accompanying Chris@16: file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: =============================================================================*/ Chris@16: #if !defined(BOOST_SPIRIT_TREE_COMMON_FWD_HPP) Chris@16: #define BOOST_SPIRIT_TREE_COMMON_FWD_HPP Chris@16: Chris@16: #include Chris@16: #include Chris@16: Chris@16: namespace boost { namespace spirit { Chris@16: Chris@16: BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN Chris@16: Chris@16: template Chris@16: struct tree_node; Chris@16: Chris@16: template Chris@16: struct node_iter_data; Chris@16: Chris@16: template Chris@16: class node_iter_data_factory; Chris@16: Chris@16: template Chris@16: class node_val_data_factory; Chris@16: Chris@16: template Chris@16: class node_all_val_data_factory; Chris@16: Chris@16: template < Chris@16: typename IteratorT, Chris@16: typename NodeFactoryT = node_val_data_factory, Chris@16: typename T = nil_t Chris@16: > Chris@16: class tree_match; Chris@16: Chris@16: struct tree_policy; Chris@16: Chris@16: template < Chris@16: typename MatchPolicyT, Chris@16: typename IteratorT, Chris@16: typename NodeFactoryT, Chris@16: typename TreePolicyT, Chris@16: typename T = nil_t Chris@16: > Chris@16: struct common_tree_match_policy; Chris@16: Chris@16: template Chris@16: struct common_tree_tree_policy; Chris@16: Chris@16: template Chris@16: struct no_tree_gen_node_parser; Chris@16: Chris@16: template Chris@16: struct leaf_node_parser; Chris@16: Chris@16: template Chris@16: struct node_parser; Chris@16: Chris@16: struct discard_node_op; Chris@16: struct reduced_node_op; Chris@16: struct infix_node_op; Chris@16: struct discard_first_node_op; Chris@16: struct discard_last_node_op; Chris@16: struct inner_node_op; Chris@16: Chris@16: template Chris@16: struct action_directive_parser; Chris@16: Chris@16: struct access_match_action Chris@16: { Chris@16: template Chris@16: struct action; Chris@16: }; Chris@16: Chris@16: struct access_node_action Chris@16: { Chris@16: template Chris@16: struct action; Chris@16: }; Chris@16: Chris@16: template < Chris@16: typename IteratorT = char const *, Chris@16: typename NodeFactoryT = node_val_data_factory, Chris@16: typename T = nil_t Chris@16: > Chris@16: struct tree_parse_info; Chris@16: Chris@16: BOOST_SPIRIT_CLASSIC_NAMESPACE_END Chris@16: Chris@16: }} // namespace BOOST_SPIRIT_CLASSIC_NS Chris@16: Chris@16: #endif