| # Gaudi Framework, version v20r2
Generated: 18 Jul 2008

- Main Page
- Namespaces
- Classes
- Files
- Directories
- Related Pages

- Search for |

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

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

`#include <ParserGrammar.h>`

Collaboration diagram for Gaudi::Parsers::ValueGrammar::definition< ScannerT >:

[legend]
List of all members.

## Detailed Description

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

Definition at line 349 of file ParserGrammar.h.

## 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

## Constructor & Destructor Documentation

template<typename ScannerT>

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

Definition at line 351 of file ParserGrammar.h.

References Gaudi::Parsers::AssignBoolToString(), Gaudi::Parsers::ValueGrammar::definition< ScannerT >::boolean_grammar, Gaudi::Parsers::ValueGrammar::definition< ScannerT >::listvalue, Gaudi::Parsers::ValueGrammar::definition< ScannerT >::literalvalue, Gaudi::Parsers::ValueGrammar::definition< ScannerT >::mapvalue, Gaudi::Parsers::ValueGrammar::matchBrace(), Gaudi::Parsers::ValueGrammar::matchValue(), Gaudi::Parsers::ValueGrammar::matchVectorValue(), Gaudi::Parsers::ValueGrammar::parser(), Gaudi::Parsers::ValueGrammar::definition< ScannerT >::property_grammar, Gaudi::Parsers::ValueGrammar::definition< ScannerT >::property_link, Gaudi::Parsers::ValueGrammar::definition< ScannerT >::realunits_grammar, Gaudi::Parsers::RealUnitsGrammar::setParser(), Gaudi::Parsers::ValueGrammar::definition< ScannerT >::string_grammar, Gaudi::Parsers::ValueGrammar::definition< ScannerT >::value, Gaudi::Parsers::ValueGrammar::definition< ScannerT >::value_rule, Gaudi::Parsers::ValueGrammar::definition< ScannerT >::vector_type, Gaudi::Parsers::ValueGrammar::definition< ScannerT >::vectorvalue, and Gaudi::Parsers::ValueGrammar::definition< ScannerT >::vectorvalue_list.

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

## Member Function Documentation

template<typename ScannerT>

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

Definition at line 424 of file ParserGrammar.h.

References Gaudi::Parsers::ValueGrammar::definition< ScannerT >::value_rule.

    00424 { return value_rule; }

## Member Data Documentation

template<typename ScannerT>

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

Definition at line 413 of file ParserGrammar.h.

Referenced by Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition().

template<typename ScannerT>

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

Definition at line 414 of file ParserGrammar.h.

Referenced by Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition().

template<typename ScannerT>

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

Definition at line 415 of file ParserGrammar.h.

Referenced by Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition().

template<typename ScannerT>

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

Definition at line 416 of file ParserGrammar.h.

template<typename ScannerT>

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

Definition at line 417 of file ParserGrammar.h.

Referenced by Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition().

template<typename ScannerT>

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

Definition at line 419 of file ParserGrammar.h.

Referenced by Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition(), and Gaudi::Parsers::ValueGrammar::definition< ScannerT >::start().

template<typename ScannerT>

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

Definition at line 421 of file ParserGrammar.h.

Referenced by Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition().

template<typename ScannerT>

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

Definition at line 421 of file ParserGrammar.h.

Referenced by Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition().

template<typename ScannerT>

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

Definition at line 421 of file ParserGrammar.h.

Referenced by Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition().

template<typename ScannerT>

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

Definition at line 421 of file ParserGrammar.h.

Referenced by Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition().

template<typename ScannerT>

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

Definition at line 421 of file ParserGrammar.h.

Referenced by Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition().

template<typename ScannerT>

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

Definition at line 421 of file ParserGrammar.h.

Referenced by Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition().

template<typename ScannerT>

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

Definition at line 421 of file ParserGrammar.h.

Referenced by Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition().

template<typename ScannerT>

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

Definition at line 421 of file ParserGrammar.h.

Referenced by Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition().

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

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