|
Gaudi Framework, version v21r9 |
| Home | Generated: 3 May 2010 |
#include <ParserGrammar.h>
Public Member Functions | |
| definition (ParserGrammar const &self) | |
| rule< ScannerT > const & | start () const |
Public Attributes | |
| PropertyGrammar | property_grammar |
| IdentifierGrammar | identifier_grammar |
| StringGrammar | string_grammar |
| ValueGrammar | value_grammar |
| rule< ScannerT, ClosureGrammar < std::string >::context_t > | include_statement |
| rule< ScannerT, ClosureGrammar < std::string >::context_t > | units_statement |
| rule< ScannerT, ClosureGrammar < std::vector< std::string > >::context_t > | assign_statement |
| rule< ScannerT > | job_options_file |
| rule< ScannerT > | shell_statement |
| rule< ScannerT > | platform_statement |
| rule< ScannerT > | assertable_statement |
| rule< ScannerT > | assertion_statement |
| rule< ScannerT > | platform_dependency |
| rule< ScannerT > | pragma_statement |
| rule< ScannerT > | pragma |
| rule< ScannerT > | printopt_statement |
Definition at line 618 of file ParserGrammar.h.
| Gaudi::Parsers::ParserGrammar::definition< ScannerT >::definition | ( | ParserGrammar const & | self | ) | [inline] |
Definition at line 620 of file ParserGrammar.h.
00620 { 00621 value_grammar.setParser(self.parser()); 00622 boost::tuples::get<0>(self.attrs()) = true; 00623 // ------------------------------------------------------------------ 00624 // OPERATORS 00625 // ------------------------------------------------------------------ 00626 chlit<> O_SEMI(';'); 00627 chlit<> O_DOT('.'); 00628 00629 strlit<> O_ASSIGN("="); 00630 strlit<> O_PLUSASSIGN("+="); 00631 strlit<> O_MINUSASSIGN("-="); 00632 00633 // ------------------------------------------------------------------ 00634 // TOKENS 00635 // ------------------------------------------------------------------ 00636 strlit<> T_SHELL("#!"); 00637 strlit<> T_IFDEF("#ifdef"); 00638 strlit<> T_IFNDEF("#ifndef"); 00639 strlit<> T_ELSE("#else"); 00640 strlit<> T_ENDIF("#endif"); 00641 strlit<> T_WIN32("WIN32"); 00642 strlit<> T_INCLUDE("#include"); 00643 strlit<> T_UNITS("#units"); 00644 strlit<> T_PRAGMA("#pragma"); 00645 strlit<> T_PRINTOPTIONS("#printOptions"); 00646 // ------------------------------------------------------------------ 00647 job_options_file = 00648 !shell_statement >> *(platform_statement | platform_dependency); 00649 // ------------------------------------------------------------------ 00650 shell_statement = comment_p(T_SHELL); 00651 // ------------------------------------------------------------------ 00652 platform_statement = assertable_statement | pragma_statement; 00653 // ------------------------------------------------------------------ 00654 assertable_statement = 00655 include_statement 00656 [boost::bind(&ParserGrammar::matchInclude,&self,_1)] 00657 | units_statement 00658 [boost::bind(&ParserGrammar::matchUnits,&self,_1)] 00659 | assign_statement 00660 [boost::bind(&ParserGrammar::matchAssign,&self,_1)]; 00661 // ------------------------------------------------------------------ 00662 assertion_statement = 00663 T_IFDEF 00664 [boost::bind(&ParserGrammar::matchPlatform,&self,"ifdef")] 00665 | 00666 T_IFNDEF 00667 [boost::bind(&ParserGrammar::matchPlatform,&self,"ifndef")]; 00668 // ------------------------------------------------------------------ 00669 platform_dependency = 00670 assertion_statement 00671 >> T_WIN32 00672 >> *platform_statement 00673 >> !( 00674 T_ELSE[boost::bind(&ParserGrammar::matchPlatform,&self,"else")] 00675 >> *platform_statement 00676 ) 00677 >> T_ENDIF 00678 [boost::bind(&ParserGrammar::matchPlatform,&self,"endif")]; 00679 // ------------------------------------------------------------------ 00680 include_statement = 00681 T_INCLUDE 00682 >> (string_grammar[include_statement.val=arg1]>>eps_p) 00683 [self.val=arg1]; 00684 // ------------------------------------------------------------------ 00685 units_statement = 00686 T_UNITS 00687 >> (string_grammar[units_statement.val=arg1]>>eps_p) 00688 [self.val=arg1];; 00689 // ------------------------------------------------------------------ 00690 pragma_statement = pragma | printopt_statement; 00691 // ------------------------------------------------------------------ 00692 pragma = (T_PRAGMA>>eps_p)[self.val=arg1] >> str_p("print") 00693 >> ((str_p("on") | str_p("ON")) 00694 [boost::bind(&ParserGrammar::matchPrint,&self,true)] 00695 | (str_p("off") | str_p("OFF")) 00696 [boost::bind(&ParserGrammar::matchPrint,&self,false)]) ; 00697 // ------------------------------------------------------------------ 00698 printopt_statement = ((T_PRINTOPTIONS>>eps_p)[self.val = arg1] >> 00699 !as_lower_d["full"]) 00700 [boost::bind(&ParserGrammar::matchPrintOptions,&self,true)]; 00701 // ------------------------------------------------------------------ 00702 assign_statement = 00703 property_grammar[assign_statement.val=arg1] 00704 >> eps_p[PushBack(assign_statement.val,"#")] 00705 >> ( 00706 O_ASSIGN[PushBack(assign_statement.val,"=")] 00707 |O_PLUSASSIGN[PushBack(assign_statement.val,"+=")] 00708 |O_MINUSASSIGN[PushBack(assign_statement.val,"-=")] 00709 ) 00710 >> value_grammar[boost::bind(&ParserGrammar::matchValue,&self,_1)] 00711 >> O_SEMI; 00712 // ------------------------------------------------------------------ 00713 }
| rule<ScannerT> const& Gaudi::Parsers::ParserGrammar::definition< ScannerT >::start | ( | ) | const [inline] |
| PropertyGrammar Gaudi::Parsers::ParserGrammar::definition< ScannerT >::property_grammar |
Definition at line 715 of file ParserGrammar.h.
| IdentifierGrammar Gaudi::Parsers::ParserGrammar::definition< ScannerT >::identifier_grammar |
Definition at line 716 of file ParserGrammar.h.
| StringGrammar Gaudi::Parsers::ParserGrammar::definition< ScannerT >::string_grammar |
Definition at line 717 of file ParserGrammar.h.
| ValueGrammar Gaudi::Parsers::ParserGrammar::definition< ScannerT >::value_grammar |
Definition at line 718 of file ParserGrammar.h.
| rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::include_statement |
Definition at line 720 of file ParserGrammar.h.
| rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::units_statement |
Definition at line 720 of file ParserGrammar.h.
| rule<ScannerT,ClosureGrammar<std::vector<std::string> >::context_t> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::assign_statement |
Definition at line 723 of file ParserGrammar.h.
| rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::job_options_file |
Definition at line 726 of file ParserGrammar.h.
| rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::shell_statement |
Definition at line 726 of file ParserGrammar.h.
| rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::platform_statement |
Definition at line 726 of file ParserGrammar.h.
| rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::assertable_statement |
Definition at line 726 of file ParserGrammar.h.
| rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::assertion_statement |
Definition at line 726 of file ParserGrammar.h.
| rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::platform_dependency |
Definition at line 726 of file ParserGrammar.h.
| rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::pragma_statement |
Definition at line 726 of file ParserGrammar.h.
| rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::pragma |
Definition at line 726 of file ParserGrammar.h.
| rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::printopt_statement |
Definition at line 726 of file ParserGrammar.h.