| # Gaudi Framework, version v21r10p1 |

Home |  | Generated: 29 Jul 2010

# Gaudi::Parsers::ValueGrammar::definition< ScannerT > Struct Template Reference

`#include <ParserGrammar.h>`

List of all members.

## Public Member Functions
| definition (ValueGrammar const &self)
boost::spirit::rule< ScannerT > const & | start () const
## Public Attributes
PropertyGrammar | property_grammar
StringGrammar | string_grammar
BoolGrammar | boolean_grammar
IntGrammar< long > | int_grammar
RealUnitsGrammar | realunits_grammar
boost::spirit::rule< ScannerT > | value_rule
boost::spirit::rule< ScannerT, ClosureGrammar< std::string > ::context_t > | value
boost::spirit::rule< ScannerT, ClosureGrammar< std::string > ::context_t > | literalvalue
boost::spirit::rule< ScannerT, ClosureGrammar< std::string > ::context_t > | vectorvalue
boost::spirit::rule< ScannerT, ClosureGrammar< std::string > ::context_t > | listvalue
boost::spirit::rule< ScannerT, ClosureGrammar< std::string > ::context_t > | mapvalue
boost::spirit::rule< ScannerT, ClosureGrammar< std::string > ::context_t > | vectorvalue_list
boost::spirit::rule< ScannerT, ClosureGrammar< std::string > ::context_t > | vector_type
boost::spirit::rule< ScannerT, ClosureGrammar< std::string > ::context_t > | property_link

## Detailed Description

### template<typename ScannerT>
struct Gaudi::Parsers::ValueGrammar::definition< ScannerT >

Definition at line 358 of file ParserGrammar.h.

## Constructor & Destructor Documentation

template<typename ScannerT>

Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition | ( | ValueGrammar const & | self | ) | `[inline]`

Definition at line 360 of file ParserGrammar.h.

    00361         {
    00362           realunits_grammar.setParser(self.parser());
    00363           //-----------------------------------------------------------------
    00364           // OPERATORS
    00365           //-----------------------------------------------------------------
    00366           chlit<>     O_DOT('.');
    00367           chlit<>     O_COMMA(',');
    00368           value_rule = value[boost::bind(&ValueGrammar::matchValue,&self,_1)];
    00369           value =
    00370             vectorvalue[value.val=arg1]
    00371             | vector_type[value.val="["+arg1+"]"]
    00372             | property_link[value.val=arg1]
    00373             ;
    00374           // ------------------------------------------------------------------
    00375           vectorvalue_list
    00376             = !(
    00377                 value[vectorvalue_list.val=arg1][boost::bind(&ValueGrammar::matchVectorValue,&self,_1)]
    00378                 >> *(',' >>value[vectorvalue_list.val+=","+arg1][boost::bind(&ValueGrammar::matchVectorValue,&self,_1)])
    00379                 );
    00380           // ------------------------------------------------------------------
    00381           vector_type =
    00382             (
    00383              ch_p('{')[boost::bind(&ValueGrammar::matchBrace,&self,true)]
    00384              >> vectorvalue_list
    00385              [vector_type.val=arg1]
    00386              >> ch_p('}')[boost::bind(&ValueGrammar::matchBrace,&self,false)]
    00387              )
    00388             |
    00389             (ch_p('[') [boost::bind(&ValueGrammar::matchBrace,&self,true)]
    00390              >> vectorvalue_list
    00391              [vector_type.val=arg1]
    00392              >> ch_p(']')[boost::bind(&ValueGrammar::matchBrace,&self,false)]
    00393              );
    00394           // ------------------------------------------------------------------
    00395           vectorvalue =
    00396             listvalue[vectorvalue.val=arg1]
    00397             | longest_d[
    00398                         literalvalue[vectorvalue.val=arg1]
    00399                         | mapvalue[vectorvalue.val=arg1]
    00400             ];
    00401           // ------------------------------------------------------------------
    00402           listvalue = '(' >> vectorvalue[listvalue.val="("+arg1]
    00403                           >> *(O_COMMA[listvalue.val+=","]
    00404                           >> vectorvalue[listvalue.val+=arg1]) >>ch_p(')')[listvalue.val+=")"];
    00405           // ------------------------------------------------------------------
    00406           mapvalue = literalvalue[mapvalue.val=arg1]
    00407             >> (ch_p('=')[mapvalue.val+="="] | ch_p(':')[mapvalue.val+=":"])
    00408             >> value[mapvalue.val+=arg1]
    00409             ;
    00410           // ------------------------------------------------------------------
    00411           literalvalue =
    00412             realunits_grammar[literalvalue.val = arg1]
    00413             |
    00414             boolean_grammar[AssignBoolToString(literalvalue.val)]
    00415             |
    00416             string_grammar[literalvalue.val = std::string("\"")+arg1+std::string("\"")];
    00417           // ------------------------------------------------------------------
    00418           property_link = ('@'>>property_grammar)
    00419             [property_link.val=construct_<std::string>(arg1,arg2)];
    00420           // ------------------------------------------------------------------
    00421         }

## Member Function Documentation

template<typename ScannerT>

boost::spirit::rule<ScannerT> const& Gaudi::Parsers::ValueGrammar::definition< ScannerT >::start | ( |  | ) | const`[inline]`

Definition at line 433 of file ParserGrammar.h.

    00433 { return value_rule; }

## Member Data Documentation

template<typename ScannerT>

PropertyGrammar Gaudi::Parsers::ValueGrammar::definition< ScannerT >::property_grammar

Definition at line 422 of file ParserGrammar.h.

template<typename ScannerT>

StringGrammar Gaudi::Parsers::ValueGrammar::definition< ScannerT >::string_grammar

Definition at line 423 of file ParserGrammar.h.

template<typename ScannerT>

BoolGrammar Gaudi::Parsers::ValueGrammar::definition< ScannerT >::boolean_grammar

Definition at line 424 of file ParserGrammar.h.

template<typename ScannerT>

IntGrammar<long> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::int_grammar

Definition at line 425 of file ParserGrammar.h.

template<typename ScannerT>

RealUnitsGrammar Gaudi::Parsers::ValueGrammar::definition< ScannerT >::realunits_grammar

Definition at line 426 of file ParserGrammar.h.

template<typename ScannerT>

boost::spirit::rule<ScannerT> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::value_rule

Definition at line 428 of file ParserGrammar.h.

template<typename ScannerT>

boost::spirit::rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::value

Definition at line 430 of file ParserGrammar.h.

template<typename ScannerT>

boost::spirit::rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::literalvalue

Definition at line 430 of file ParserGrammar.h.

template<typename ScannerT>

boost::spirit::rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::vectorvalue

Definition at line 430 of file ParserGrammar.h.

template<typename ScannerT>

boost::spirit::rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::listvalue

Definition at line 430 of file ParserGrammar.h.

template<typename ScannerT>

boost::spirit::rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::mapvalue

Definition at line 430 of file ParserGrammar.h.

template<typename ScannerT>

boost::spirit::rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::vectorvalue_list

Definition at line 430 of file ParserGrammar.h.

template<typename ScannerT>

boost::spirit::rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::vector_type

Definition at line 430 of file ParserGrammar.h.

template<typename ScannerT>

boost::spirit::rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::property_link

Definition at line 430 of file ParserGrammar.h.

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

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v21r10p1/GaudiSvc/src/JobOptionsSvc/ParserGrammar.h