ReachDefsIRInterface.hpp

Go to the documentation of this file.
00001 
00021 #ifndef ReachDefsIRInterface_h
00022 #define ReachDefsIRInterface_h
00023 
00024 #include <iostream>
00025 #include <list>
00026 #include <string>
00027 #include <OpenAnalysis/Utils/OA_ptr.hpp>
00028 #include <OpenAnalysis/IRInterface/IRHandles.hpp>
00029 #include <OpenAnalysis/IRInterface/AssignPairIterator.hpp>
00030 #include <OpenAnalysis/ExprTree/ExprTree.hpp>
00031 
00032 namespace OA {
00033   namespace ReachDefs {
00034 
00040 class ReachDefsIRInterface : public virtual IRHandlesIRInterface {
00041  public:
00042   ReachDefsIRInterface() { }
00043   virtual ~ReachDefsIRInterface() { }
00044  
00047   //virtual OA_ptr<IRSymIterator> getVisibleSymIterator(ProcHandle h) = 0; 
00048 
00051   virtual OA_ptr<IRStmtIterator> getStmtIterator(ProcHandle h) = 0; 
00052 
00055   virtual OA_ptr<MemRefHandleIterator> getAllMemRefs(StmtHandle stmt) = 0;
00056   
00059   virtual OA_ptr<MemRefHandleIterator> getDefMemRefs(StmtHandle stmt) = 0;
00060 
00061   virtual OA_ptr<MemRefHandleIterator> getUseMemRefs(StmtHandle stmt) = 0;
00062   
00064   virtual OA_ptr<IRCallsiteIterator> getCallsites(StmtHandle h) = 0;
00065 
00066   virtual OA_ptr<ExprTree> getExprTree(ExprHandle h) = 0;
00067 
00068 };  
00069 
00070   } // end of namespace ReachDef
00071 } // end of namespace OA
00072 
00073 #endif 

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