![]() |
|
|
Generated: 18 Jul 2008 |
#include <ParserGrammar.h>
Collaboration diagram for 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 |
| 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 }
| 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; }
| PropertyGrammar Gaudi::Parsers::ValueGrammar::definition< ScannerT >::property_grammar |
Definition at line 413 of file ParserGrammar.h.
Referenced by Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition().
| StringGrammar Gaudi::Parsers::ValueGrammar::definition< ScannerT >::string_grammar |
Definition at line 414 of file ParserGrammar.h.
Referenced by Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition().
| BoolGrammar Gaudi::Parsers::ValueGrammar::definition< ScannerT >::boolean_grammar |
Definition at line 415 of file ParserGrammar.h.
Referenced by Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition().
| IntGrammar<long> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::int_grammar |
Definition at line 416 of file ParserGrammar.h.
| RealUnitsGrammar Gaudi::Parsers::ValueGrammar::definition< ScannerT >::realunits_grammar |
Definition at line 417 of file ParserGrammar.h.
Referenced by Gaudi::Parsers::ValueGrammar::definition< ScannerT >::definition().
| 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().
| 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().
| 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().
| 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().
| 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().
| 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().
| 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().
| 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().
| 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().