![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Expectation Parser (a > b)Boost , Spirit 2.5.2 , Parser Operators
|
выражение |
Семантика |
---|---|
< | Матч< |
См.Составные обозначения атрибутов.
выражение |
атрибут |
---|---|
< |
a: A, b: B --> (a > b): tuple<A, B> a: A, b: Unused --> (a > b): A a: Unused, b: B --> (a > b): B a: Unused, b: Unused --> (a > b): Unused a: A, b: A --> (a > b): vector<A> a: vector<A>, b: A --> (a > b): vector<A> a: A, b: vector<A> --> (a > b): vector<A> a: vector<A>, b: vector<A> --> (a > b): vector<A>
|
Общая сложность парсера ожиданий определяется суммой сложностей его элементов. Сложность самого оператора ожидания — O(N), где N — число элементов в последовательности.
![]() | Note |
---|---|
Тестовый ремень для примера (примеров) ниже представлен в разделеОсновные примеры. |
Некоторые используют декларации:
using boost::spirit::ascii::char_; using boost::spirit::qi::expectation_failure;
Код ниже использует оператор ожидания, чтобы бросить<expectation_failure
>с преднамеренной ошибкой разбора, когда<"o"
>ожидается и<"i"
>то, что находится во входе. Блок<catch
>печатает информацию, связанную с ошибкой. Примечание: Это низкоуровневый код, который демонстрируетголый металл.. Как правило, вы используете контроллер ошибок для устранения ошибки.
try { test_parser("xi", char_('x') > char_('o')); // should throw an exception } catch (expectation_failure<char const*> const& x) { std::cout << "expected: "; print_info(x.what_); std::cout << "got: \"" << std::string(x.first, x.last) << '"' << std::endl; }
Приведенный выше код будет печатать:
expected: tag: literal-char, value: o got: "i"
Статья Expectation Parser (a > b) раздела Spirit 2.5.2 Parser Operators может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Parser Operators ::
реклама |