|
Gaudi Framework, version v21r4 |
| Home | Generated: 7 Sep 2009 |
#include <ParserGrammar.h>
Definition at line 358 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 360 of file ParserGrammar.h.
00361 { 00362 realunits_grammar.setParser(self.parser()); 00363 //----------------------------------------------------------------- 00364 // OPERATORS 00365 //----------------------------------------------------------------- 00366 chlit<> O_DOT('.'); 00367 chlit<> O_COMMA(','); 00368 value_rule = value[boost::bind(&ValueGrammar::matchValue,&self,_1)]; 00369 value = 00370 vectorvalue[value.val=arg1] 00371 | vector_type[value.val="["+arg1+"]"] 00372 | property_link[value.val=arg1] 00373 ; 00374 // ------------------------------------------------------------------ 00375 vectorvalue_list 00376 = !( 00377 value[vectorvalue_list.val=arg1][boost::bind(&ValueGrammar::matchVectorValue,&self,_1)] 00378 >> *(',' >>value[vectorvalue_list.val+=","+arg1][boost::bind(&ValueGrammar::matchVectorValue,&self,_1)]) 00379 ); 00380 // ------------------------------------------------------------------ 00381 vector_type = 00382 ( 00383 ch_p('{')[boost::bind(&ValueGrammar::matchBrace,&self,true)] 00384 >> vectorvalue_list 00385 [vector_type.val=arg1] 00386 >> ch_p('}')[boost::bind(&ValueGrammar::matchBrace,&self,false)] 00387 ) 00388 | 00389 (ch_p('[') [boost::bind(&ValueGrammar::matchBrace,&self,true)] 00390 >> vectorvalue_list 00391 [vector_type.val=arg1] 00392 >> ch_p(']')[boost::bind(&ValueGrammar::matchBrace,&self,false)] 00393 ); 00394 // ------------------------------------------------------------------ 00395 vectorvalue = 00396 listvalue[vectorvalue.val=arg1] 00397 | longest_d[ 00398 literalvalue[vectorvalue.val=arg1] 00399 | mapvalue[vectorvalue.val=arg1] 00400 ]; 00401 // ------------------------------------------------------------------ 00402 listvalue = '(' >> vectorvalue[listvalue.val="("+arg1] 00403 >> *(O_COMMA[listvalue.val+=","] 00404 >> vectorvalue[listvalue.val+=arg1]) >>ch_p(')')[listvalue.val+=")"]; 00405 // ------------------------------------------------------------------ 00406 mapvalue = literalvalue[mapvalue.val=arg1] 00407 >> (ch_p('=')[mapvalue.val+="="] | ch_p(':')[mapvalue.val+=":"]) 00408 >> value[mapvalue.val+=arg1] 00409 ; 00410 // ------------------------------------------------------------------ 00411 literalvalue = 00412 realunits_grammar[literalvalue.val = arg1] 00413 | 00414 boolean_grammar[AssignBoolToString(literalvalue.val)] 00415 | 00416 string_grammar[literalvalue.val = std::string("\"")+arg1+std::string("\"")]; 00417 // ------------------------------------------------------------------ 00418 property_link = ('@'>>property_grammar) 00419 [property_link.val=construct_<std::string>(arg1,arg2)]; 00420 // ------------------------------------------------------------------ 00421 }
| boost::spirit::rule<ScannerT> const& Gaudi::Parsers::ValueGrammar::definition< ScannerT >::start | ( | ) | const [inline] |
| PropertyGrammar Gaudi::Parsers::ValueGrammar::definition< ScannerT >::property_grammar |
Definition at line 422 of file ParserGrammar.h.
| StringGrammar Gaudi::Parsers::ValueGrammar::definition< ScannerT >::string_grammar |
Definition at line 423 of file ParserGrammar.h.
| BoolGrammar Gaudi::Parsers::ValueGrammar::definition< ScannerT >::boolean_grammar |
Definition at line 424 of file ParserGrammar.h.
| IntGrammar<long> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::int_grammar |
Definition at line 425 of file ParserGrammar.h.
| RealUnitsGrammar Gaudi::Parsers::ValueGrammar::definition< ScannerT >::realunits_grammar |
Definition at line 426 of file ParserGrammar.h.
| boost::spirit::rule<ScannerT> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::value_rule |
Definition at line 428 of file ParserGrammar.h.
| boost::spirit::rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::value |
Definition at line 430 of file ParserGrammar.h.
| boost::spirit::rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::literalvalue |
Definition at line 430 of file ParserGrammar.h.
| boost::spirit::rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::vectorvalue |
Definition at line 430 of file ParserGrammar.h.
| boost::spirit::rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::listvalue |
Definition at line 430 of file ParserGrammar.h.
| boost::spirit::rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::mapvalue |
Definition at line 430 of file ParserGrammar.h.
| boost::spirit::rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::vectorvalue_list |
Definition at line 430 of file ParserGrammar.h.
| boost::spirit::rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::vector_type |
Definition at line 430 of file ParserGrammar.h.
| boost::spirit::rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ValueGrammar::definition< ScannerT >::property_link |
Definition at line 430 of file ParserGrammar.h.