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

Parser

Boost , Spirit 2.5.2 , Parser Concepts

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

Парсерявляется наиболее фундаментальным понятием. Парсер имеет функцию члена,<parse>, которая принимает первую последнюю<ForwardIterator>пару и возвращает кипение в результате. Итераторы ограничивают анализируемые данные. Функция члена Парсера<parse>возвращается<true>, если парс увенчается успехом, и в этом случае первый итератор продвигается соответственно. Каждый парсер может представлять собой определенный шаблон или алгоритм, или это может быть более сложный парсер, сформированный как композиция других парсеров.

Notation

p

А<Parser>.

P

Тип<Parser>.

Iter

<ForwardIterator>тип.

f, l

<ForwardIterator>. первая/последняя пара итераторов.

Context

Тип контекста парсера.

context

Контекст парсера, или<unused>.

skip

Скип Парсер, или<unused>.

attrib

Совместимый атрибут, или<unused>.

Valid Expressions

В приведенных ниже выражениях поведение парсера<p>и то, как<skip>и<attrib>обрабатываются<p>, остаются неопределенными в базовой концепции<Parser>. Они конкретизируются в последующих, более утонченных понятиях и их фактических моделях.

Для любого Парсера должны быть действительны следующие выражения:

выражение

Семантика

Тип возврата

<
p.parse(f,l,context,skip,attr)
>

Сопоставьте входную последовательность с<f>. Возвращение<true>в случае успеха, в противном случае возвращение<false>

.

<bool>

<p.what(context)>

Получить информацию о парсере.

<info>

Type Expressions

выражение

Описание

<P::templateattribute<Context,Iter>::type>

Предполагаемый атрибут Парсера.

<traits::is_parser<P>::type>

Метафункция, которая оценивает до<mpl::true_>, если определенный тип,<P>является парсером,<mpl::false_>в противном случае (см.MPL Булевая постоянная).

Postcondition

По возвращении из<p.parse>должны соблюдаться следующие условия:

  • В успешном матче<f>позиционируется один мимо последнего совпадающего персонажа / токена.
  • В случае неудачного матча, если парсер<skip>равен<unused>,<f>восстанавливается до входа в исходную позицию.
  • В случае неудачного матча, если парсер<skip>не<unused>,<f>позиционируется один мимо последнего сопоставления символа / токена<skip>.
  • В случае неудачного матча<attrib>состояние не определено.
  • Никаких пост-скипов: отслеживание<skip>символов / токенов не будет пропущено.
Models

Все парсеры в духе. Ци — это модели.Парсерконцепция.


PrevUpHomeNext

Статья Parser раздела Spirit 2.5.2 Parser Concepts может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 03:50:00/0.025906801223755/1