CalleeToCallerVisitor.hpp

Go to the documentation of this file.
00001 
00016 #ifndef CalleeToCallerVisitor_H
00017 #define CalleeToCallerVisitor_H
00018 
00019 #include <OpenAnalysis/Location/LocationVisitor.hpp>
00020 #include <OpenAnalysis/DataFlow/ParamBindings.hpp>
00021 #include <OpenAnalysis/Alias/InterAliasInterface.hpp>
00022 #include <OpenAnalysis/IRInterface/InterSideEffectIRInterface.hpp>
00023 #include <OpenAnalysis/MemRefExpr/MemRefExprVisitor.hpp>
00024 #include <OpenAnalysis/IRInterface/ParamBindingsIRInterface.hpp>
00025 #include <stack>
00026 #include <OpenAnalysis/IRInterface/CalleeToCallerVisitorIRInterface.hpp>
00027 
00028 namespace OA {
00029 
00030    namespace DataFlow {  
00031 //--------------------------------------------------------------------
00034 class CalleeToCallerVisitor : public virtual LocationVisitor {
00035     public:
00038         OA_ptr<LocIterator> getCallerLocIterator();
00039 
00040         CalleeToCallerVisitor(ProcHandle callee,
00041                               CallHandle call, ProcHandle caller,
00042                               OA_ptr<Alias::InterAliasInterface> interAlias,
00043                               OA_ptr<DataFlow::ParamBindings> paramBind,
00044                               OA_ptr<CalleeToCallerVisitorIRInterface> _ir);
00045         
00046 
00047         ~CalleeToCallerVisitor() {}
00048         
00049         void visitNamedLoc(NamedLoc& otherLoc); 
00050 
00051         void visitUnnamedLoc(UnnamedLoc& loc);
00052 
00053         void visitInvisibleLoc(InvisibleLoc& loc);
00054 
00055         void visitUnknownLoc(UnknownLoc& loc);
00056 
00057         void visitLocSubSet(LocSubSet& loc); 
00058 
00059       private:
00060         CallHandle mCall;
00061         ProcHandle mCaller;
00062         ProcHandle mCallee;
00063         OA_ptr<Alias::InterAliasInterface> mInterAlias;
00064         OA_ptr<DataFlow::ParamBindings> mParamBind;
00065         OA_ptr<Alias::Interface> mCallerAlias;
00066         OA_ptr<LocSet> mLocSet;
00067         OA_ptr<CalleeToCallerVisitorIRInterface> mIR;
00068 
00069     };
00070    } // end of DataFlow namespace
00071 } // end of OA namespace
00072 
00073 #endif

Generated on Sat Oct 31 05:21:20 2009 for OpenAnalysis by  doxygen 1.6.1