/search.css" rel="stylesheet" type="text/css"/> /search.js">
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

Public Member Functions | Public Attributes
Gaudi::Parsers::ValueGrammar::definition< ScannerT > Struct Template Reference

#include <ParserGrammar.h>

Collaboration diagram for Gaudi::Parsers::ValueGrammar::definition< ScannerT >:
Collaboration graph
[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 256 of file ParserGrammar.h.


Constructor & Destructor Documentation

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

Definition at line 258 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 331 of file ParserGrammar.h.

{ return value_rule; }

Member Data Documentation

Definition at line 320 of file ParserGrammar.h.

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

Definition at line 321 of file ParserGrammar.h.

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

Definition at line 322 of file ParserGrammar.h.

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

Definition at line 323 of file ParserGrammar.h.

Definition at line 324 of file ParserGrammar.h.

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

Definition at line 326 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 328 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 328 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 328 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 328 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 328 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 328 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 328 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 328 of file ParserGrammar.h.


The documentation for this struct was generated from the following file:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Fri May 16 2014 09:50:18 for LafKernel by doxygen 1.7.4