
Hello. I'm trying to implement a very basic parser but I'm stuck at the beginning of it. The parser will be fed with input from a very basic minilanguage to execute tests. I want that the first line begins literally like this: begin TestActions But with my current implementation I can't: template <class FwdIterator> struct TestFileParser : qi::grammar<FwdIterator, Test (), qi::ascii::space_type> { TestFileParser() : TestFileParser::base_type(start_) { using namespace boost::spirit::qi; start_ = lit("begin") >> lit("TestActions"); } qi::rule<FwdIterator, Test (), qi::ascii::space_type> start_; }; Because this implementation matches "beginTestActions" as well. And I want them to be different words. If I put a space between them, my rule complains because its attribute must be a Test(). And if I put in the middel a ' ' it doesn't work anymore. What's wrong with spaces? I'm using phrase_parse with qi::ascii::space skipper. Thanks in advance.