Архив 12.2008

Boost::Spirit: Грамматики, функции и замыкания

В этой заметке я продолжу рассказывать о библиотеке Boost::Spirit, предназначенной для написания на C++ различных парсеров. В прошлой заметке я описал базовые возможности Spirit, a в этой хочу затронуть несколько возможностей, которые по моему мнению практически необходимы в случае написания сколько-нибудь сложных парсеров. Итак, эти возможности:

Читать дальше »

Boost::Xpressive - Альтернатива Boost::Regex

Не так давно я писал об использовании библиотеки Boost::Regex для регулярных выражений в C++. В этой заметке, я опять затрону эту тему, только теперь рассмотрю другой компонент Boost, предназначенный для обработки регулярных выражений: Boost::Xpresive.

Итак, во-первых, чем же он отличается от Boost::Regex:


  • Xpressive не требует линковки никаких дополнительных библиотек;

  • Утверждается, что Xpressive в среднем работает быстрее;

  • В Xpressive реглярные выражения могут описываться не только динамически (в виде строки, передаваемой в некую функцию), но и статически в виде C++ кода.

  • Регулярные выражения Xpressive могут ссылаться друг на друга, образуя целые грамматики

Читать дальше »