"abc"를 추출하려면 "start abc end"와 같은 입력을 구문 분석하고 싶습니다.키워드에서 구문 분석을 중지하기 위해 boost :: spirit을 얻으려면 어떻게해야합니까?
#include <boost/spirit/include/qi.hpp>
#include <ostream>
namespace qi = boost::spirit::qi;
int main(int argc, char* argv[])
{
typedef std::string::const_iterator iterator;
qi::rule<iterator, std::string(), qi::space_type> rule =
"start" >>
qi::lexeme[+qi::char_] >>
"end";
std::string input("start abc end");
auto iter = input.begin();
std::string result;
qi::phrase_parse(iter, input.end(), rule, qi::space, result);
std::cout << "Result: " << result << std::endl;
}
출력은 "ABC 최종 결과"입니다 :
여기 내 테스트 코드입니다.
'qi :: phrase_parse'의 결과를 확인했다면 파싱에 실패했음을 알 수 있습니다. –
"end"가 일찍 소비 되었기 때문에 파서가 일치를 완료하지 못했기 때문에이를 알았습니다. –
코드를 컴파일 할 수 없습니다. 어떤 버전의 부스트를 사용하고 있습니까? – HeyYO