From: Dan N. <dn...@sc...> - 2002-11-01 04:35:24
|
Justin Piper wrote: > Are there any examples of using these directives? My decidedly > non-functional attempt generates a pretty long list of errors, but none of > them reference my code and I'm having some trouble figuring out where I'm > going wrong. > Your code's fine. The problem is some bugs with the directives themselves. Here's a patch to fix it: Index: boost/spirit/tree/ast.hpp =================================================================== RCS file: /cvsroot/spirit/spirit/boost/spirit/tree/ast.hpp,v retrieving revision 1.14 diff -u -p -r1.14 ast.hpp --- boost/spirit/tree/ast.hpp 29 Oct 2002 04:32:39 -0000 1.14 +++ boost/spirit/tree/ast.hpp 1 Nov 2002 04:32:36 -0000 @@ -193,7 +193,7 @@ struct gen_ast_node_parser action_policy_t > policies_t; - return this->subject().parse(scan.change_policies(policies_t(scan))); + return this->subject().parse(scan.change_policies(policies_t())); } }; Index: boost/spirit/tree/common.hpp =================================================================== RCS file: /cvsroot/spirit/spirit/boost/spirit/tree/common.hpp,v retrieving revision 1.17 diff -u -p -r1.17 common.hpp --- boost/spirit/tree/common.hpp 29 Oct 2002 04:30:33 -0000 1.17 +++ boost/spirit/tree/common.hpp 1 Nov 2002 04:32:37 -0000 @@ -706,6 +706,7 @@ struct common_tree_match_policy typedef tree_match<IteratorT, NodeFactoryT> match_t; typedef IteratorT iterator_t; typedef TreePolicyT tree_policy_t; + typedef NodeFactoryT factory_t; static const match_t no_match() { return match_t(); } static const match_t empty_match() { return match_t(0, tree_policy_t::empty_node()); } Index: boost/spirit/tree/parse_tree.hpp =================================================================== RCS file: /cvsroot/spirit/spirit/boost/spirit/tree/parse_tree.hpp,v retrieving revision 1.16 diff -u -p -r1.16 parse_tree.hpp --- boost/spirit/tree/parse_tree.hpp 27 Oct 2002 21:35:46 -0000 1.16 +++ boost/spirit/tree/parse_tree.hpp 1 Nov 2002 04:32:37 -0000 @@ -129,7 +129,7 @@ struct gen_pt_node_parser action_policy_t > policies_t; - return this->subject().parse(scan.change_policies(policies_t(scan))); + return this->subject().parse(scan.change_policies(policies_t())); } }; |