Boost.Phoenix облегчает прикрепление семантических действий. Вы просто вставляете свои лямбда-выражения:
g[phoenix-lambda-expression]
Spirit.Karma предоставляет некоторым держателям Boost.Phoenix доступ к важной информации из Attrib и Context, которые в противном случае неудобно извлекать.
Spirit.Karma specific Phoenix placeholders
_1,_2,...,_N
N-й атрибут g
_val
Синтезированный атрибут прилагающего правила.
_r1,_r2,...,_rN
Н-я часть правила унаследовала атрибут.
_a,_b,...,_j
Локальные переменные прилагаемого правила (_a относятся к первой).
_pass
Назначьте false на _pass, чтобы вызвать отказ генератора.
Important
Все упомянутые выше заполнители определены в пространстве имен boost::spirit и, для вашего удобства, доступны в пространстве имен boost::spirit::karma.