У меня есть следующий обработчик ошибок в нижней части моего синтаксического анализа грамматики:Ошибка отчетности в Boost Духа
qi::on_error<qi::fail>(
launch,
std::cerr << phoenix::val("Paring error in ") << spirit::_4 << std::endl
<< phoenix::construct<std::string>(spirit::_3, spirit::_2)
<< std::endl
);
Проблема заключается в том, что вход парсера не разбитым на новые линии заранее, так что в результате ошибка будет все строк в исходном коде от точки ошибки до конца. Существует ли простая альтернатива
phoenix::construct<std::string>(spirit::_3, spirit::_2)
только для печати одной строки, на которой происходит ошибка? Семантика Phoenix дает мне проблемы, если я попытаюсь просто найти '\n'
.