Vaucanson 1.4
|
00001 // -*- C++ -*- 00002 // automaton_maker.thh: this file is part of the Vaucanson project. 00003 // 00004 // Vaucanson, a generic library for finite state machines. 00005 // 00006 // Copyright (C) 2007, 2008 The Vaucanson Group. 00007 // 00008 // This program is free software; you can redistribute it and/or 00009 // modify it under the terms of the GNU General Public License 00010 // as published by the Free Software Foundation; either version 2 00011 // of the License, or (at your option) any later version. 00012 // 00013 // The complete GNU General Public Licence Notice can be found as the 00014 // `COPYING' file in the root directory. 00015 // 00016 // The Vaucanson Group consists of people listed in the `AUTHORS' file. 00017 // 00018 00019 /* 00020 * CPP guard should not be inserted here as 00021 * VCSN_CONTEXT_NAMESPACE could be changed. 00022 */ 00023 00024 namespace vcsn 00025 { 00026 namespace VCSN_GRAPH_IMPL 00027 { 00028 VCSN_CONTEXT_NAMESPACE 00029 { 00030 template <class T> 00031 automaton_t make_automaton(const T& alphabet); 00032 00033 template <class T> 00034 automaton_t make_automaton(const T& alphabet, 00035 const monoid_rep_t& mrep, 00036 const series_rep_t& srep); 00037 00038 template <class InputIterator> 00039 automaton_t make_automaton(InputIterator begin, 00040 InputIterator end); 00041 00042 template <class InputIterator> 00043 automaton_t make_automaton(InputIterator begin, 00044 InputIterator end, 00045 const monoid_rep_t& mrep, 00046 const series_rep_t& srep); 00047 00048 template <class T> 00049 automaton_letter_t make_automaton_letter(const T& alphabet); 00050 00051 template <class InputIterator> 00052 automaton_letter_t make_automaton_letter(InputIterator begin, 00053 InputIterator end); 00054 00055 template <class T> 00056 gen_automaton_t make_gen_automaton(const T& alphabet); 00057 00058 template <class InputIterator> 00059 gen_automaton_t make_gen_automaton(InputIterator begin, 00060 InputIterator end); 00061 00062 template <class Iterator> 00063 rat_exp_t 00064 make_rat_exp(const Iterator& begin, 00065 const Iterator& end, 00066 const std::string& exp = (vcsn::algebra:: 00067 SeriesRepDefault<semiring_t, monoid_t>:: 00068 get_instance()->zero), 00069 const monoid_rep_t& mrep = *(vcsn::algebra:: 00070 MonoidRepDefault<monoid_t>:: 00071 get_instance()), 00072 const series_rep_t& srep = *(vcsn::algebra:: 00073 SeriesRepDefault<semiring_t, monoid_t>:: 00074 get_instance())); 00075 00076 template <class T> 00077 rat_exp_t 00078 make_rat_exp(const T& alphabet, 00079 const std::string& exp = (vcsn::algebra:: 00080 SeriesRepDefault<semiring_t, monoid_t>:: 00081 get_instance()->zero), 00082 const monoid_rep_t& mrep = *(vcsn::algebra:: 00083 MonoidRepDefault<monoid_t>:: 00084 get_instance()), 00085 const series_rep_t& srep = *(vcsn::algebra:: 00086 SeriesRepDefault<semiring_t, monoid_t>:: 00087 get_instance())); 00088 00089 template <class SeriesSet, class SeriesImpl> 00090 automaton_t 00091 standard_of(const Element<SeriesSet, SeriesImpl>& e); 00092 00093 00094 template <class SeriesSet, class SeriesImpl> 00095 automaton_t 00096 thompson_of(const Element<SeriesSet, SeriesImpl>& e); 00097 00098 rat_exp_t 00099 aut_to_exp(const automaton_t& a); 00100 00101 template <class Chooser> 00102 rat_exp_t 00103 aut_to_exp(const automaton_t& a, const Chooser& c); 00104 } 00105 } 00106 } 00107 00108 # include <vaucanson/contexts/automaton_maker.thxx> 00109