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

String Parsers (string, lit)

Boost , Spirit 2.5.2 , String Parsers

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

string parser соответствует строке символов. string parser является имплицитным лексемом: skip parser не применяется между символами строки. string parser имеет ассоциированный Character Encoding Namespace. Это необходимо при выполнении основных операций, таких как ингибирование чувствительности кейса. Примеры:

string("Hello")
string(L"Hello")
string(s) // s is a std::string

lit, как string, также соответствует строке символов. Основное различие заключается в том, что lit не синтезирует атрибут. Простая строка вроде "hello" или std::basic_string эквивалентна lit. Примеры:

"Hello"
lit("Hello")
lit(L"Hello")
lit(s) // s is a std::string
Header
// forwards to <boost/spirit/home/qi/string/lit.hpp>
#include <boost/spirit/include/qi_lit.hpp>
Namespace

Имя

boost::spirit::lit // alias: rise::spirit::qi::lit

ns::string

В таблице выше ns представляет собой Character Encoding Namespace.

Model of

Notation

s

A String или Lazy Argument, который оценивает String.

ns

A Character Encoding Namespace.

Expression Semantics

Semantics of an expression is defined only where it differs from, or is not defined in PrimitiveParser.

Выражение

Семантика

s

Создать строку из строки, s.

lit(s)

Создать строку из строки, s.

n::string(s)

Создайте строковый парсер с ns кодированием из строки, s.

Attributes

Выражение

Attribute

s

неиспользуется

lit(s)

неиспользуется

n::string(s)

std::basic_string<T> где T является основным типом символов s.

Complexity

O(N)

где N - это число символов в строке, которое должно быть парсировано.

Example
[Note]Note

Испытательный узел для примера (примеров) ниже представлен в разделе Basics examples.

Некоторые используют заявления:

using boost::spirit::qi::lit;
using boost::spirit::ascii::string;

Основные литературы:

test_parser("boost", "boost");          // plain literal
test_parser("boost", lit("boost"));     // explicit literal
test_parser("boost", string("boost"));  // ascii::string

Из std::string

std::string s("boost");
test_parser("boost", s);            // direct
test_parser("boost", lit(s));       // explicit
test_parser("boost", string(s));    // ascii::string

Ленивые строки с использованием Phoenix

namespace phx = boost::phoenix;
test_parser("boost", phx::val("boost"));            // direct
test_parser("boost", lit(phx::val("boost")));       // explicit
test_parser("boost", string(phx::val("boost")));    // ascii::string


PrevUpHomeNext

Статья String Parsers (string, lit) раздела Spirit 2.5.2 String Parsers может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: String Parsers ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 21:13:13/0.0071508884429932/0