Boost.Spirit:为什么 phrase_parse 在解析 eol 时表现不同?
Boost.Spirit: Why does phrase_parse behave differently to parse when parsing eol?
为什么 qi::phrase_parse
return false
qi::eol
?我希望它像 qi::parse
那样 return true
。
using namespace boost::spirit;
const std::string s = "\n";
auto it = s.begin();
bool match = qi::phrase_parse(it, s.end(), qi::eol, ascii::space);
std::cout << std::boolalpha << match << '\n';
it = s.begin();
match = qi::parse(it, s.end(), qi::eol);
std::cout << std::boolalpha << match << '\n';
结果:
false
true
船长跳过空格。
空格包括 eol
.
因此,eol
永远不会匹配。
提示: 使用 blank
作为空格 除了 eol
为什么 qi::phrase_parse
return false
qi::eol
?我希望它像 qi::parse
那样 return true
。
using namespace boost::spirit;
const std::string s = "\n";
auto it = s.begin();
bool match = qi::phrase_parse(it, s.end(), qi::eol, ascii::space);
std::cout << std::boolalpha << match << '\n';
it = s.begin();
match = qi::parse(it, s.end(), qi::eol);
std::cout << std::boolalpha << match << '\n';
结果:
false
true
船长跳过空格。
空格包括 eol
.
因此,eol
永远不会匹配。
提示: 使用 blank
作为空格 除了 eol