我有一個非常簡單的解析器使用boost ::精神:的boost ::精神::氣重複解析的輸出
rule<std::string::iterator, std::string()> zeroTo255 = (string("25") >> char_('0', '5'))
| (char_('2') >> char_('0', '4') >> digit)
| (char_('1') >> repeat[2](digit))
| (char_('1', '9') >> digit) | digit;
當我嘗試解析
std::string o{"1"};
std::string s;
parse(o.begin(), o.end(), zeroTo255, s);
std::cout << o << ": " << s << std::endl;
我作爲輸出
1: 111
我明顯做錯了什麼,但是什麼?
這似乎倒退,但無論如何...感謝你的快速解答! –
@brunonery我明白你對'額外工作'的含義。我會在這個評論中解釋,但是它有點大,所以我把它作爲答案來發布:) – sehe
對不起Andrzej - 你的回答是正確的,但是sehe的更完整。我給他這個獎,好嗎? –