Vaucanson 1.4
|
00001 // -*- C++ -*- 00002 // fmp_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) 2005, 2006, 2008, 2010 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 T1, class T2> 00031 automaton_t make_automaton(const T1& first_alphabet, 00032 const T2& second_alphabet); 00033 00034 template <class T1, class T2> 00035 automaton_t make_automaton(const T1& first_alphabet, 00036 const T2& second_alphabet, 00037 const monoid_rep_t& mrep, 00038 const first_monoid_rep_t& mrep1, 00039 const second_monoid_rep_t& mrep2, 00040 const series_rep_t& srep); 00041 00042 template <class FirstInputIterator, class SecondInputIterator> 00043 automaton_t make_automaton(const FirstInputIterator first_begin, 00044 const FirstInputIterator first_end, 00045 const SecondInputIterator second_begin, 00046 const SecondInputIterator second_end); 00047 00048 template <class FirstInputIterator, class SecondInputIterator> 00049 automaton_t make_automaton(const FirstInputIterator first_begin, 00050 const FirstInputIterator first_end, 00051 const SecondInputIterator second_begin, 00052 const SecondInputIterator second_end, 00053 const monoid_rep_t& mrep, 00054 const first_monoid_rep_t& mrep1, 00055 const second_monoid_rep_t& mrep2, 00056 const series_rep_t& srep); 00057 00058 template <class T1, class T2> 00059 monoid_elt_t make_couple(const T1& first_alphabet, 00060 const T2& second_alphabet, 00061 const first_monoid_elt_value_t& first_exp, 00062 const second_monoid_elt_value_t& second_exp); 00063 00064 template <class FirstIterator, class SecondIterator> 00065 monoid_elt_t make_couple(const FirstIterator first_begin, 00066 const FirstIterator first_end, 00067 const SecondIterator second_begin, 00068 const SecondIterator second_end, 00069 const first_monoid_elt_value_t& first_exp, 00070 const second_monoid_elt_value_t& second_exp); 00071 00072 template <typename TransStruct, 00073 typename TransImpl, 00074 typename ArgStruct, 00075 typename ArgImpl> 00076 AUTOMATON_CONTEXT::rat_exp_t 00077 evaluation(const Element<TransStruct, TransImpl>& t, 00078 const Element<ArgStruct, ArgImpl>& input); 00079 00080 rat_exp_t 00081 aut_to_exp(const automaton_t& a); 00082 00083 template <class Chooser> 00084 rat_exp_t 00085 aut_to_exp(const automaton_t& a, const Chooser& c); 00086 } // End of VCSN_CONTEXT_NAMESPACE. 00087 } // End of VCSN_GRAPH_IMPL 00088 } // End of namespace vcsn. 00089 00090 # include <vaucanson/contexts/fmp_transducer_maker.thxx>