Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Parser Directive Re-Establishing Skipping (skip[])

Boost , Spirit 2.5.2 , Parser Directives

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
Description

<skip>директива является обратной<lexeme>или [qi_no_skip]<no_skip[]>. В то время как директива<lexeme>отключает пропуск белого пространства, директива<skip>снова включает его. Это просто делается путем обертывания деталей внутри директивы<skip>:

skip[a]

Кроме того, в директиву<skip>можно включить пропускной парсер:

skip(p)[a] // Use `p` as a skipper for parsing `a`

Это позволяет:

  • Выполняйте локализованный парсинг уровня фразы, выполняя парсинг уровня персонажа.
  • Замените текущего шкипера в любом месте на совершенно другого шкипера, выполняя анализ уровня фразы.
Header
// forwards to <boost/spirit/home/qi/directive/skip.hpp>
#include <boost/spirit/include/qi_skip.hpp>

См. такжеВключить структуру.

Namespace

Имя

<boost::spirit::skip// alias: boost::spirit::qi::skip>

Model of

Notation

a

<Parser>.

Expression Semantics

Семантика выражения определяется только там, где она отличается от или не определена в<UnaryParser>.

выражение

Семантика

<skip[a]>

Восстановить шкипера, который был подавлен лексемой или no_skip

<skip(p)[a]>

Использование<p>в качестве шкипера для разбора<a>

Attributes

См.Составные обозначения атрибутов.

выражение

атрибут

<skip[a]>

<
a:A-->skip[a]:A
a:Unused-->skip[a]:Unused
>

<skip(p)[a]>

<
a:A-->skip(p)[a]:A
a:Unused-->skip(p)[a]:Unused
>

Complexity

Сложность определяется сложностью предмета парсера<a>.

Example
[Note]Note

Тестовый ремень для примера (примеров) ниже представлен в разделеОсновные примеры.

Некоторые используют декларации:

using boost::spirit::qi::skip;
using boost::spirit::qi::int_;
using boost::spirit::ascii::space;

Простое использование<skip[]>:

Явно укажите пропуск парсера. Этот парсер анализирует ограниченные числа, игнорируя пространства.

test_parser("1, 2, 3, 4, 5", skip(space)[int_ >> *(',' >> int_)]);


PrevUpHomeNext

Статья Parser Directive Re-Establishing Skipping (skip[]) раздела Spirit 2.5.2 Parser Directives может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Parser Directives ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 20:16:09/0.0086450576782227/1