【发布时间】:2014-02-20 18:00:54
【问题描述】:
如何设置返回预定义输出而不是从我的输入文本中解析的内容的规则?
就像这个例子:GiveQuoteOrText 将首先尝试使用Quoted 将输入解析为带引号的字符串,如果失败,则应始终输出“Text!”无论输入如何。
qi::rule<Iterator, std::string()> GiveQuoteOrText;
qi::rule<Iterator, std::string()> Quoted;
Quoted %= '"' >> *(char_ - '"') > '"';
GiveQuoteOrText %= Quoted | OUTPUT("Text!"); //made up an OUTPUT command
这可能吗?有没有办法控制迭代器在完成时如何前进?
【问题讨论】:
标签: c++ parsing boost boost-spirit boost-spirit-qi