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