1
나는boost :: spirit :: qi 왜 재귀 파서가 예상대로 작동하지 않습니까?
a_end
a_b_end
a_b_c_end
등의 입력을 구문 분석 아래의 문법을 싶습니다하지만 그것은 단지 a_end
을 구문 분석하고 하나 이상의 _
아무것도에 실패합니다. 문법은 다음과 같습니다.
template < typename Iterator >
struct recursive_parser : qi::grammar<Iterator>
{
qi::rule<Iterator> start;
qi::rule<Iterator> end;
recursive_parser() : recursive_parser::base_type(start)
{
using namespace qi;
end = string("_end") | start;
start = +(char_ - '_') >> end;
}
};
규칙이 반복적으로 사용되도록 설계되지 않았거나 더 명확한 것이 누락 되었습니까?
그래, 내 나쁜. 감사. – John