LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
fhicl::dss_parser Struct Reference

#include "tokens.h"

Inheritance diagram for fhicl::dss_parser:

Classes

struct  attribute
 

Public Member Functions

template<typename Iterator , typename Context , typename Skipper , typename Attribute >
bool parse (Iterator &first, Iterator const &last, Context &, Skipper const &skipper, Attribute &attr) const
 
template<typename Context >
boost::spirit::info what (Context &) const
 

Detailed Description

Definition at line 433 of file tokens.h.

Member Function Documentation

template<typename Iterator , typename Context , typename Skipper , typename Attribute >
bool fhicl::dss_parser::parse ( Iterator &  first,
Iterator const &  last,
Context &  ,
Skipper const &  skipper,
Attribute &  attr 
) const
inline

Definition at line 446 of file tokens.h.

References fhicl::maximally_munched_dss().

451  {
452  boost::spirit::qi::skip_over(first, last, skipper);
453 
454  bool all_digits = true;
455  Iterator it = first;
456  for (; it != last && (std::isalnum(*it) || *it == '_'); ++it)
457  all_digits = all_digits && std::isdigit(*it);
458 
459  if (it != last && !maximally_munched_dss(*it))
460  return false;
461 
462  Attribute result(first, it);
463  if (result.empty() || all_digits || !std::isdigit(result[0]))
464  return false;
465 
466  first = it;
467  boost::spirit::traits::assign_to(result, attr);
468  return true;
469  }
bool maximally_munched_dss(char const ch)
Definition: tokens.h:47
template<typename Context >
boost::spirit::info fhicl::dss_parser::what ( Context &  ) const
inline

Definition at line 474 of file tokens.h.

475  {
476  return boost::spirit::info{"fhicl::dss"};
477  }

The documentation for this struct was generated from the following file: