Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-08-17 23:10:24

0001 #ifndef CommonTools_Utils_ExpressionVarSetter_h
0002 #define CommonTools_Utils_ExpressionVarSetter_h
0003 /* \class reco::parser::ExpressionNumber
0004  *
0005  * Numerical expression setter
0006  *
0007  * \author original version: Chris Jones, Cornell, 
0008  *         adapted by Luca Lista, INFN
0009  *
0010  * \version $Revision: 1.3 $
0011  *
0012  */
0013 #include "CommonTools/Utils/interface/ExpressionStack.h"
0014 #include "CommonTools/Utils/interface/MethodStack.h"
0015 #include "CommonTools/Utils/interface/TypeStack.h"
0016 
0017 namespace reco {
0018   namespace parser {
0019     struct ExpressionVarSetter {
0020       ExpressionVarSetter(ExpressionStack &exprStack,
0021                           MethodStack &methStack,
0022                           LazyMethodStack &lazyMethStack,
0023                           TypeStack &typeStack)
0024           : exprStack_(exprStack), methStack_(methStack), lazyMethStack_(lazyMethStack), typeStack_(typeStack) {}
0025       void operator()(const char *, const char *) const;
0026 
0027     private:
0028       void push(const char *, const char *) const;
0029       void lazyPush(const char *, const char *) const;
0030 
0031       ExpressionStack &exprStack_;
0032       MethodStack &methStack_;
0033       LazyMethodStack &lazyMethStack_;
0034       TypeStack &typeStack_;
0035     };
0036   }  // namespace parser
0037 }  // namespace reco
0038 
0039 #endif