CMS 3D CMS Logo

Public Member Functions | Private Attributes

reco::parser::BinarySelectorSetter Class Reference

#include <BinarySelectorSetter.h>

List of all members.

Public Member Functions

 BinarySelectorSetter (SelectorStack &selStack, ComparisonStack &cmpStack, ExpressionStack &expStack)
void operator() (const char *begin, const char *) const

Private Attributes

ComparisonStackcmpStack_
ExpressionStackexpStack_
SelectorStackselStack_

Detailed Description

Definition at line 22 of file BinarySelectorSetter.h.


Constructor & Destructor Documentation

reco::parser::BinarySelectorSetter::BinarySelectorSetter ( SelectorStack selStack,
ComparisonStack cmpStack,
ExpressionStack expStack 
) [inline]

Definition at line 24 of file BinarySelectorSetter.h.

                                                                                  : 
        selStack_(selStack), cmpStack_(cmpStack), expStack_(expStack) { }

Member Function Documentation

void reco::parser::BinarySelectorSetter::operator() ( const char *  begin,
const char *   
) const [inline]

Definition at line 28 of file BinarySelectorSetter.h.

References cmpStack_, Exception, expStack_, and selStack_.

                                                              {
        if(expStack_.empty())
          throw Exception(begin)
            << "Grammar error: empty expression stack. Please contact developer.";
        if(cmpStack_.empty())
          throw Exception(begin)
            << "Grammar error: empty comparator stack. Please contact developer." << "\"";
        boost::shared_ptr<ExpressionBase> rhs = expStack_.back(); expStack_.pop_back();
        boost::shared_ptr<ExpressionBase> lhs = expStack_.back(); expStack_.pop_back();
        boost::shared_ptr<ComparisonBase> comp = cmpStack_.back(); cmpStack_.pop_back();
#ifdef BOOST_SPIRIT_DEBUG 
        BOOST_SPIRIT_DEBUG_OUT << "pushing binary selector" << std::endl;
#endif
        selStack_.push_back(SelectorPtr(new BinarySelector(lhs, comp, rhs)));
      }

Member Data Documentation

Definition at line 45 of file BinarySelectorSetter.h.

Referenced by operator()().

Definition at line 46 of file BinarySelectorSetter.h.

Referenced by operator()().

Definition at line 44 of file BinarySelectorSetter.h.

Referenced by operator()().