help on this grammar
2008-09-02 14:54:50 GMT
or_term = lexeme_d[as_lower_d[!ch_p('(')>>(mystr)[list_actor(vec1)]
>>*
(*space_p>>keyword_p("or")>>*space_p>>
mystr[list_actor(vec1)]
)>>!ch_p(')')]
];
(*space_p>>keyword_p("and")>>*space_p>>
!ch_p('(')>>mystr[list_actor(vec2)]
>>!ch_p(')'))
]
];
anded_or_term =
lexeme_d[as_lower_d[confix_p('(',
mystr[list_actor(vec3)]
>>*(
(*space_p >> keyword_p("or")
>>*space_p)>> (mystr[list_actor(vec3)])
)
,')')
]
];
query = lexeme_d[!ch_p('(') >> or_term >>(and_term|(*anded_or_term))>>!ch_p(')')];
BOOST_SPIRIT_DEBUG_NODE(query);
() from /usr/lib/libstdc++.so.6
#1 0x08050992 in boost::spirit::impl::concrete_parser<boost::spirit::contiguous<boost::spirit::inhibit_case<boost::spirit::sequence<boost::spirit::sequence<boost::spirit::sequence<boost::spirit::optional<boost::spirit::chlit<char> >, boost::spirit::action<boost::spirit::rule<boost::spirit::scanner<char const*, boost::spirit::scanner_policies<boost::spirit::skipper_iteration_policy<boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> >, boost::spirit::nil_t, boost::spirit::nil_t>, refiner::list_actor> > ;, boost::spirit::kleene_star<boost::spirit::sequence<boost::spirit::sequence<boost::spirit::sequence<boost::spirit::kleene_star<boost::spirit::space_parser>, boost::spirit::contiguous<boost::spirit::sequence<boost::spirit::chseq<char const*>, boost::spirit::negated_empty_match_parser<boost::spirit::chset<char> > > > >, boost::spirit::kleene_star<boost::spirit::space_parser> >, boost::spirit::action<boost::spirit::rule<boost::spirit::scanner<char const*, boost::spirit::scanner_policies<boost::spirit::skipper_iteration_policy<boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> >, boost::spirit::nil_t, boost::spirit::nil_t>, refiner::list_actor> > > >, boo st::spirit::optional<boost::spirit::chlit<char> > > > >, boost::spirit::scanner<char const*, boost::spirit::scanner_policies<boost::spirit::skipper_iteration_policy<boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> >, boost::spirit::nil_t>::do_parse_virtual (this=0x9e17ad8, scan= <at> 0xbfde9e74)
at /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/ext/new_allocator.h:104
#2 0x0804cc98 in boost::spirit::impl::concrete_parser<boost::spirit::contiguous<boost::spirit::sequence<boost::spirit::sequence<boost::spirit::sequence<boost::spirit::optional<boost::spirit::chlit<char> >, boost::spirit::rule<boost::spirit::scanner<char const*, boost::spirit::scanner_policies<boost::spirit::skipper_iteration_policy<b oost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> >, boost::spirit::nil_t, boost::spirit::nil_t> >, boost::spirit::alternative<boost::spirit::rule<boost::spirit::scanner<char const*, boost::spirit::scanner_policies<boost::spirit::skipper_iteration_policy<boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> >, boost::spirit::nil_t, boost::spirit::nil_t>, boost::spirit::kleene_star<boost::spirit::rule<boost::spirit::scanner<char const*, boost::spirit::scanner_policies<boost::spirit::skipper_iteration_policy<boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> >, boost::spirit::nil_t, boost::spirit::nil_t> > > >, boost::spirit::optional<boost::spirit::chlit<char> > > >, boost::spirit::scanner<char const*, boost::spirit::scanner_ policies<boost::spirit::skipper_iteration_policy<boost::spirit::iteration_policy>, boost::spirit::match_policy, boost::spirit::action_policy> >, boost::spirit::nil_t>::do_parse_virtual (this=0x9e168a8, scan= <at> 0xbfde9fa4)
at /usr/local/include/boost-1_35/boost/spirit/core/non_terminal/impl/rule.ipp:189
#3 0x0804a9ad in main ()
at /usr/local/include/boost-1_35/boost/spirit/core/non_terminal/impl/rule.ipp:189
------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________ Spirit-general mailing list Spirit-general <at> lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spirit-general
RSS Feed