Gaudi::Parsers::VectorGrammar< GrammarT > Class Template Reference

The valid represenation of vector are: More...

#include </scratch/z5/marcocle/GaudiDocs/lhcb-release/825/GAUDI/GAUDI_v26r3/InstallArea/x86_64-slc6-gcc48-opt/include/GaudiKernel/Grammars.h>

Inheritance diagram for Gaudi::Parsers::VectorGrammar< GrammarT >:
Collaboration diagram for Gaudi::Parsers::VectorGrammar< GrammarT >:

Classes

struct  definition
 

Public Types

typedef GrammarT::ResultT ValueT
 
typedef std::vector< ValueTResultT
 
typedef VectorGrammar< GrammarT > SelfT
 
typedef VectorT ResultT
 
typedef GrammarT::ResultT ValueT
 
typedef std::vector< ValueTResultT
 
typedef VectorGrammar< GrammarT > SelfT
 
typedef VectorT ResultT
 

Public Member Functions

void matchItem (const ValueT &value) const
 callback. Action when we match inner value More...
 
 VectorGrammar ()
 
void matchItem (const ValueT &value) const
 callback. Action when we match inner value More...
 
 VectorGrammar ()
 

Public Attributes

Grammar_< Iterator, typename VectorT::value_type, Skipper >::Grammar elementGrammar
 
qi::rule< Iterator, char()> begin
 
qi::rule< Iterator, void(char)> end
 
qi::rule< Iterator, ResultT(), qi::locals< char >, Skippervec
 
qi::rule< Iterator, ResultT(), Skipperlist
 

Detailed Description

template<typename GrammarT>
class Gaudi::Parsers::VectorGrammar< GrammarT >

The valid represenation of vector are:

  • {"abc","defj","i"} or {1,2,3,4,5}
  • ["abc","defj","i"] or [1,2,3,4,5] Inner type depends on GrammarT grammar
Author
Alexander MAZUROV Alexa.nosp@m.nder.nosp@m..Mazu.nosp@m.rov@.nosp@m.gmail.nosp@m..com
Vanya BELYAEV ibely.nosp@m.aev@.nosp@m.physi.nosp@m.cs.s.nosp@m.yr.ed.nosp@m.u
Date
2006-05-14

Definition at line 424 of file Grammars.h.

Member Typedef Documentation

template<typename GrammarT>
typedef VectorT Gaudi::Parsers::VectorGrammar< GrammarT >::ResultT

Definition at line 309 of file GrammarsV2.h.

template<typename GrammarT>
typedef VectorT Gaudi::Parsers::VectorGrammar< GrammarT >::ResultT

Definition at line 309 of file GrammarsV2.h.

template<typename GrammarT>
typedef std::vector<ValueT> Gaudi::Parsers::VectorGrammar< GrammarT >::ResultT

Definition at line 432 of file Grammars.h.

template<typename GrammarT>
typedef std::vector<ValueT> Gaudi::Parsers::VectorGrammar< GrammarT >::ResultT

Definition at line 432 of file Grammars.h.

template<typename GrammarT>
typedef VectorGrammar<GrammarT> Gaudi::Parsers::VectorGrammar< GrammarT >::SelfT

Definition at line 433 of file Grammars.h.

template<typename GrammarT>
typedef VectorGrammar<GrammarT> Gaudi::Parsers::VectorGrammar< GrammarT >::SelfT

Definition at line 433 of file Grammars.h.

template<typename GrammarT>
typedef GrammarT::ResultT Gaudi::Parsers::VectorGrammar< GrammarT >::ValueT

Definition at line 431 of file Grammars.h.

template<typename GrammarT>
typedef GrammarT::ResultT Gaudi::Parsers::VectorGrammar< GrammarT >::ValueT

Definition at line 431 of file Grammars.h.

Constructor & Destructor Documentation

