我有一个问题,IDK如何在精神X3中做no_case。 Spirit中没有__但是当我使用它时,我得到:
// If you get an error no matching function for call to 'as_parser' // here, for either p or s, then p or s is not a parser or there is // no suitable conversion from p to a parser.
有可能我很困惑,我正在尝试混合苹果和橙子(qi和x3,例如IDK x3 :: parse和qi :: parse之间的区别)
所以tl; dr我的问题是如何使这项工作:
bool parsed = phrase_parse(first, last, no_case[char_('a')], space);
(没有no_case可行)
答案 0 :(得分:2)
是的,你可能会混合x3和qi。这是最简单的例子:
<强> Live On Coliru
#include <boost/spirit/home/x3.hpp>
#include <cassert>
namespace x3 = boost::spirit::x3;
int main() {
std::string const input = "A";
auto first = input.begin(), last = input.end();
bool parsed = x3::phrase_parse(first, last, x3::no_case[x3::char_('a')], x3::space);
return parsed? 0:1;
}