| # Gaudi Framework, version v22r4 |

Home |  | Generated: Fri Sep 2 2011

Public Member Functions | Public Attributes

# Gaudi::Parsers::FileGrammar< Iterator, Skipper > Struct Template Reference

`#include <Grammar.h>`

Inheritance diagram for Gaudi::Parsers::FileGrammar< Iterator, Skipper >:
[legend]
Collaboration diagram for Gaudi::Parsers::FileGrammar< Iterator, Skipper >:
[legend]

List of all members.

## Public Member Functions
| FileGrammar ()
## Public Attributes
qi::rule< Iterator, Node(), Skipper > | file
qi::rule< Iterator, Node(), Skipper > | include
qi::rule< Iterator, Node(), Skipper > | assign
qi::rule< Iterator, Node(), Skipper > | property
qi::rule< Iterator, Node(), Skipper > | property_ref
qi::rule< Iterator, Node(), Skipper > | oper
qi::rule< Iterator, Node(), Skipper > | map_value
qi::rule< Iterator, Node(), Skipper > | pair_value
qi::rule< Iterator, Node(), Skipper > | simple_value
qi::rule< Iterator, Node(), Skipper > | pair
qi::rule< Iterator, Node(), Skipper > | units
qi::rule< Iterator, Node(), Skipper > | print_options
qi::rule< Iterator, Node(), Skipper > | pragma
qi::rule< Iterator, Node(), Skipper > | pragma_print
qi::rule< Iterator, Node(), Skipper > | pragma_tree
qi::rule< Iterator, Node(), Skipper > | pragma_dump_file
qi::rule< Iterator, Node(), qi::locals< std::string > > | shell
qi::rule< Iterator, Node(), qi::locals< Iterator > , Skipper > | statement
qi::rule< Iterator, Node(), qi::locals< Iterator > , Skipper > | value
qi::rule< Iterator, Node(), qi::locals< char >, Skipper > | vector_value
qi::rule< Iterator, Node(), qi::locals< Node, Node > , Skipper > | condition
qi::rule< Iterator, char()> | begin_vector
qi::rule< Iterator, void(char)> | end_vector
StringGrammar< Iterator, Skipper > | gstring
BoolGrammar< Iterator, Skipper > | gbool
RealGrammar< Iterator, Skipper > | greal
IdentifierGrammar< Iterator, Skipper > | gidentifier
ph::function< NodeOperations > | op

## Detailed Description

### template<typename Iterator, typename Skipper>
struct Gaudi::Parsers::FileGrammar< Iterator, Skipper >

Definition at line 136 of file Grammar.h.

## Constructor & Destructor Documentation

template<typename Iterator , typename Skipper >

Gaudi::Parsers::FileGrammar< Iterator, Skipper >::FileGrammar | ( | ) | `[inline]`

