| # Gaudi Framework, version v21r9 |

Home |  | Generated: 3 May 2010

# Gaudi::Parsers::ParserGrammar::definition< ScannerT > Struct Template Reference

`#include <ParserGrammar.h>`

List of all members.

## 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

## Detailed Description

### template<typename ScannerT>
struct Gaudi::Parsers::ParserGrammar::definition< ScannerT >

Definition at line 618 of file ParserGrammar.h.

## Constructor & Destructor Documentation

template<typename ScannerT>

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         }

## Member Function Documentation

template<typename ScannerT>

rule<ScannerT> const& Gaudi::Parsers::ParserGrammar::definition< ScannerT >::start | ( |  | ) | const`[inline]`

Definition at line 736 of file ParserGrammar.h.

    00736                                             {
    00737           return job_options_file;
    00738         }

## Member Data Documentation

template<typename ScannerT>

PropertyGrammar Gaudi::Parsers::ParserGrammar::definition< ScannerT >::property_grammar

Definition at line 715 of file ParserGrammar.h.

template<typename ScannerT>

IdentifierGrammar Gaudi::Parsers::ParserGrammar::definition< ScannerT >::identifier_grammar

Definition at line 716 of file ParserGrammar.h.

template<typename ScannerT>

StringGrammar Gaudi::Parsers::ParserGrammar::definition< ScannerT >::string_grammar

Definition at line 717 of file ParserGrammar.h.

template<typename ScannerT>

ValueGrammar Gaudi::Parsers::ParserGrammar::definition< ScannerT >::value_grammar

Definition at line 718 of file ParserGrammar.h.

template<typename ScannerT>

rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::include_statement

Definition at line 720 of file ParserGrammar.h.

template<typename ScannerT>

rule<ScannerT,ClosureGrammar<std::string>::context_t> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::units_statement

Definition at line 720 of file ParserGrammar.h.

template<typename ScannerT>

rule<ScannerT,ClosureGrammar<std::vector<std::string> >::context_t> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::assign_statement

Definition at line 723 of file ParserGrammar.h.

template<typename ScannerT>

rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::job_options_file

Definition at line 726 of file ParserGrammar.h.

template<typename ScannerT>

rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::shell_statement

Definition at line 726 of file ParserGrammar.h.

template<typename ScannerT>

rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::platform_statement

Definition at line 726 of file ParserGrammar.h.

template<typename ScannerT>

rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::assertable_statement

Definition at line 726 of file ParserGrammar.h.

template<typename ScannerT>

rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::assertion_statement

Definition at line 726 of file ParserGrammar.h.

template<typename ScannerT>

rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::platform_dependency

Definition at line 726 of file ParserGrammar.h.

template<typename ScannerT>

rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::pragma_statement

Definition at line 726 of file ParserGrammar.h.

template<typename ScannerT>

rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::pragma

Definition at line 726 of file ParserGrammar.h.

template<typename ScannerT>

rule<ScannerT> Gaudi::Parsers::ParserGrammar::definition< ScannerT >::printopt_statement

Definition at line 726 of file ParserGrammar.h.

The documentation for this struct was generated from the following file:

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v21r9/GaudiSvc/src/JobOptionsSvc/ParserGrammar.h