Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct Parser: grammar<std::string::const_iterator, boost::spirit::ascii::space_type>
- {
- public:
- Parser(ConditionTree& a_lTree):
- Parser::base_type(limit_expression),
- m_lTree(a_lTree)
- {
- using boost::spirit::qi::uint_;
- using boost::spirit::qi::_1;
- using boost::spirit::qi::_2;
- limit_expression = limit_days_operator | limit_hours_operator | limit_minutes_operator ;
- limit_days_operator = ( string("limit") > uint_ > string("days") )[ phoenix::bind( &ConditionTree::AddDaysLimitOperator, m_lTree, _2) ] ;
- limit_hours_operator = ( string("limit") > uint_ > string("hours") )[ phoenix::bind( &ConditionTree::AddHoursLimitOperator, m_lTree, _2) ] ;
- limit_minutes_operator = ( string("limit") > uint_ > string("minutes") )[ phoenix::bind( &ConditionTree::AddMinutesLimitOperator, m_lTree, _2) ] ;
- BOOST_SPIRIT_DEBUG_NODE(limit_expression);
- BOOST_SPIRIT_DEBUG_NODE(limit_days_operator);
- BOOST_SPIRIT_DEBUG_NODE(limit_hours_operator);
- BOOST_SPIRIT_DEBUG_NODE(limit_minutes_operator);
- }
- rule<Iterator, space_type> limit_expression;
- rule<Iterator, space_type> limit_days_operator;
- rule<Iterator, space_type> limit_hours_operator;
- rule<Iterator, space_type> limit_minutes_operator;
- ConditionTree& m_lTree;
- }
- void main()
- {
- ConditionTree oTree;
- Parser parser(oTree);
- std::string strTest("limit5minutes");
- std::string::const_iterator it_begin(strTest.begin());
- std::string::const_iterator it_end(strTest.end());
- bool result = phrase_parse(it_begin, it_end, parser, space);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement