| The Gaudi Framework v32r1 (f65d50dc)

Public Member Functions | Public Attributes | List of all members
Gaudi::Parsers::FileGrammar< Iterator, Skipper > Struct Template Reference

`#include <src/JobOptionsSvc/Grammar.h>`

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

## 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 134 of file Grammar.h.

## Constructor & Destructor Documentation

## ◆ FileGrammar()

template<typename Iterator , typename Skipper >

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

Definition at line 135 of file Grammar.h.

135 : FileGrammar::base_type( file ) {
136 file = -shell[op( qi::_val, qi::_1 )] >> *( statement[op( qi::_val, qi::_1 )] )[op( qi::_val, Node::kRoot )];
137 shell = rep::confix(
138 "#!",
139 qi::eol )[*( qi::char_[qi::_a += qi::_1] - qi::eol )][op( qi::_val, Node::kShell )][op( qi::_val, qi::_a )];
140 statement = rep::qi::iter_pos[qi::_a = qi::_1] >> ( include | assign | units | print_options | pragma |
141 condition )[qi::_val = qi::_1][op( qi::_val, qi::_a )];
142 condition =
143 ( qi::lit( "#ifdef" )[op( qi::_a, Node::kIfdef )] | qi::lit( "#ifndef" )[op( qi::_a, Node::kIfndef )] ) >>
144 property[op( qi::_val, qi::_1 )] >> ( *statement[op( qi::_a, qi::_1 )] )[op( qi::_val, qi::_a )] >>
145 -( qi::lit( "#else" )[op( qi::_b, Node::kElse )] >>
146 *statement[op( qi::_b, qi::_1 )] )[op( qi::_val, qi::_b )] >>
147 qi::lit( "#endif" )[op( qi::_val, Node::kCondition )];
148 include = qi::lit( "#include" ) >> gstring[op( qi::_val, qi::_1 )][op( qi::_val, Node::kInclude )];
149 units = qi::lit( "#units" ) >> gstring[op( qi::_val, qi::_1 )][op( qi::_val, Node::kUnits )];
150 print_options = qi::lit( "#printOptions" ) >> qi::lit( "full" )[op( qi::_val, Node::kPrintOptions )];
151 pragma = qi::lit( "#pragma" ) >> ( pragma_print | pragma_tree | pragma_dump_file );
152 pragma_print = qi::lit( "print" ) >> enc::no_case[qi::lit( "on" )[op( qi::_val, Node::kPrintOn )] |
153 qi::lit( "off" )[op( qi::_val, Node::kPrintOff )]];
154 pragma_tree = enc::no_case[qi::lit( "printtree" )[op( qi::_val, Node::kPrintTree )]];
155 pragma_dump_file = qi::lit( "dumpfile" ) >> gstring[op( qi::_val, qi::_1 )][op( qi::_val, Node::kDumpFile )];
156 assign = property[op( qi::_val, qi::_1 )][op( qi::_val, Node::kAssign )] >> oper[op( qi::_val, qi::_1 )] >>
157 value[op( qi::_val, qi::_1 )] >> ';';
158 property = rep::qi::iter_pos[op( qi::_val, qi::_1 )] >>
159 ( gidentifier[op( qi::_val, qi::_1 )] % '.' )[op( qi::_val, Node::kProperty )];
160 property_ref %= -qi::lit( '@' ) >> property[op( qi::_val, Node::kPropertyRef )];
161 oper = rep::qi::iter_pos[op( qi::_val, qi::_1 )] >>
162 ( qi::lit( "=" )[op( qi::_val, Node::kEqual )] | qi::lit( "+=" )[op( qi::_val, Node::kPlusEqual )] |
163 qi::lit( "-=" )[op( qi::_val, Node::kMinusEqual )] );
164 value = rep::qi::iter_pos[qi::_a = qi::_1] >> ( map_value | vector_value | simple_value | property |
165 property_ref )[qi::_val = qi::_1][op( qi::_val, qi::_a )];
166 begin_vector =
167 enc::char_( '(' )[qi::_val = ')'] | enc::char_( '[' )[qi::_val = ']'] | enc::char_( '{' )[qi::_val = '}'];
168 end_vector = qi::char_( qi::_r1 );
169 vector_value = ( begin_vector[qi::_a = qi::_1] >> -( value[op( qi::_val, qi::_1 )] % ',' ) >>
170 end_vector( qi::_a ) )[op( qi::_val, Node::kVector )];
171 map_value = ( enc::char_( '{' ) >> -( pair[op( qi::_val, qi::_1 )] % ',' ) >>
172 enc::char_( '}' ) )[op( qi::_val, Node::kMap )];
173 pair =
174 simple_value[op( qi::_val, qi::_1 )] >> ':' >> value[op( qi::_val, qi::_1 )][op( qi::_val, Node::kPair )];
175 simple_value = ( gstring[op( qi::_val, qi::_1 )][op( qi::_val, Node::kString )] ) |
176 ( gbool[op( qi::_val, qi::_1 )][op( qi::_val, Node::kBool )] ) | ( greal[qi::_val = qi::_1] );
177 }
Gaudi::Parsers::Node::kPropertyRef
Definition: Node.h:56
Gaudi::Parsers::FileGrammar::shell
qi::rule< Iterator, Node(), qi::locals< std::string > > shell
Definition: Grammar.h:180
Gaudi::Parsers::FileGrammar::file
qi::rule< Iterator, Node(), Skipper > file
Definition: Grammar.h:178
Gaudi::Parsers::FileGrammar::oper
qi::rule< Iterator, Node(), Skipper > oper
Definition: Grammar.h:178
Gaudi::Parsers::Node::kEqual
Definition: Node.h:34
Gaudi::Parsers::FileGrammar::simple_value
qi::rule< Iterator, Node(), Skipper > simple_value
Definition: Grammar.h:178
Gaudi::Parsers::FileGrammar::end_vector
qi::rule< Iterator, void(char)> end_vector
Definition: Grammar.h:185
Gaudi::Parsers::FileGrammar::condition
qi::rule< Iterator, Node(), qi::locals< Node, Node >, Skipper > condition
Definition: Grammar.h:183
Gaudi::Parsers::FileGrammar::print_options
qi::rule< Iterator, Node(), Skipper > print_options
Definition: Grammar.h:178
Gaudi::Parsers::Node::kMap
Definition: Node.h:38
Gaudi::Parsers::FileGrammar::include
qi::rule< Iterator, Node(), Skipper > include
Definition: Grammar.h:178
Gaudi::Parsers::FileGrammar::gidentifier
IdentifierGrammar< Iterator, Skipper > gidentifier
Definition: Grammar.h:189
Gaudi::Parsers::Node::kPrintTree
Definition: Node.h:54
Gaudi::Parsers::FileGrammar::pair
qi::rule< Iterator, Node(), Skipper > pair
Definition: Grammar.h:178
Gaudi::Parsers::FileGrammar::greal
RealGrammar< Iterator, Skipper > greal
Definition: Grammar.h:188
Gaudi::Parsers::Node::kPrintOn
Definition: Node.h:51
Gaudi::Parsers::Node::kInclude
Definition: Node.h:28
Gaudi::Parsers::Node::kRoot
Definition: Node.h:27
Gaudi::Parsers::FileGrammar::assign
qi::rule< Iterator, Node(), Skipper > assign
Definition: Grammar.h:178
Gaudi::Parsers::FileGrammar::statement
qi::rule< Iterator, Node(), qi::locals< Iterator >, Skipper > statement
Definition: Grammar.h:181
Gaudi::Parsers::FileGrammar::value
qi::rule< Iterator, Node(), qi::locals< Iterator >, Skipper > value
Definition: Grammar.h:181
Gaudi::Parsers::Node::kIfndef
Definition: Node.h:48
Gaudi::Parsers::Node::kPair
Definition: Node.h:39
Gaudi::Parsers::FileGrammar::pragma_tree
qi::rule< Iterator, Node(), Skipper > pragma_tree
Definition: Grammar.h:178
Gaudi::Parsers::FileGrammar::gbool
BoolGrammar< Iterator, Skipper > gbool
Definition: Grammar.h:187
Gaudi::Parsers::FileGrammar::op
ph::function< NodeOperations > op
Definition: Grammar.h:190
Gaudi::Parsers::FileGrammar::begin_vector
qi::rule< Iterator, char()> begin_vector
Definition: Grammar.h:184
Gaudi::Parsers::Node::kProperty
Definition: Node.h:30
Gaudi::Parsers::FileGrammar::vector_value
qi::rule< Iterator, Node(), qi::locals< char >, Skipper > vector_value
Definition: Grammar.h:182
Gaudi::Parsers::Node::kCondition
Definition: Node.h:46
Gaudi::Parsers::FileGrammar::units
qi::rule< Iterator, Node(), Skipper > units
Definition: Grammar.h:178
Gaudi::Parsers::Node::kAssign
Definition: Node.h:33
Gaudi::Parsers::Node::kPrintOff
Definition: Node.h:52
Gaudi::Parsers::FileGrammar::property
qi::rule< Iterator, Node(), Skipper > property
Definition: Grammar.h:178
Gaudi::Parsers::Node::kIfdef
Definition: Node.h:47
Gaudi::Parsers::FileGrammar::property_ref
qi::rule< Iterator, Node(), Skipper > property_ref
Definition: Grammar.h:178
Gaudi::Parsers::Node::kUnits
Definition: Node.h:44
Gaudi::Parsers::Node::kMinusEqual
Definition: Node.h:36
Gaudi::Parsers::Node::kElse
Definition: Node.h:49
Gaudi::Parsers::FileGrammar::gstring
StringGrammar< Iterator, Skipper > gstring
Definition: Grammar.h:186
Gaudi::Parsers::Node::kBool
Definition: Node.h:43
Gaudi::Parsers::Node::kVector
Definition: Node.h:37
Gaudi::Parsers::Node::kPlusEqual
Definition: Node.h:35
Gaudi::Parsers::FileGrammar::map_value
qi::rule< Iterator, Node(), Skipper > map_value
Definition: Grammar.h:178
Gaudi::Parsers::Node::kShell
Definition: Node.h:53
Gaudi::Parsers::Node::kPrintOptions
Definition: Node.h:50
Gaudi::Parsers::Node::kString
Definition: Node.h:41
Gaudi::Parsers::FileGrammar::pragma_print
qi::rule< Iterator, Node(), Skipper > pragma_print
Definition: Grammar.h:178
Gaudi::Parsers::Node::kDumpFile
Definition: Node.h:55
Gaudi::Parsers::FileGrammar::pragma
qi::rule< Iterator, Node(), Skipper > pragma
Definition: Grammar.h:178
Gaudi::Parsers::FileGrammar::pragma_dump_file
qi::rule< Iterator, Node(), Skipper > pragma_dump_file
Definition: Grammar.h:178

