Boost::Spirit и друзья. Краткий экскурс. Часть 5.
BOOST_FUSION_ADAPT_STRUCT — автоматическое распространение атрибутов для пользовательских типов.
Tags
BOOST_FUSION_ADAPT_STRUCT — автоматическое распространение атрибутов для пользовательских типов.
Попробуем посмотреть, как можно с минимальными усилиями строить на выходе парсера иерархические структуры данных, такие как абстрактные синтаксические деревья. Деревья разбора и абстрактные синтаксические деревья — концепции.
Основное время в этой части я посвящу описанию библиотеки boost::phoenix, которая в некоторых случаях очень сильно помогает облегчить написание семантических правил для грамматик, написанных на Спирите. Далее, увидим применение этого товарища на практике.
Учимся извлекать из примеров пользу. Новые друзья — атрибуты. Вот и вторая часть повествования.
Знакомство с фреймворком Spirit::Qi. Несмотря на то, что данная статья имеет в большей степени ознакомительный характер, предполагается, что читатель знает (ну или хотя бы краем уха слышал) о таких вещах, как C++, шаблонное метапрограммирование, Boost.