| # Gaudi Framework, version v22r2 |

Home |  | Generated: Tue May 10 2011

Public Member Functions | Public Attributes

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

`#include <ParserGrammar.h>`

Collaboration diagram for Gaudi::Parsers::ValueGrammar::definition< ScannerT >:
[legend]

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.

            {
              realunits_grammar.setParser(self.parser());
              //-----------------------------------------------------------------
              // OPERATORS
              //-----------------------------------------------------------------
              chlit<>     O_DOT('.');
              chlit<>     O_COMMA(',');
              value_rule = value[boost::bind(&ValueGrammar::matchValue,&self,_1)];
              value =
                vectorvalue[value.val=arg1]
                | vector_type[value.val="["+arg1+"]"]
                | property_link[value.val=arg1]
                ;
              // ------------------------------------------------------------------
              vectorvalue_list
                = !(
                    value[vectorvalue_list.val=arg1][boost::bind(&ValueGrammar::matchVectorValue,&self,_1)]
                    >> *(',' >>value[vectorvalue_list.val+=","+arg1][boost::bind(&ValueGrammar::matchVectorValue,&self,_1)])
                    );
              // ------------------------------------------------------------------
              vector_type =
                (
                 ch_p('{')[boost::bind(&ValueGrammar::matchBrace,&self,true)]
                 >> vectorvalue_list
                 [vector_type.val=arg1]
                 >> ch_p('}')[boost::bind(&ValueGrammar::matchBrace,&self,false)]
                 )
                |
                (ch_p('[') [boost::bind(&ValueGrammar::matchBrace,&self,true)]
                 >> vectorvalue_list
                 [vector_type.val=arg1]
                 >> ch_p(']')[boost::bind(&ValueGrammar::matchBrace,&self,false)]
                 );
              // ------------------------------------------------------------------
              vectorvalue =
                listvalue[vectorvalue.val=arg1]
                | longest_d[
                            literalvalue[vectorvalue.val=arg1]
                            | mapvalue[vectorvalue.val=arg1]
                ];
              // ------------------------------------------------------------------
              listvalue = '(' >> vectorvalue[listvalue.val="("+arg1]
                              >> *(O_COMMA[listvalue.val+=","]
                              >> vectorvalue[listvalue.val+=arg1]) >>ch_p(')')[listvalue.val+=")"];
              // ------------------------------------------------------------------
              mapvalue = literalvalue[mapvalue.val=arg1]
                >> (ch_p('=')[mapvalue.val+="="] | ch_p(':')[mapvalue.val+=":"])
                >> value[mapvalue.val+=arg1]
                ;
              // ------------------------------------------------------------------
              literalvalue =
                realunits_grammar[literalvalue.val = arg1]
                |
                boolean_grammar[AssignBoolToString(literalvalue.val)]
                |
                string_grammar[literalvalue.val = std::string("\"")+arg1+std::string("\"")];
              // ------------------------------------------------------------------
              property_link = ('@'>>property_grammar)
                [property_link.val=construct_<std::string>(arg1,arg2)];
              // ------------------------------------------------------------------
            }

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

    { return value_rule; }

## Member Data Documentation

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 >

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 >::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 >::mapvalue

Definition at line 430 of file ParserGrammar.h.

template<typename ScannerT >

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

Definition at line 422 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.

template<typename ScannerT >

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

Definition at line 426 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 >

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> 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 >::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 >::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 >::vectorvalue_list

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_v22r2/GaudiSvc/src/JobOptionsSvc/ParserGrammar.h

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines