00001 #ifndef WALI_NWA_STATEFUNCTOR_HPP 00002 #define WALI_NWA_STATEFUNCTOR_HPP 00003 00004 #include <vector> 00005 00006 #include "opennwa/NwaFwd.hpp" 00007 00008 namespace opennwa { 00009 namespace traverse { 00010 00011 class ConstStateFunctor 00012 { 00013 public: 00014 virtual ~ConstStateFunctor() {} 00015 00016 virtual void operator() (Nwa const & nwa, State state) = 0; 00017 }; 00018 00019 00020 class ConstCallStringStateFunctor 00021 { 00022 public: 00023 /// 00024 /// Index [0] is the bottom item on the stack. For main, the call 00025 /// stack will have one item in it with an unspecified value 00026 typedef std::vector<State> CallString; 00027 00028 virtual ~ConstCallStringStateFunctor() {} 00029 00030 virtual void operator() (Nwa const & nwa, CallString const & cs, State state) = 0; 00031 }; 00032 00033 } 00034 } 00035 00036 00037 00038 // Yo, Emacs! 00039 // Local Variables: 00040 // c-file-style: "ellemtel" 00041 // c-basic-offset: 2 00042 // End: 00043 00044 #endif