![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Parser Directive Inhibiting Case Sensitivity (no_case[])Boost , Spirit 2.5.2 , Parser Directives
|
Имя |
---|
|
В таблице выше ns
представляет собой Character Encoding Namespace.
Модель no_case
является моделью его предметного анализа.
Notation
a
A Parser
.
ns
Семантика выражения определяется только там, где она отличается от или не определяется в концепции субъекта.
Выражение |
Семантика |
---|---|
| Принуждение субъекта парсера, |
См. Compound Attribute Notation.
Выражение |
Attribute |
---|---|
|
a: A --> ns::no_case[a]: A a: Unused --> ns::no_case[a]: Unused
|
Сложность определяется сложностью предмета парсера,
a
![]() | 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;
Статья Parser Directive Inhibiting Case Sensitivity (no_case[]) раздела Spirit 2.5.2 Parser Directives может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Parser Directives ::
реклама |