Vcsn  2.0
Be Rational
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
identities.hh
Go to the documentation of this file.
1 #ifndef VCSN_CORE_RAT_IDENTITIES_HH
2 # define VCSN_CORE_RAT_IDENTITIES_HH
3 
4 # include <iostream>
5 # include <string>
6 
7 # include <vcsn/core/join.hh>
8 # include <vcsn/misc/export.hh>
9 
10 namespace vcsn LIBVCSN_API
11 {
12  namespace rat
13  {
14 
17  enum class identities
18  {
20  trivial,
21 
23  series,
24  };
25 
26  std::string to_string(identities i);
27  std::istream& operator>>(std::istream& is, identities& i);
28  std::ostream& operator<<(std::ostream& os, identities i);
29 
31 
32  } // namespace rat
33 
34  namespace detail
35  {
36  template <>
38  {
41  {
42  return std::max(i1, i2);
43  }
44  };
45  }
46 } // namespace vcsn
47 
48 #endif // !VCSN_CORE_RAT_IDENTITIES_HH
std::istream & operator>>(std::istream &is, identities &i)
Definition: identities.cc:30
std::ostream & operator<<(std::ostream &o, type_t t)
Definition: printer.hxx:16
std::string to_string(identities i)
Definition: identities.cc:13
Trivial identities only.
rat::identities identities(const ratexp &exp)
Bridge.
Definition: identities.hh:26
identities meet(identities i1, identities i2)
Definition: identities.cc:48
Trivial identities plus series identities.
static type join(rat::identities i1, rat::identities i2)
Definition: identities.hh:40
std::istringstream is
The input stream: the specification to translate.
Definition: translate.cc:329
A structure that implements the computation of join(V1, V2).
Definition: join.hh:19
std::ostringstream os
The output stream: the corresponding C++ snippet to compile.
Definition: translate.cc:331
#define LIBVCSN_API
Definition: export.hh:9
identities
A ratexpset can implement several different sets of identities on expressions.
Definition: identities.hh:17