![]() |
![]() ![]() ![]() ![]() |
![]() |
Parser Directive Inhibiting Case Sensitivity (no_case[])Boost , Spirit 2.5.2 , Parser Directives
|
|||||||||||||||||||
|
Имя |
|---|
|
В таблице выше ns представляет собой Character Encoding Namespace.
Модель no_case является моделью его предметного анализа.
Notation
aA 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 ::
реклама |