Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 #ifndef VCSN_ALGORITHMS_INTERNAL_SKELETON_HH
00018 # define VCSN_ALGORITHMS_INTERNAL_SKELETON_HH
00019 
00030 # include <vaucanson/automata/concept/automata_base.hh>
00031 # include <vaucanson/misc/usual_macros.hh>
00032 # include <vector>
00033 
00034 
00035 namespace vcsn
00036 {
00037   
00038   
00039   
00040   template<typename A, typename T>
00041   class Skeleton
00042   {
00043     public:
00044 
00045       Skeleton(const Element<A, T>& x);
00046 
00047       const Element<A, T>& a;
00048 
00049       
00050       
00051       std::vector<typename T::hstate_t> states;
00052       
00053       
00054       std::vector<typename T::htransition_t> transitions;
00055       std::vector<int> src_transitions;
00056       std::vector<int> dst_transitions;
00057 
00058       
00059       std::vector< std::list<int> > delta_in;
00060       
00061       std::vector< std::list<int> > delta_out;
00062 
00063 
00064       
00065       std::list<int> I, F;
00066       
00067       std::vector<int> transitions_labels;
00068       
00069       std::vector<int> aux_states_int;
00070       std::vector<bool> aux_states_bool;
00071       std::vector<void*> aux_states_generic;
00072       std::vector<int> aux_transitions_int;
00073       std::vector<bool> aux_transitions_bool;
00074       std::vector<void*> aux_transitions_generic;
00075 
00076       void reserve_aux_states_int();
00077       void reserve_aux_states_bool();
00078       void reserve_aux_states_generic();
00079       void reserve_aux_transitions_int();
00080       void reserve_aux_transitions_bool();
00081       void reserve_aux_transitions_generic();
00082   };
00083 
00084 } 
00085 
00086 # if !defined VCSN_USE_INTERFACE_ONLY && !defined VCSN_USE_LIB
00087 #  include <vaucanson/algorithms/internal/skeleton.hxx>
00088 # endif // VCSN_USE_INTERFACE_ONLY
00089 
00090 #endif // ! VCSN_ALGORITHMS_INTERNAL_SKELETON_HH