Hi!

On Fri, Oct 22, 2010 at 10:50 AM, Vitaly Budovski <vbudovski+news@gmail.com> wrote:
qi::rule<Iterator/*, sub_grammar_skipper<Iterator> */> start;

Change this line to:
qi::rule<Iterator, void(), sub_grammar_skipper<Iterator> > start;

This should work. void() is needed if you grammar has no attributes. If your grammar expands into smth. meaningful, than you must pass the type of the associated attribute, e.g. if you grammar outputs string, you will write the line like:

qi::rule<Iterator, std::string(), sub_grammar_skipper<Iterator> > start;

With kind regards, 
Ovanes