CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_6/src/CommonTools/Utils/src/ExpressionVarSetter.h

Go to the documentation of this file.
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