Reach.hpp

Go to the documentation of this file.
00001 #ifndef REACH_GUARD
00002 #define REACH_GUARD 1
00003 
00004 /*!
00005  * @author Nicholas Kidd
00006  */
00007 
00008 #include "wali/SemElem.hpp"
00009 
00010 using wali::SemElem;
00011 using wali::sem_elem_t;
00012 
00013 class Reach : public wali::SemElem
00014 {
00015 
00016   public:
00017 
00018     Reach( bool b );
00019 
00020     virtual ~Reach();
00021 
00022     sem_elem_t one() const;
00023 
00024     sem_elem_t zero() const;
00025 
00026     // zero is the annihilator for extend
00027     sem_elem_t extend( SemElem* rhs );
00028 
00029     // zero is neutral for combine
00030     sem_elem_t combine( SemElem* rhs );
00031 
00032     bool equal( SemElem* rhs ) const;
00033 
00034     std::ostream & print( std::ostream & o ) const;
00035 
00036     sem_elem_t from_string( const std::string& s ) const;
00037 
00038     static int numReaches;
00039 
00040   protected:
00041     bool isreached;
00042 
00043 };
00044 
00045 #endif  // REACH_GUARD
00046