- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

# automaton_maker.thh

    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