我刚开始使用 Spirit X3,我有一个与我的第一次测试有关的小问题。你知道为什么这个函数返回“false”吗?
bool parse()
{
std::string rc = "a 6 literal 8";
auto iter_begin = rc.begin();
auto iter_end = rc.end();
bool bOK= phrase_parse( iter_begin, iter_end,
// ----- start parser -----
alpha >> *alnum >> "literal" >> *alnum
// ----- end parser -----
, space);
return bOK && iter_begin == iter_end;
}
我已经看到问题与我编写语法的方式有关。如果我用这个替换它,它会返回“true”
alpha >> -alnum >> "literal" >> *alnum
我正在使用 Boost 1.61.0 中包含的 Spirit 版本。
提前致谢,
森