boost spirit (pb avec les espaces)
Bonjour,
J'ai utilisé boost spirit pour lire et afficher une liste de chaines de caractères, mon problème c'est que le parseur ne prend pas en compte les espaces. voici un bout de code qui explique qu'est ce que j'ai fais :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
bool PlanParser::parse(base_iterator_type first, base_iterator_type last)
{
// using boost::spirit::space_p;
bool r = boost::spirit::qi::/*phrase_*/parse(
first,
last,
getParser(),
// ,boost::spirit::qi::char_('!')//eoi//space
// boost::spirit::space
);
if (first != last)
return false;
return r;
}
boost::spirit::qi::rule<base_iterator_type> PlanParser::getParser()
{
return *((+(boost::spirit::qi::char_ - boost::spirit::qi::char_(':')))[newPlage]//[boost::bind(&PlanParser::newPlage, this, _1)]
>> boost::spirit::qi::char_(':')
>> (boost::spirit::qi::int_ >> boost::spirit::qi::char_('/') >> boost::spirit::qi::int_ >> boost::spirit::qi::char_('/') >> boost::spirit::qi::int_ )[startDate]//[boost::bind(&PlanParser::newPlage, this, _1)]
>> boost::spirit::qi::char_('-')>> boost::spirit::qi::char_('>')
>> (boost::spirit::qi::int_ >> boost::spirit::qi::char_('/') >> boost::spirit::qi::int_ >> boost::spirit::qi::char_('/') >> boost::spirit::qi::int_ )[endDate]//[boost::bind(&PlanParser::newPlage, this, _1)]
>> boost::spirit::qi::char_(':')
>> (+(boost::spirit::qi::char_- boost::spirit::qi::char_('.')))[name]
>>boost::spirit::qi::char_('.')
)
;
} |
J'attend votre aide
Merci