![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Parser Directive for Attribute Commit/Rollback (hold[])Boost , Spirit 2.5.2 , Parser Directives
|
Имя |
---|
< |
Notation
a
Семантика выражения определяется только там, где она отличается от или не определена в<UnaryParser
>.
выражение |
Семантика |
---|---|
< | Создайте новый экземпляр атрибута при разборе< |
См.Составные обозначения атрибутов.
выражение |
атрибут |
---|---|
< |
a: A --> hold[a]: A a: Unused --> hold[a]: Unused
|
![]() | Note |
---|---|
Директива< |
Сложность определяется сложностью предмета парсера<
a
>.
![]() | Note |
---|---|
Тестовый ремень для примера (примеров) ниже представлен в разделеОсновные примеры. |
Некоторые используют декларации:
using boost::spirit::qi::hold; using boost::spirit::qi::int_; using boost::spirit::qi::attr;
Использование<hold[]
>здесь гарантирует, что изменения в атрибуте, вызванные (неудавшейся) первой альтернативой, не будут видны после полного разбора.
std::vector<int> v; test_phrase_parser_attr("123", hold[int_ >> ':' >> int_] | int_ >> attr(0), v); std::cout << v[0] << "," << v[1] << std::endl; // will output: >123,0<
Статья Parser Directive for Attribute Commit/Rollback (hold[]) раздела Spirit 2.5.2 Parser Directives может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Parser Directives ::
реклама |