Как настроить правило, которое возвращает заданный вывод, а не что-то проанализированное из моего входного текста?Дух Ци: Вставка предварительно заданного вывода в правило
Как этот пример: GiveQuoteOrText
сначала попытается проанализировать ввод как строку с кавычками, используя Quoted
, и если это не сработает, всегда следует выводить «Текст!». независимо от ввода.
qi::rule<Iterator, std::string()> GiveQuoteOrText;
qi::rule<Iterator, std::string()> Quoted;
Quoted %= '"' >> *(char_ - '"') > '"';
GiveQuoteOrText %= Quoted | OUTPUT("Text!"); //made up an OUTPUT command
Возможно ли это? Есть ли способ контролировать, как итератор продвигается, когда это делается?