00001 #ifndef CommonTools_Utils_ExpressionVarSetter_h 00002 #define CommonTools_Utils_ExpressionVarSetter_h 00003 /* \class reco::parser::ExpressionNumber 00004 * 00005 * Numerical expression setter 00006 * 00007 * \author original version: Chris Jones, Cornell, 00008 * adapted to Reflex by Luca Lista, INFN 00009 * 00010 * \version $Revision: 1.2 $ 00011 * 00012 */ 00013 #include "CommonTools/Utils/src/ExpressionStack.h" 00014 #include "CommonTools/Utils/src/MethodStack.h" 00015 #include "CommonTools/Utils/src/TypeStack.h" 00016 00017 namespace reco { 00018 namespace parser { 00019 struct ExpressionVarSetter { 00020 ExpressionVarSetter(ExpressionStack & exprStack, 00021 MethodStack & methStack, 00022 LazyMethodStack & lazyMethStack, 00023 TypeStack & typeStack) : 00024 exprStack_(exprStack), 00025 methStack_(methStack), 00026 lazyMethStack_(lazyMethStack), 00027 typeStack_(typeStack) { } 00028 void operator()(const char *, const char *) const; 00029 00030 private: 00031 void push(const char *, const char *) const; 00032 void lazyPush(const char *, const char *) const; 00033 00034 ExpressionStack & exprStack_; 00035 MethodStack & methStack_; 00036 LazyMethodStack & lazyMethStack_; 00037 TypeStack & typeStack_; 00038 }; 00039 } 00040 } 00041 00042 #endif