2
我試圖解析單獨的形式「A + C」或「A」的附加表達式。一些測試後,我意識到,這個問題顯然是我使用可選的解析器,所以爲了舉例:在靈氣中使用可選的解析器qi
qi::rule<string::iterator, string()> Test;
Test =
(
qi::string("A")[qi::_val= qi::_1]
>> -(
qi::string("B")[qi::_val += qi::_1]
>> qi::string("C")[qi::_val += qi::_1]
)
)
;
string s1, s2;
s1 = "AB";
bool a= qi::parse(s1.begin(), s1.end(), Test, s2);
的想法是解析「A」或「ABC」,但如果S1值是「AB 「沒有'C',a的值是真的。我相信儘管我在運算符' - '之後放了括號,然後我使用了「>>」運算符,但'C'部分被認爲是可選的,而不是整個B >> C.有任何想法嗎?