## Member Data Documentation

## ◆ assign

template<typename Iterator , typename Skipper >

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

Definition at line 178 of file Grammar.h.

## ◆ begin_vector

template<typename Iterator , typename Skipper >

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

Definition at line 184 of file Grammar.h.

## ◆ condition

template<typename Iterator , typename Skipper >

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

Definition at line 183 of file Grammar.h.

## ◆ end_vector

template<typename Iterator , typename Skipper >

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

Definition at line 185 of file Grammar.h.

## ◆ file

template<typename Iterator , typename Skipper >

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

Definition at line 178 of file Grammar.h.

## ◆ gbool

template<typename Iterator , typename Skipper >

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

Definition at line 187 of file Grammar.h.

## ◆ gidentifier

template<typename Iterator , typename Skipper >

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

Definition at line 189 of file Grammar.h.

## ◆ greal

template<typename Iterator , typename Skipper >

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

Definition at line 188 of file Grammar.h.

## ◆ gstring

template<typename Iterator , typename Skipper >

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

Definition at line 186 of file Grammar.h.

## ◆ include

template<typename Iterator , typename Skipper >

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

Definition at line 178 of file Grammar.h.

## ◆ map_value

template<typename Iterator , typename Skipper >

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

Definition at line 178 of file Grammar.h.

