boost-spirit- все статьи тега


Как правильно указать условия якорения в Spirit X3?

Я новичок в написании парсеров. Я пытаюсь создать парсер, который может извлекать почтовые индексы США из входного текста. Я создал следующие шаблоны синтаксического анализа, которые делают большую часть того, что я хочу. Я могу сопоставить 5-значные почтовые индексы или 9-значные почтовые индексы (90210-1234), как и ожидалось. Однако это не позволяет мне избегать совпадений, таких как: 246764 (возвращает 46764) 578397 (возвращается 78397) Я хотел бы уточнить некоторые привязки усл ...

Разбор HTML escape-последовательности с boost spirit

Я пытаюсь разобрать текст с помощью HTML escape-последовательностей и хочу связать этот esaceps с их эквивалентами utf8: &nbsp; - 0xC2A0 utf8 representation &shy; - 0xC2AD utf8 representation И пусть грамар решит эту задачу template <typename Iterator> struct HTMLEscape_grammar : qi::grammar<Iterator, std::string()> { HTMLEscape_grammar() : HTMLEscape_grammar::base_type(text) { htmlescapes.add("&nbsp;", 0xC2AD); htmlescapes.add("& ...

Как называется эта необычная функция шаблона C++, используемая Boost.Дух?

приведенный ниже код от импульс.Документация Spirit x3. Он использует интересный синтаксис C++, который я никогда раньше не видела, который почти невозможно описать в поисковом запросе, не зная правильной терминологии. Является ли это сокращением для прямого объявления класса? Где эта функция упоминается в стандарте C++? namespace parser { using x3::eps; using x3::lit; using x3::_val; using x3::_attr; using ascii::char_; auto set_zero = [&](auto& ctx){ _val(ctx) ...