![]() |
![]() ![]() ![]() ![]() |
![]() |
Lazy Parser (lazy)Boost , Spirit 2.5.2 , Auxiliary Parsers
|
|||||||||||||||||||||||
|
Имя |
|---|
boost::spirit::lazy // alias:
boost::spirit::qi::lazy |
Notation
fpЛживый аргумент, который оценивает<Parser>.
Семантика выражения определяется только там, где она отличается от или не определена в<Parser>.
|
выражение |
Семантика |
|---|---|
fp | Создайте ленивого парсера изЛенивого Аргумента,< |
lazy(fp) | Создайте ленивого парсера изЛенивого Аргумента,< |
|
выражение |
атрибут |
|---|---|
fp | Тип атрибута типа возврата< |
lazy(fp) | Тип атрибута типа возврата< |
Сложность парсера<lazy>определяется сложностью парсера, возвращаемого из<fp>.
![]() | Note |
|---|---|
Тестовый ремень для примера (примеров) ниже представлен в разделеОсновные примеры. |
Некоторые используют декларации:
using boost::spirit::qi::lazy; using boost::spirit::ascii::string; using boost::phoenix::val;
Использование<lazy>:
Здесь выражение phoenix::val создает функцию, которая возвращает свой аргумент при вызове. Ленивое выражение откладывает вызов этой функции в разрезе времени. В этом случае струнный парсер вызывается в действие. Все это происходит в разрезе времени.
test_parser("Hello", lazy(val(string("Hello"))));
Вышесказанное эквивалентно:
test_parser("Hello", val(string("Hello")));
Статья Lazy Parser (lazy) раздела Spirit 2.5.2 Auxiliary Parsers может быть полезна для разработчиков на c++ и boost.
:: Главная :: Auxiliary Parsers ::
реклама |