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

Parser Directive Inhibiting Case Sensitivity (no_case[])

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

Директива no_case[] не потребляет никаких входов. Фактическое соответствие осуществляется его субъектом-парсером. Цель состоит в том, чтобы заставить соответствие предмета «парсер» (и всех его детей) быть бесчувственным.

Header
// forwards to <boost/spirit/home/qi/directive/no_case.hpp>
#include <boost/spirit/include/qi_no_case.hpp>

Также см. Include Structure.

Namespace

Имя

ns::no_case

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

Model of

Модель no_case является моделью его предметного анализа.

Expression Semantics

Семантика выражения определяется только там, где она отличается от или не определяется в концепции субъекта.

Выражение

Семантика

n::no_case[a]

Принуждение субъекта парсера, a (и всех его детей) к случайным нечувствительным

Attributes

См. Compound Attribute Notation.

Выражение

Attribute

n::no_case[a]

a: A --> ns::no_case[a]: A
a: Unused --> ns::no_case[a]: Unused

Complexity

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

Example
[Note]Note

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

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

using boost::spirit::ascii::no_case;
using boost::spirit::ascii::char_;
using boost::spirit::ascii::alnum;
using boost::spirit::qi::symbols;

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

test_parser("X", no_case[char_('x')]);
test_parser("6", no_case[alnum]);

Более сложный случай использования no_case[] в сочетании с таблицей символов (более подробную информацию см. symbols<>):

symbols<char, int> sym;
sym.add
    ("apple", 1)    // symbol strings are added in lowercase...
    ("banana", 2)
    ("orange", 3)
;
int i;
// ...because sym is used for case-insensitive parsing
test_parser_attr("Apple", no_case[ sym ], i);
std::cout << i << std::endl;
test_parser_attr("ORANGE", no_case[ sym ], i);
std::cout << i << std::endl;


PrevUpHomeNext

Статья Parser Directive Inhibiting Case Sensitivity (no_case[]) раздела Spirit 2.5.2 Parser Directives может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 07:34:58/0.028449058532715/1