/search.css" rel="stylesheet" type="text/css"/> /search.js">
#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 510 of file ParserGrammar.h.
Gaudi::Parsers::ParserGrammar::definition< ScannerT >::definition | ( | ParserGrammar const & | self | ) | [inline] |
Definition at line 512 of file ParserGrammar.h.
{ value_grammar.setParser(self.parser()); boost::tuples::get<0>(self.attrs()) = true; // ------------------------------------------------------------------ // OPERATORS // ------------------------------------------------------------------ chlit<> O_SEMI(';'); chlit<> O_DOT('.'); strlit<> O_ASSIGN("="); strlit<> O_PLUSASSIGN("+="); strlit<> O_MINUSASSIGN("-="); // ------------------------------------------------------------------ // TOKENS // ------------------------------------------------------------------ strlit<> T_SHELL("#!"); strlit<> T_IFDEF("#ifdef"); strlit<> T_IFNDEF("#ifndef"); strlit<> T_ELSE("#else"); strlit<> T_ENDIF("#endif"); strlit<> T_WIN32("WIN32"); strlit<> T_INCLUDE("#include"); strlit<> T_UNITS("#units"); strlit<> T_PRAGMA("#pragma"); strlit<> T_PRINTOPTIONS("#printOptions"); // ------------------------------------------------------------------ job_options_file = !shell_statement >> *(platform_statement | platform_dependency); // ------------------------------------------------------------------ shell_statement = comment_p(T_SHELL); // ------------------------------------------------------------------ platform_statement = assertable_statement | pragma_statement; // ------------------------------------------------------------------ assertable_statement = include_statement [boost::bind(&ParserGrammar::matchInclude,&self,_1)] | units_statement [boost::bind(&ParserGrammar::matchUnits,&self,_1)] | assign_statement [boost::bind(&ParserGrammar::matchAssign,&self,_1)]; // ------------------------------------------------------------------ assertion_statement = T_IFDEF [boost::bind(&ParserGrammar::matchPlatform,&self,"ifdef")] | T_IFNDEF [boost::bind(&ParserGrammar::matchPlatform,&self,"ifndef")]; // ------------------------------------------------------------------ platform_dependency = assertion_statement >> T_WIN32 >> *platform_statement >> !( T_ELSE[boost::bind(&ParserGrammar::matchPlatform,&self,"else")] >> *platform_statement ) >> T_ENDIF [boost::bind(&ParserGrammar::matchPlatform,&self,"endif")]; // ------------------------------------------------------------------ include_statement = T_INCLUDE >> (string_grammar[include_statement.val=arg1]>>eps_p) [self.val=arg1]; // ------------------------------------------------------------------ units_statement = T_UNITS >> (string_grammar[units_statement.val=arg1]>>eps_p) [self.val=arg1];; // ------------------------------------------------------------------ pragma_statement = pragma | printopt_statement; // ------------------------------------------------------------------ pragma = (T_PRAGMA>>eps_p)[self.val=arg1] >> str_p("print") >> ((str_p("on") | str_p("ON")) [boost::bind(&ParserGrammar::matchPrint,&self,true)] | (str_p("off") | str_p("OFF")) [boost::bind(&ParserGrammar::matchPrint,&self,false)]) ; // ------------------------------------------------------------------ printopt_statement = ((T_PRINTOPTIONS>>eps_p)[self.val = arg1] >> !as_lower_d["full"]) [boost::bind(&ParserGrammar::matchPrintOptions,&self,true)]; // ------------------------------------------------------------------ assign_statement = property_grammar[assign_statement.val=arg1] >> eps_p[PushBack(assign_statement.val,"#")] >> ( O_ASSIGN[PushBack(assign_statement.val,"=")] |O_PLUSASSIGN[PushBack(assign_statement.val,"+=")] |O_MINUSASSIGN[PushBack(assign_statement.val,"-=")] ) >> value_grammar[boost::bind(&ParserGrammar::matchValue,&self,_1)] >> O_SEMI; // ------------------------------------------------------------------ }
rule<ScannerT> const& Gaudi::Parsers::ParserGrammar::definition< ScannerT >::start | ( | ) | const [inline] |
Definition at line 628 of file ParserGrammar.h.
{ return job_options_file; }
PropertyGrammar Gaudi::Parsers::ParserGrammar::definition< ScannerT >::property_grammar |
Definition at line 607 of file ParserGrammar.h.
IdentifierGrammar Gaudi::Parsers::ParserGrammar::definition< ScannerT >::identifier_grammar |
Definition at line 608 of file ParserGrammar.h.
StringGrammar Gaudi::Parsers::ParserGrammar::definition< ScannerT >::string_grammar |
Definition at line 609 of file ParserGrammar.h.
ValueGrammar Gaudi::Parsers::ParserGrammar::definition< ScannerT >::value_grammar |
Definition at line 610 of file ParserGrammar.h.
rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::include_statement |
Definition at line 612 of file ParserGrammar.h.
rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::units_statement |
Definition at line 612 of file ParserGrammar.h.
rule<ScannerT,ClosureGrammar<std::vector<std::string> >::context_t> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::assign_statement |
Definition at line 615 of file ParserGrammar.h.
rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::job_options_file |
Definition at line 618 of file ParserGrammar.h.
rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::shell_statement |
Definition at line 618 of file ParserGrammar.h.
rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::platform_statement |
Definition at line 618 of file ParserGrammar.h.
rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::assertable_statement |
Definition at line 618 of file ParserGrammar.h.
rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::assertion_statement |
Definition at line 618 of file ParserGrammar.h.
rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::platform_dependency |
Definition at line 618 of file ParserGrammar.h.
rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::pragma_statement |
Definition at line 618 of file ParserGrammar.h.
rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::pragma |
Definition at line 618 of file ParserGrammar.h.
rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::printopt_statement |
Definition at line 618 of file ParserGrammar.h.