template<typename GrammarT>
Gaudi::Parsers::VectorGrammar< GrammarT >::VectorGrammar ( )
inline

Definition at line 311 of file GrammarsV2.h.

311  : VectorGrammar::base_type(vec) {
312  begin = enc::char_('[')[qi::_val=']'] | enc::char_('{')[qi::_val='}']
313  | enc::char_('(')[qi::_val=')'];
314  end = enc::char_(qi::_r1);
315  list = elementGrammar % ',';
316  vec = begin[qi::_a = qi::_1] >> -list[qi::_val=qi::_1] >> end(qi::_a);
317  }
Grammar_< Iterator, typename VectorT::value_type, Skipper >::Grammar elementGrammar
Definition: GrammarsV2.h:321
qi::rule< Iterator, void(char)> end
Definition: GrammarsV2.h:323
qi::rule< Iterator, char()> begin
Definition: GrammarsV2.h:322
qi::rule< Iterator, ResultT(), qi::locals< char >, Skipper > vec
Definition: GrammarsV2.h:325
qi::rule< Iterator, ResultT(), Skipper > list
Definition: GrammarsV2.h:326
template<typename GrammarT>
Gaudi::Parsers::VectorGrammar< GrammarT >::VectorGrammar ( )
inline

Definition at line 311 of file GrammarsV2.h.

311  : VectorGrammar::base_type(vec) {
312  begin = enc::char_('[')[qi::_val=']'] | enc::char_('{')[qi::_val='}']
313  | enc::char_('(')[qi::_val=')'];
314  end = enc::char_(qi::_r1);
315  list = elementGrammar % ',';
316  vec = begin[qi::_a = qi::_1] >> -list[qi::_val=qi::_1] >> end(qi::_a);
317  }
Grammar_< Iterator, typename VectorT::value_type, Skipper >::Grammar elementGrammar
Definition: GrammarsV2.h:321
qi::rule< Iterator, void(char)> end
Definition: GrammarsV2.h:323
qi::rule< Iterator, char()> begin
Definition: GrammarsV2.h:322
qi::rule< Iterator, ResultT(), qi::locals< char >, Skipper > vec
Definition: GrammarsV2.h:325
qi::rule< Iterator, ResultT(), Skipper > list
Definition: GrammarsV2.h:326

Member Function Documentation

template<typename GrammarT>
void Gaudi::Parsers::VectorGrammar< GrammarT >::matchItem ( const ValueT value) const
inline

callback. Action when we match inner value

Definition at line 436 of file Grammars.h.

436 { this->val().push_back(value); }
template<typename GrammarT>
void Gaudi::Parsers::VectorGrammar< GrammarT >::matchItem ( const ValueT value) const
inline

callback. Action when we match inner value

Definition at line 436 of file Grammars.h.

436 { this->val().push_back(value); }

Member Data Documentation

template<typename GrammarT>
qi::rule< Iterator, char()> Gaudi::Parsers::VectorGrammar< GrammarT >::begin

Definition at line 322 of file GrammarsV2.h.

template<typename GrammarT>
Grammar_< Iterator, typename VectorT::value_type, Skipper >::Grammar Gaudi::Parsers::VectorGrammar< GrammarT >::elementGrammar

Definition at line 321 of file GrammarsV2.h.

template<typename GrammarT>
qi::rule< Iterator, void(char)> Gaudi::Parsers::VectorGrammar< GrammarT >::end

Definition at line 323 of file GrammarsV2.h.

template<typename GrammarT>
qi::rule< Iterator, ResultT(), Skipper > Gaudi::Parsers::VectorGrammar< GrammarT >::list

Definition at line 326 of file GrammarsV2.h.

template<typename GrammarT>
qi::rule< Iterator, ResultT(), qi::locals< char >, Skipper > Gaudi::Parsers::VectorGrammar< GrammarT >::vec

Definition at line 325 of file GrammarsV2.h.


The documentation for this class was generated from the following files: