Я использую Boost, дух, чтобы разобрать, что, по существу, математическое выражение (часть текста проводится в m_formula
, который является std::string
)Рише возврата сообщения об ошибке для повышения :: дух :: й разбор
Я установил
double value;
auto first = m_formula.begin();
auto last = m_formula.end();
то для грамматики grammar
, я анализирую m_formula
:
boost::spirit::qi::phrase_parse(first, last, grammar, ascii::space, value);
в настоящее время у меня есть
if (first != last){
/*ToDo - display "invalid formula " + m_formula*/
}
Есть ли способ улучшить обработку ошибок, например, сообщить мне, какой бит формулы заставлял парсер терпеть неудачу?