Как определить грамматику шкипера в отдельной единице перевода? Какой тип выходного атрибута должен быть? Или я могу просто указать boost::spirit::x3::unused_type
в качестве параметра шаблона Attribute
для класса шаблона boost::spirit::x3::rule
для грамматики шкипера? Я думаю, что грамматика шкипера должна только внутренне перемещать итератор ввода вперед по пробелам, новым строкам, комментариям и т. д. Это лучше с точки зрения производительности и распределения/освобождения памяти. Как определить тип контекста для такой грамматики, который я должен предоставить макросу BOOST_SPIRIT_INSTANTIATE
?
Определение шкипера в отдельной единице перевода с помощью Boost.Spirit X3
comment
Я предполагаю, что это знак, что я должен начать смотреть на Spirit X3 :/
- person sehe   schedule 11.09.2014
Ответы (1)
Наконец я нашел решение.
using skipper_parser = x3::rule< class skipper_class, x3::unused_type const >;
- это определение типа парсера шкипера (важна const
-ность возвращаемого типа).
BOOST_SPIRIT_INSTANTIATE(skipper_parser, iterator_type, x3::unused_type)
— это реализация функции шаблона parse_rule
для шкипера в отдельной единице перевода.
person
Tomilov Anatoliy
schedule
12.09.2014