Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Struct template perm_parser

boost::parser::perm_parser

Synopsis

// In header: <boost/parser/parser.hpp>

template<typename ParserTuple, typename DelimiterParser> 
struct perm_parser {

  // public member functions
  (ParserTuple);
  (ParserTuple, DelimiterParser);
  template<typename Iter, typename Sentinel, typename Context, 
           typename SkipParser> 
    auto (Iter &, Sentinel, Context  const &, SkipParser  const &, 
              , bool &) ;
  template<typename Iter, typename Sentinel, typename Context, 
           typename SkipParser, typename Attribute> 
    void (Iter &, Sentinel, Context  const &, SkipParser  const &, 
              , bool &, Attribute &) ;
  template<typename Iter, typename Sentinel, typename Context, 
           typename SkipParser,  Ts,  Is> 
    void (Iter &, Sentinel, Context  const &, SkipParser  const &, 
                   , bool &, , 
                   int, ) ;

  // public data members
  ParserTuple parsers_;
  DelimiterParser delimiter_parser_;
};

Description

Applies each parsers in ParserTuple, an any order, stopping after all of them have matched the input. The parse succeeds iff all the parsers match, regardless of the order in which they do. The attribute produced is a parser::tuple containing the attributes of the subparsers, in their order of the parsers' appearance in ParserTuple, not the order of the parsers' matches. It is an error to specialize perm_parser with a ParserTuple template parameter that includes an eps_parser.

perm_parser public member functions

  1. (ParserTuple parsers);
  2. (ParserTuple parsers, DelimiterParser delimiter_parser);
  3. template<typename Iter, typename Sentinel, typename Context, 
             typename SkipParser> 
      auto (Iter & first_, Sentinel last, Context  const & context, 
                SkipParser  const & skip,  flags, bool & success) ;
  4. template<typename Iter, typename Sentinel, typename Context, 
             typename SkipParser, typename Attribute> 
      void (Iter & first_, Sentinel last, Context  const & context, 
                SkipParser  const & skip,  flags, bool & success, 
                Attribute & retval) ;
  5. template<typename Iter, typename Sentinel, typename Context, 
             typename SkipParser,  Ts,  Is> 
      void (Iter & first, Sentinel last, Context  const & context, 
                     SkipParser  const & skip,  flags, bool & success, 
                      retval, 
                     int, ) ;

PrevUpHomeNext