## ◆ op

template<typename Iterator , typename Skipper >

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

Definition at line 190 of file Grammar.h.

## ◆ oper

template<typename Iterator , typename Skipper >

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

Definition at line 178 of file Grammar.h.

## ◆ pair

template<typename Iterator , typename Skipper >

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

Definition at line 178 of file Grammar.h.

## ◆ pair_value

template<typename Iterator , typename Skipper >

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

Definition at line 178 of file Grammar.h.

## ◆ pragma

template<typename Iterator , typename Skipper >

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

Definition at line 178 of file Grammar.h.

## ◆ pragma_dump_file

template<typename Iterator , typename Skipper >

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

Definition at line 178 of file Grammar.h.

## ◆ pragma_print

template<typename Iterator , typename Skipper >

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

Definition at line 178 of file Grammar.h.

## ◆ pragma_tree

template<typename Iterator , typename Skipper >

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

Definition at line 178 of file Grammar.h.

## ◆ print_options

template<typename Iterator , typename Skipper >

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

Definition at line 178 of file Grammar.h.

## ◆ property

template<typename Iterator , typename Skipper >

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

Definition at line 178 of file Grammar.h.

## ◆ property_ref

template<typename Iterator , typename Skipper >

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

Definition at line 178 of file Grammar.h.

## ◆ shell

template<typename Iterator , typename Skipper >

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

Definition at line 180 of file Grammar.h.

## ◆ simple_value

template<typename Iterator , typename Skipper >

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

Definition at line 178 of file Grammar.h.

## ◆ statement

template<typename Iterator , typename Skipper >

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

Definition at line 181 of file Grammar.h.

## ◆ units

template<typename Iterator , typename Skipper >

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

Definition at line 178 of file Grammar.h.

## ◆ value

template<typename Iterator , typename Skipper >

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

Definition at line 181 of file Grammar.h.

## ◆ vector_value

template<typename Iterator , typename Skipper >

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

Definition at line 182 of file Grammar.h.

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

- GaudiCoreSvc/src/JobOptionsSvc/Grammar.h