concept.h

00001 /*
00002  * ASTL - the Automaton Standard Template Library.
00003  * C++ generic components for Finite State Automata handling.
00004  * Copyright (C) 2000-2003 Vincent Le Maout (vincent.lemaout@chello.fr).
00005  * 
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or (at your option) any later version.
00010  * 
00011  * This library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  * 
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with this library; if not, write to the Free Software
00018  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00019  *
00020  */
00021 
00022 #ifndef ASTL_CONCEPT_H
00023 #define ASTL_CONCEPT_H
00024 
00025 
00026 
00027 namespace astl {
00028 
00029 // Defines a hierarchy of concepts needed for dispatching:
00030 
00031 struct cursor_concept 
00032 { 
00033   typedef cursor_concept concept;
00034 };
00035 
00036 struct transition_cursor_concept 
00037 {
00038   typedef transition_cursor_concept concept;
00039 };
00040 
00041 struct forward_cursor_concept 
00042   : public cursor_concept, public transition_cursor_concept 
00043 {
00044   typedef forward_cursor_concept concept;
00045 };
00046 
00047 struct stack_cursor_concept : public transition_cursor_concept 
00048 {
00049   typedef stack_cursor_concept concept;
00050 };
00051 
00052 struct queue_cursor_concept : public transition_cursor_concept 
00053 {
00054   typedef queue_cursor_concept concept;
00055 };
00056 
00057 struct dfirst_cursor_concept 
00058 {
00059   typedef dfirst_cursor_concept concept;
00060 };
00061 
00062 struct bfirst_cursor_concept 
00063 {
00064   typedef bfirst_cursor_concept concept;
00065 };
00066 
00067 struct FA_concept {
00068   typedef FA_concept concept;
00069 };
00070 
00071 struct DFA_concept : public FA_concept {
00072   typedef DFA_concept concept;
00073 };
00074 
00075 struct NFA_concept : public FA_concept {
00076   typedef NFA_concept concept;
00077 };
00078 
00079 } // namespace astl
00080 
00081 #endif // ASTL_CONCEPT_H

Generated on Sun Mar 8 02:41:30 2009 for ASTL by  doxygen 1.5.7.1