Vcsn  2.0
Be Rational
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
signature-printer.hh
Go to the documentation of this file.
1 #ifndef VCSN_DYN_SIGNATURE_PRINTER_HH
2 # define VCSN_DYN_SIGNATURE_PRINTER_HH
3 
4 # include <ostream>
5 
6 # include <vcsn/dyn/type-ast.hh>
7 
8 namespace vcsn
9 {
10  namespace ast
11  {
13  {
14  public:
15  signature_printer(std::ostream& os, bool full)
16  : os_(os), full_(full)
17  {}
18 
19 # define DEFINE(Type) \
20  virtual void visit(const Type& t)
21 
23  DEFINE(context);
24  DEFINE(genset);
25  DEFINE(letterset);
26  DEFINE(nullableset);
27  DEFINE(oneset);
28  DEFINE(other);
29  DEFINE(polynomialset);
31  DEFINE(tupleset);
32  DEFINE(weightset);
33  DEFINE(wordset);
34 
35 # undef DEFINE
36 
37  private:
38  std::ostream& os_;
39  bool full_;
40  };
41 
46  std::string normalize(const std::string& sig);
47 
48  }
49 }
50 
51 #endif // !VCSN_DYN_SIGNATURE_PRINTER_HH
std::shared_ptr< detail::automaton_base > automaton
Definition: automaton.hh:71
#define DEFINE(Type)
std::string normalize(const std::string &sig)
The signature, normalized.
std::shared_ptr< const detail::context_base > context
Definition: context.hh:71
std::ostringstream os
The output stream: the corresponding C++ snippet to compile.
Definition: translate.cc:331
variadic_mul_mixin< rat::ratexpset_impl< Context >> ratexpset
Definition: fwd.hh:166
signature_printer(std::ostream &os, bool full)