CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Public Attributes
TrackerDetIdSelectorGrammar< ITERATOR > Struct Template Reference

#include <TrackerDetIdSelector.h>

Inheritance diagram for TrackerDetIdSelectorGrammar< ITERATOR >:

Public Member Functions

 TrackerDetIdSelectorGrammar ()
 

Public Attributes

boost::spirit::qi::rule
< ITERATOR, ExpressionAST(),
boost::spirit::ascii::space_type,
boost::spirit::qi::locals
< ExpressionAST > > 
comboRule
 
boost::spirit::qi::rule
< ITERATOR, ExpressionAST(),
boost::spirit::ascii::space_type > 
expressionRule
 
boost::spirit::qi::rule
< ITERATOR, std::string(),
boost::spirit::ascii::space_type > 
identifierFctRule
 
boost::spirit::qi::rule
< ITERATOR, ExpressionAST(),
boost::spirit::ascii::space_type > 
identifierRule
 

Detailed Description

template<typename ITERATOR>
struct TrackerDetIdSelectorGrammar< ITERATOR >

Definition at line 283 of file TrackerDetIdSelector.h.

Constructor & Destructor Documentation

template<typename ITERATOR>
TrackerDetIdSelectorGrammar< ITERATOR >::TrackerDetIdSelectorGrammar ( )
inline

Definition at line 311 of file TrackerDetIdSelector.h.

References alpha, TrackerDetIdSelectorGrammar< ITERATOR >::comboRule, TrackerDetIdSelectorGrammar< ITERATOR >::expressionRule, TrackerDetIdSelectorGrammar< ITERATOR >::identifierFctRule, and TrackerDetIdSelectorGrammar< ITERATOR >::identifierRule.

311  :
312  TrackerDetIdSelectorGrammar::base_type(comboRule)
313  {
314  namespace qi = boost::spirit::qi;
315  namespace ascii = boost::spirit::ascii;
316  namespace phoenix = boost::phoenix;
317 
319  qi::lexeme[+qi::alpha[qi::_val+=qi::_1]];
320 
322  (qi::true_[qi::_val=1] | qi::false_[qi::_val=0]) |
323  (qi::int_[qi::_val=qi::_1]) |
324  identifierFctRule[qi::_val=qi::_1];
325 
326  comboRule =
327  (expressionRule[qi::_a=qi::_1] >>
328  *(
329  (qi::lit("&&") >> expressionRule[qi::_a=qi::_a && qi::_1]) |
330  (qi::lit("||") >> expressionRule[qi::_a=qi::_a || qi::_1])
331  ))[qi::_val=qi::_a];
332 
334  qi::lit("(") >> comboRule[qi::_val=qi::_1] >> qi::lit(")") |
335  (identifierRule >> qi::lit(">") >> identifierRule)[qi::_val=qi::_1>qi::_2] |
336  (identifierRule >> qi::lit(">=") >> identifierRule)[qi::_val=qi::_1>=qi::_2] |
337  (identifierRule >> qi::lit("<") >> identifierRule)[qi::_val=qi::_1<qi::_2] |
338  (identifierRule >> qi::lit("<=") >> identifierRule)[qi::_val=qi::_1<=qi::_2] |
339  (identifierRule >> qi::lit("==") >> identifierRule)[qi::_val=qi::_1==qi::_2] |
340  (identifierRule >> qi::lit("!=") >> identifierRule)[qi::_val=qi::_1!=qi::_2] |
341  identifierRule[qi::_val=qi::_1];
342  }
float alpha
Definition: AMPTWrapper.h:95
boost::spirit::qi::rule< ITERATOR, ExpressionAST(), boost::spirit::ascii::space_type, boost::spirit::qi::locals< ExpressionAST > > comboRule
boost::spirit::qi::rule< ITERATOR, ExpressionAST(), boost::spirit::ascii::space_type > identifierRule
boost::spirit::qi::rule< ITERATOR, std::string(), boost::spirit::ascii::space_type > identifierFctRule
boost::spirit::qi::rule< ITERATOR, ExpressionAST(), boost::spirit::ascii::space_type > expressionRule

Member Data Documentation

template<typename ITERATOR>
boost::spirit::qi::rule< ITERATOR, ExpressionAST(), boost::spirit::ascii::space_type, boost::spirit::qi::locals<ExpressionAST> > TrackerDetIdSelectorGrammar< ITERATOR >::comboRule
template<typename ITERATOR>
boost::spirit::qi::rule< ITERATOR, ExpressionAST(), boost::spirit::ascii::space_type > TrackerDetIdSelectorGrammar< ITERATOR >::expressionRule
template<typename ITERATOR>
boost::spirit::qi::rule< ITERATOR, std::string(), boost::spirit::ascii::space_type > TrackerDetIdSelectorGrammar< ITERATOR >::identifierFctRule
template<typename ITERATOR>
boost::spirit::qi::rule< ITERATOR, ExpressionAST(), boost::spirit::ascii::space_type > TrackerDetIdSelectorGrammar< ITERATOR >::identifierRule