![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Generator RuleBoost , Spirit 2.5.2 , Nonterminal Generators
|
Имя |
---|
< |
template <typename OutputIterator, typename A1, typename A2, typename A3> struct rule;
Параметр |
Описание |
по умолчанию |
---|---|---|
< | Основной тип выходного итератора, над которым, как ожидается, будет работать правило. | Нет |
< | Или< | См. таблицу ниже. |
Вот более подробная информация о параметрах шаблона:
Параметр |
Описание |
по умолчанию |
---|---|---|
< | Указывает потребленные (стоимость к выходу) и унаследованные (аргументы) атрибуты правила. Подробнее об этом здесь:< | < |
< | Указывает генератор разграничителя правила. Укажите это, если вы хотите, чтобы правило разграничивало генерируемый выход. | < |
< | Указывает локальные переменные правила. См.< | < |
Notation
r,
r2
Правила
g
Выражение генератора
OutputIterator
Тип базового выходного итератора, над которым, как ожидается, будет работать правило.
A1
, A2
, A3
<Signature
>,<Delimiter
>или<Locals
>в любом порядке.
Семантика выражения определяется только там, где она отличается от или не определена в<Nonterminal
>.
выражение |
Описание |
---|---|
<rule<OutputIterator,A1,A2,A3> r(name);> | Декларация правил.< |
rule<OutputIterator, A1, A2, A3> r(r2);
| Копировать конструкцию правила< |
< | Назначить правило< |
< | Возвращение псевдонима< |
< | Получить копию< |
< | Определение правил |
< | Определение автоматического управления. Атрибут< |
< | Восстановите текущее название объекта правил. |
< | Установите текущее название объекта правила< |
Атрибут генератора правила<
RT
>: Потребляемый атрибут правила.<Attribute
>
Сложность определяется сложностью генератора RHS<
g
>.
![]() | Note |
---|---|
Испытательный ремень для примера (примеров) ниже представлен в разделеОсновные примеры. |
Некоторые используют декларации:
using boost::spirit::karma::rule; using boost::spirit::karma::int_; using boost::spirit::ascii::space; using boost::spirit::ascii::space_type;
Основное правило:
rule<output_iterator_type> r; r = int_(123); test_generator("123", r);
Правило с потребляемым атрибутом:
rule<output_iterator_type, int()> ra; ra = int_; test_generator_attr("123", ra, 123);
Правило с делимитером и потребляемым атрибутом:
rule<output_iterator_type, std::vector<int>(), space_type> rs; rs = *int_; std::vector<int> v; v.push_back(123); v.push_back(456); v.push_back(789); test_generator_attr_delim("123 456 789", rs, space, v);
Статья Generator Rule раздела Spirit 2.5.2 Nonterminal Generators может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Nonterminal Generators ::
реклама |