Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Spirit V2.3

Boost , Spirit 2.5.2 , What's New

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
What's changed in Spirit.Qi and Spirit.Karma from V2.2 (Boost V1.42.0) to V2.3 (Boost V1.43.0)
New Features
  • Точка настройки transform_attribute теперь должна реализовать третью функцию: void fail(Expos&), которая обычно ничего не сделает. Эта функция будет называться всякий раз, когда правая сторона правила (или встроенный парсер attr_cast) терпит неудачу. Это изменение затрагивает только Qi. Подробнее см. описание traits::transform_attribute.
  • Добавлена поддержка последовательностей атрибутов, созданных с помощью BOOST_FUSION_ADAPT_CLASS и BOOST_FUSION_ADAPT_CLASS_NAMED. Эта поддержка требует включения нового файла заголовка: #include <boost/spirit/>//support_adapt_class_attributes.hpp>.
  • Добавлено карма::поток_итератор как аналог qi::istream_iterator (см. новый файл заголовка:#>поддержка>>><>>>>.
  • Добавлено qi::hold, что позволяет убедиться, что встроенный парсер не касается переданного атрибута в случае, если он потерпит неудачу.
  • Добавлено qi::no_skip директива, которая эквивалентна qi::>lexeme, за исключением того, что она не является предварительной скипкой.
  • Добавлено карма::no_delimit директива, которая эквивалентна karma::verbatim, за исключением того, что она не выполняет постограниченный шаг.
  • Добавлена новая политика ввода_iterator для multi_pass Iterator framework (названная buffering_input_iterator), позволяющая обертывать входные итераторы, которые не хранят последний символ, читаемый из входного документа (например, std::istream_iterator). Теперь это используется в качестве политики ввода по умолчанию.
Bug Fixes
  • Последовательности (в Qi и Karma) теперь могут иметь компонент, не имеющий атрибута, даже как их последний элемент.
  • Последовательности (в Qi и Karma) теперь могут взять одну последовательность атрибутов элемента в качестве их атрибута.
  • Конструкции, такие как karma::buffer[karma::buffer[.]] больше не приводят к двойной буферизации. То же самое верно, если альтернатива обернута в директиву karma::buffer[] (например: buffer[a] | b).
  • Spirit.Karma выходной итератор (который используется внутри, но также подвергается воздействию при использовании потокового API) теперь правильно копируется (благодаря Jonas Persson за отчетность по этому вопросу).
  • По умолчанию multi_pass итератор теперь используется с входными итераторами, которые не хранят последний символ, читаемый из ввода (например, std::istream_iterator). Спасибо Ларри Эвансу и Питеру Шуллеру за независимое сообщение об этой проблеме.
  • Директива karma::omit[] теперь не принимает произвольный тип атрибутов больше.
  • Spirit.Karma предикаты (предназначенные и непредназначенные) и директива karma::omit[] теперь полностью отключить выход вместо перехвата в буфер, который был отброшен как раньше.
  • Исправлено карма::правило, чтобы правильно обрабатывать необязательные атрибуты.
What's changed in Spirit.Lex from V2.2 (Boost V1.42.0) to V2.3 (Boost V1.43.0)
New Lexer Features
  • Библиотека больше не минимизирует сгенерированные таблицы лексера для динамических лексеров по умолчанию. Сгенерированные таблицы теперь будут сведены к минимуму только для статических лексеров.
  • Функция lexer<>::init_dfa() в настоящее время занимает один боолеиновый параметр (который не соответствует false), позволяющий заставить минимизацию сгенерированных таблиц lexer.

PrevUpHomeNext

Статья Spirit V2.3 раздела Spirit 2.5.2 What's New может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: What's New ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 20:38:13/0.009087085723877/1