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_('.')
)
;
} |
Partager