Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-01-09 23:33:15

0001 #ifndef CommonTools_Utils_MethodChainSetter_h
0002 #define CommonTools_Utils_MethodChainSetter_h
0003 /* \class reco::parser::MethodChainSetter
0004  *
0005  * Method Chain setter, used to construct MethodChain when parsing with boost::spirit
0006  *
0007  */
0008 #include "CommonTools/Utils/interface/parser/MethodChain.h"
0009 #include "CommonTools/Utils/interface/parser/MethodStack.h"
0010 #include "CommonTools/Utils/interface/parser/TypeStack.h"
0011 
0012 #include <iostream>
0013 
0014 namespace reco {
0015   namespace parser {
0016     struct MethodChainSetter {
0017       MethodChainSetter(MethodChainPtr &methchain,
0018                         MethodStack &methStack,
0019                         LazyMethodStack &lazyMethStack,
0020                         TypeStack &typeStack)
0021           : methchain_(methchain), methStack_(methStack), lazyMethStack_(lazyMethStack), typeStack_(typeStack) {}
0022       void operator()(const char *, const char *) const;
0023 
0024     private:
0025       void push(const char *, const char *) const;
0026       void lazyPush(const char *, const char *) const;
0027 
0028       MethodChainPtr &methchain_;
0029       MethodStack &methStack_;
0030       LazyMethodStack &lazyMethStack_;
0031       TypeStack &typeStack_;
0032     };
0033   }  // namespace parser
0034 }  // namespace reco
0035 
0036 #endif