Definition at line 137 of file Grammar.h.

                      : qi::grammar<Iterator, Node(), Skipper> {
      FileGrammar() : FileGrammar::base_type(file) {
          file = -shell[op(qi::_val,qi::_1)] >>
                  *(statement[op(qi::_val, qi::_1)])
                  [op(qi::_val, Node::kRoot)];
          shell = rep::confix("#!", qi::eol)[*(qi::char_[qi::_a += qi::_1]
                          - qi::eol)][op(qi::_val,Node::kShell)]
                          [op(qi::_val,qi::_a)];
          statement = rep::qi::iter_pos[qi::_a = qi::_1]
                        >> (include | assign | units | print_options | pragma
                            | condition)[qi::_val = qi::_1][op(qi::_val,qi::_a)];
          condition = (qi::lit("#ifdef")[op(qi::_a,Node::kIfdef)]
                            | qi::lit("#ifndef")[op(qi::_a,Node::kIfndef)])
                            >> property[op(qi::_val,qi::_1)]
                            >> (*statement[op(qi::_a,qi::_1)])[op(qi::_val, qi::_a)]
                            >> -(qi::lit("#else")[op(qi::_b,Node::kElse)]
                              >> *statement[op(qi::_b,qi::_1)])[op(qi::_val,qi::_b)]
                            >> qi::lit("#endif")[op(qi::_val, Node::kCondition)];
          include = qi::lit("#include")
                          >> gstring[op(qi::_val, qi::_1)]
                                    [op(qi::_val, Node::kInclude)];
          units = qi::lit("#units")
                          >> gstring[op(qi::_val, qi::_1)]
                                    [op(qi::_val, Node::kUnits)];
          print_options = qi::lit("#printOptions") >> qi::lit("full")
                        [op(qi::_val, Node::kPrintOptions)];
          pragma = qi::lit("#pragma") >> (pragma_print | pragma_tree |
              pragma_dump_file);
          pragma_print = qi::lit("print") >> enc::no_case[
            qi::lit("on")[op(qi::_val, Node::kPrintOn)]
            | qi::lit("off")[op(qi::_val, Node::kPrintOff)]
          ];
          pragma_tree = enc::no_case[
                         qi::lit("printtree")[op(qi::_val, Node::kPrintTree)]
                        ];
          pragma_dump_file  = qi::lit("dumpfile") >> gstring[op(qi::_val, qi::_1)]
                                                    [op(qi::_val, Node::kDumpFile)];
          assign = property[op(qi::_val, qi::_1)]
                                 [op(qi::_val, Node::kAssign)]
                          >> oper[op(qi::_val, qi::_1)]
                          >> value[op(qi::_val, qi::_1)]
                          >> ';';
          property = rep::qi::iter_pos[op(qi::_val, qi::_1)]
                             >> (gidentifier[op(qi::_val, qi::_1)]
                             >> -(gidentifier[op(qi::_val, qi::_1)]) % '.')
                        [op(qi::_val, Node::kProperty)];
          property_ref %= -qi::lit('@') >>
              property[op(qi::_val, Node::kPropertyRef)];
          oper = rep::qi::iter_pos[op(qi::_val, qi::_1)]
                       >> (qi::lit("=")[op(qi::_val, Node::kEqual)]
                            |
                            qi::lit("+=")[op(qi::_val, Node::kPlusEqual)]
                            |
                            qi::lit("-=")[op(qi::_val, Node::kMinusEqual)]);
          value = rep::qi::iter_pos[qi::_a =  qi::_1]
                         >>
                         (map_value | vector_value |  simple_value | property |
                             property_ref)
                         [qi::_val = qi::_1][op(qi::_val, qi::_a)]
                         ;
          begin_vector = enc::char_('(')[qi::_val=')']
                               |
                               enc::char_('[')[qi::_val=']']
                               |
                               enc::char_('{')[qi::_val='}'];
          end_vector = qi::char_(qi::_r1);
          vector_value = (begin_vector[qi::_a = qi::_1]
                                 >> -(value[op(qi::_val,qi::_1)] % ',')
                                   >> end_vector(qi::_a)
                               )[op(qi::_val,Node::kVector)];
          map_value = (enc::char_('{')
                        >> -(pair[op(qi::_val, qi::_1)] % ',')
                            >> enc::char_('}'))
                        [op(qi::_val, Node::kMap)];
          pair = simple_value[op(qi::_val,qi::_1)] >> ':'

## Member Data Documentation

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::assign

Definition at line 220 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, char()> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::begin_vector

Definition at line 227 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), qi::locals<Node, Node>, Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::condition

Definition at line 226 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, void(char)> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::end_vector

Definition at line 228 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::file

Definition at line 220 of file Grammar.h.

template<typename Iterator , typename Skipper >

BoolGrammar<Iterator, Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::gbool

Definition at line 230 of file Grammar.h.

template<typename Iterator , typename Skipper >

IdentifierGrammar<Iterator, Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::gidentifier

Definition at line 232 of file Grammar.h.

template<typename Iterator , typename Skipper >

RealGrammar<Iterator, Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::greal

Definition at line 231 of file Grammar.h.

template<typename Iterator , typename Skipper >

StringGrammar<Iterator, Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::gstring

Definition at line 229 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::include

Definition at line 220 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::map_value

Definition at line 220 of file Grammar.h.

template<typename Iterator , typename Skipper >

ph::function<NodeOperations> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::op

Definition at line 233 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::oper

Definition at line 220 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::pair

Definition at line 220 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::pair_value

Definition at line 220 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::pragma

Definition at line 220 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::pragma_dump_file

Definition at line 220 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::pragma_print

Definition at line 220 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::pragma_tree

Definition at line 220 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::print_options

Definition at line 220 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::property

Definition at line 220 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::property_ref

Definition at line 220 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(),qi::locals<std::string> > Gaudi::Parsers::FileGrammar< Iterator, Skipper >::shell

Definition at line 223 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::simple_value

Definition at line 220 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), qi::locals<Iterator>, Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::statement

Definition at line 224 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::units

Definition at line 220 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), qi::locals<Iterator>, Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::value

Definition at line 224 of file Grammar.h.

template<typename Iterator , typename Skipper >

qi::rule<Iterator, Node(), qi::locals<char>, Skipper> Gaudi::Parsers::FileGrammar< Iterator, Skipper >::vector_value

Definition at line 225 of file Grammar.h.

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

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v22r4/GaudiSvc/src/JobOptionsSvc/Grammar.h

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines