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

Optional Parser (-a)

Boost , Spirit 2.5.2 , Parser Operators

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

Опциональный оператор,<-a>, является унарным оператором, который соответствует своему операнду нулю или один раз.

Header
// forwards to <boost/spirit/home/qi/operator/optional.hpp>
#include <boost/spirit/include/qi_optional.hpp>

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

Model of

Notation

a

<Parser>

Expression Semantics

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

выражение

Семантика

<-a>

Матч<a>ноль или один раз.

Attributes

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

выражение

атрибут

<-a>

a: A --> -a: optional<A>
a: Unused --> -a: Unused

Complexity

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

Example
[Note]Note

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

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

using boost::spirit::ascii::char_;
using boost::spirit::qi::lexeme;
using boost::spirit::qi::int_;
using boost::fusion::vector;
using boost::fusion::at_c;
using boost::optional;

Просмотрите информацию о человеке с именем (в кавычках) факультативный возраст<UnaryParser>и факультативный пол, разделенный запятой.

vector<std::string, optional<int>, optional<char> > attr;
test_phrase_parser_attr(
    "\"James Bond\", M"
  , lexeme['"' >> +(char_ - '"') >> '"']    // name
        >> -(',' >> int_)                   // optional age
        >> -(',' >> char_)                  // optional sex
  , attr);
// Should print: James Bond,M
std::cout << at_c<0>(attr);                 // print name
if (at_c<1>(attr))                          // print optional age
    std::cout << ',' << *at_c<1>(attr);
if (at_c<2>(attr))                          // print optional sex
    std::cout << ',' << *at_c<2>(attr);
std::cout << std::endl;



<UnaryParser>Джеймс Бонд стесняется своего возраста :-


PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 06:31:54/0.0037798881530762/0