![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Stream Based Parser APIBoost , Spirit 2.5.2 , Parser API
|
Имя |
---|
|
|
|
|
namespace boost { namespace spirit { namespace qi { template <typename Expr> inline <unspecified> match( Expr const& xpr); template <typename Expr , typename Attr1, typename Attr2, ..., typename AttrN> inline <unspecified> match( Expr const& xpr , Attr1& attr1, Attr2& attr2, ..., AttrN& attrN); template <typename Expr, typename Skipper> inline <unspecified> phrase_match( Expr const& expr , Skipper const& s , BOOST_SCOPED_ENUM(skip_flag) post_skip = skip_flag::postskip); template <typename Expr, typename Skipper , typename Attr1, typename Attr2, ..., typename AttrN> inline <unspecified> phrase_match( Expr const& expr , Skipper const& s , Attr1& attr1, Attr2& attr2, ..., AttrN& attrN); template <typename Expr, typename Skipper , typename Attr1, typename Attr2, ..., typename AttrN> inline <unspecified> phrase_match( Expr const& expr , Skipper const& s , BOOST_SCOPED_ENUM(skip_flag) post_skip , Attr1& attr1, Attr2& attr2, ..., AttrN& attrN); }}}
Spirit.Qi Парсер API функции, основанные на автоматическом создании парсерного типа:
namespace boost { namespace spirit { namespace qi { template <typename Attr> inline <unspecified> match( Attr& attr); template <typename Attr, typename Skipper> inline <unspecified> phrase_match( Attr& attr , Skipper const& s , BOOST_SCOPED_ENUM(skip_flag) post_skip = skip_flag::postskip); }}}
Все вышеперечисленные функции возвращают стандартный экземпляр манипулятора потока IO (см. Manipulators), который при перемещении из потока ввода приведет к выравниванию входного потока с использованием встроенного выражения Spirit.Qi. Любая ошибка (или неудачный парс), возникающая во время вызова Spirit.Qi, будет отражена в флаге состояния потоков (std::ios_base::failbit
будет установлен).
Максимальное количество аргументов ограничено препроцессорной константой SPIRIT_ARGUMENTS_LIMIT
. Эта константа по умолчанию для значения, определенного препроцессорной константой PHOENIX_LIMIT
(что, в свою очередь, не соответствует 10
).
![]() |
Note |
---|---|
Вариатические манипуляторы с двумя или более атрибутами внутренне объединяют ссылки на все переданные атрибуты в |
The phrase_match
manipulators not taking an explicit skip_flag
as one of their arguments call the passedper after a successful match of the parser expression. Это может быть ингибировано с помощью других версий этого манипулятора во время прохождения skip_flag::dont_postskip
в соответствующий аргумент.
Параметр |
Описание |
---|---|
|
Выражение, которое может быть преобразовано в Qi-парсер. |
|
Парсер пропускал белые пространства. |
|
Тип атрибута, используемый для создания соответствующего типа парсера. |
|
Один или несколько атрибутов. |
Статья Stream Based Parser API раздела Spirit 2.5.2 Parser API может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Parser API ::
реклама |