Gaudi Framework, version v20r2

Generated: 18 Jul 2008

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.

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:
Generated at Fri Jul 18 12:10:25 2008 for Gaudi Framework, version v20r2 by Doxygen version 1.5.1 written by Dimitri van Heesch, © 1997-2004