![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Iterator Based Parser APIBoost , Spirit 2.5.2 , Parser API
|
Имя |
---|
< |
< |
< |
< |
namespace boost { namespace spirit { namespace qi { template <typename Iterator, typename Expr> inline bool parse( Iterator& first , Iterator last , Expr const& expr); template <typename Iterator, typename Expr , typename Attr1, typename Attr2, ..., typename AttrN> inline bool parse( Iterator& first , Iterator last , Expr const& expr , Attr1& attr1, Attr2& attr2, ..., AttrN& attrN); template <typename Iterator, typename Expr, typename Skipper> inline bool phrase_parse( Iterator& first , Iterator last , Expr const& expr , Skipper const& skipper , BOOST_SCOPED_ENUM(skip_flag) post_skip = skip_flag::postskip); template <typename Iterator, typename Expr, typename Skipper , typename Attr1, typename Attr2, ..., typename AttrN> inline bool phrase_parse( Iterator& first , Iterator last , Expr const& expr , Skipper const& skipper , Attr1& attr1, Attr2& attr2, ..., AttrN& attrN); template <typename Iterator, typename Expr, typename Skipper , typename Attr1, typename Attr2, ..., typename AttrN> inline bool phrase_parse( Iterator& first , Iterator last , Expr const& expr , Skipper const& skipper , BOOST_SCOPED_ENUM(skip_flag) post_skip , Attr1& attr1, Attr2& attr2, ..., AttrN& attrN); }}}
![]() |
Note |
---|---|
Начиная сSpiritV2.5 (распределяется с Boost V1.47) заполнитель< |
Spirit.Qiфункции парсерного API, основанные на автоматическом создании соответствующего парсерного типа:
namespace boost { namespace spirit { namespace qi { template <typename Iterator, typename Attr> inline bool parse( Iterator& first , Iterator last , Attr& attr); template <typename Iterator, typename Attr, typename Skipper> inline bool phrase_parse( Iterator& first , Iterator last , Attr& attr , Skipper const& skipper , BOOST_SCOPED_ENUM(skip_flag) post_skip = skip_flag::postskip); }}}
Все функции выше возвращают<true
>, если ни один из участвующих парсерных компонентов не вышел из строя, и<false
>в противном случае.
Максимальное количество поддерживаемых аргументов ограничено константой препроцессора<SPIRIT_ARGUMENTS_LIMIT
>. Эта постоянная по умолчанию соответствует значению, определенному константой препроцессора<PHOENIX_LIMIT
>(которая, в свою очередь, по умолчанию равна<10
>).
![]() |
Note |
---|---|
Вариадные функции с двумя или более атрибутами внутренне объединяют ссылки на все переданные атрибуты в< |
<phrase_parse
>функционирует, не принимая явного<skip_flag
>, как один из их аргументов вызывает пройденного шкипера после успешного совпадения парсерного выражения. Это можно предотвратить, используя другие версии этой функции при переходе<skip_flag::dont_postskip
>к соответствующему аргументу.
Параметр |
Описание |
---|---|
< |
< |
< |
Выражение, которое может быть преобразовано в ци-парсер. |
< |
Парсер пропускал белые пространства. |
< |
Тип атрибута, используемый для создания соответствующего типа парсера. |
< |
Один или несколько атрибутов. |
Статья Iterator Based Parser API раздела Spirit 2.5.2 Parser API может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Parser API ::
реклама |