bazı denemeler sonra, ben özel bir kaptan belirtmek için bir yol bulduk ve burada açıklayacağım:
template<typename Iterator>
struct pl0_skipper : public qi::grammar<Iterator> {
pl0_skipper() : pl0_skipper::base_type(skip, "PL/0") {
skip = ascii::space | ('{' >> *(qi::char_ - '}') >> '}');
}
qi::rule<Iterator> skip;
};
template<typename Iterator, typename Skipper = pl0_skipper<Iterator>>
struct pl0_grammar : public qi::grammar<Iterator, Skipper> {
/* The rules use our skipper */
qi::rule<Iterator, Skipper> start;
qi::rule<Iterator, Skipper> block;
qi::rule<Iterator, Skipper> statement;
};
gizli yalan ayrıştırıcı çağrısında. Bunu kullanarak parse_phrase
ayrıştırmak istiyor nedense, için, bir kaptan dilbilgisi nesnesi vermek zorunda. Bunun farkında değildim:
Bu çalışır.
Eğer Boost dağılımı ile gelen örnekler baktım mı? –