【发布时间】:2014-10-06 17:20:33
【问题描述】:
在我的解析器中,有时语法只匹配输入字符串的第一部分。这似乎是短语解析()的正常行为,但不是我在我的应用程序中寻找的。p>
如何要求整个输入字符串与语法匹配才能成功解析,而不是在不消耗所有输入字符串的较短匹配项上返回成功?
【问题讨论】:
标签: boost-spirit boost-spirit-qi
在我的解析器中,有时语法只匹配输入字符串的第一部分。这似乎是短语解析()的正常行为,但不是我在我的应用程序中寻找的。p>
如何要求整个输入字符串与语法匹配才能成功解析,而不是在不消耗所有输入字符串的较短匹配项上返回成功?
【问题讨论】:
标签: boost-spirit boost-spirit-qi
最后只需要qi::eoi:
bool ok = qi::phrase_parse(f, l, grammar >> eoi, skipper);
这也适用于丢弃与所有输入不匹配的分支:
myrule = (legA >> eoi) | (legB >> eoi) | (legC >> eoi);
另见
【讨论】: