Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT > Class Template Reference

The valid represenation of map are: More...

#include <GaudiKernel/Grammars.h>

Inheritance diagram for Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >:
Collaboration diagram for Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >:

Classes

struct  definition
 
struct  Operations
 
struct  tag_key
 
struct  tag_mapped
 

Public Types

typedef KeyGrammarT::ResultT KeyT
 
typedef ValueGrammarT::ResultT ValueT
 
typedef std::map< KeyT, ValueTResultT
 
typedef MapT ResultT
 
typedef MapT::key_type KeyT
 
typedef MapT::mapped_type MappedT
 
typedef std::pair< KeyT, MappedTPairT
 
typedef std::vector< PairTVectorPairT
 

Public Member Functions

void matchItem () const
 call backs. Action when we match pair in map More...
 
void matchFirst (const KeyT &value) const
 call backs. Action when we match key of pair More...
 
void matchSecond (const ValueT &value) const
 call backs. Action when we match value pf pair More...
 
 MapGrammar ()
 

Public Attributes

Grammar_< Iterator, typename MapT::key_type, Skipper >::Grammar key
 
Grammar_< Iterator, typename MapT::mapped_type, Skipper >::Grammar value
 
qi::rule< Iterator, PairT(), Skipperpair
 
qi::rule< Iterator, VectorPairT(), Skipperlist
 
qi::rule< Iterator, ResultT(), Skippermap
 
ph::function< Operationsop
 

Detailed Description

template<typename KeyGrammarT, typename ValueGrammarT>
class Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >

The valid represenation of map are:

  • {"file1":"path1","something":"nothing"}
  • {"file1"="path1","something"="nothing"}
  • ["file1":10,"something":20]
  • ["file1"=30,"something"=40] Inner key type depends on KeyGrammarT grammar Inner value type depends on ValueGrammarT 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 472 of file Grammars.h.

Member Typedef Documentation

template<typename KeyGrammarT , typename ValueGrammarT >
typedef MapT::key_type Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::KeyT

Definition at line 418 of file GrammarsV2.h.

template<typename KeyGrammarT , typename ValueGrammarT >
typedef KeyGrammarT::ResultT Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::KeyT

Definition at line 483 of file Grammars.h.

template<typename KeyGrammarT , typename ValueGrammarT >
typedef MapT::mapped_type Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::MappedT

Definition at line 419 of file GrammarsV2.h.

template<typename KeyGrammarT , typename ValueGrammarT >
typedef std::pair<KeyT, MappedT> Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::PairT

Definition at line 420 of file GrammarsV2.h.

template<typename KeyGrammarT , typename ValueGrammarT >
typedef MapT Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::ResultT

Definition at line 417 of file GrammarsV2.h.

template<typename KeyGrammarT , typename ValueGrammarT >
typedef std::map<KeyT,ValueT> Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::ResultT

Definition at line 485 of file Grammars.h.

template<typename KeyGrammarT , typename ValueGrammarT >
typedef ValueGrammarT::ResultT Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::ValueT

Definition at line 484 of file Grammars.h.

template<typename KeyGrammarT , typename ValueGrammarT >
typedef std::vector<PairT> Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::VectorPairT

Definition at line 422 of file GrammarsV2.h.

Constructor & Destructor Documentation

template<typename KeyGrammarT , typename ValueGrammarT >
Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::MapGrammar ( )
inline

Definition at line 448 of file GrammarsV2.h.

448  : MapGrammar::base_type(map) {
449  pair = key[op(qi::_val,qi::_1, tag_key())] > (qi::lit(':') | '=') >
450  value[op(qi::_val,qi::_1, tag_mapped())];
451  list = -(pair % enc::char_(','));
452  map = (('[' >> list >> ']')
453  | ('{' >> list >> '}'))[op(qi::_val,qi::_1)];
454  }
qi::rule< Iterator, ResultT(), Skipper > map
Definition: GrammarsV2.h:462
Grammar_< Iterator, typename MapT::mapped_type, Skipper >::Grammar value
Definition: GrammarsV2.h:459
qi::rule< Iterator, PairT(), Skipper > pair
Definition: GrammarsV2.h:460
qi::rule< Iterator, VectorPairT(), Skipper > list
Definition: GrammarsV2.h:461
Grammar_< Iterator, typename MapT::key_type, Skipper >::Grammar key
Definition: GrammarsV2.h:457
ph::function< Operations > op
Definition: GrammarsV2.h:463

Member Function Documentation

template<typename KeyGrammarT , typename ValueGrammarT >
void Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::matchFirst ( const KeyT value) const
inline

call backs. Action when we match key of pair

Definition at line 494 of file Grammars.h.

494 { this->attrs().first = value ; }
Grammar_< Iterator, typename MapT::mapped_type, Skipper >::Grammar value
Definition: GrammarsV2.h:459
template<typename KeyGrammarT , typename ValueGrammarT >
void Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::matchItem ( ) const
inline

call backs. Action when we match pair in map

Definition at line 488 of file Grammars.h.

489  {
490  //this->val().insert(this->attrs());
491  this->val()[this->attrs().first] = this->attrs().second ;
492  }
template<typename KeyGrammarT , typename ValueGrammarT >
void Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::matchSecond ( const ValueT value) const
inline

call backs. Action when we match value pf pair

Definition at line 496 of file Grammars.h.

496 { this->attrs().second = value ; }
Grammar_< Iterator, typename MapT::mapped_type, Skipper >::Grammar value
Definition: GrammarsV2.h:459

Member Data Documentation

template<typename KeyGrammarT , typename ValueGrammarT >
Grammar_<Iterator, typename MapT::key_type, Skipper>::Grammar Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::key

Definition at line 457 of file GrammarsV2.h.

template<typename KeyGrammarT , typename ValueGrammarT >
qi::rule<Iterator, VectorPairT(), Skipper> Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::list

Definition at line 461 of file GrammarsV2.h.

template<typename KeyGrammarT , typename ValueGrammarT >
qi::rule<Iterator, ResultT(), Skipper> Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::map

Definition at line 462 of file GrammarsV2.h.

template<typename KeyGrammarT , typename ValueGrammarT >
ph::function<Operations> Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::op

Definition at line 463 of file GrammarsV2.h.

template<typename KeyGrammarT , typename ValueGrammarT >
qi::rule<Iterator, PairT(), Skipper> Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::pair

Definition at line 460 of file GrammarsV2.h.

template<typename KeyGrammarT , typename ValueGrammarT >
Grammar_<Iterator, typename MapT::mapped_type, Skipper>::Grammar Gaudi::Parsers::MapGrammar< KeyGrammarT, ValueGrammarT >::value

Definition at line 459 of file GrammarsV2.h.


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