Vcsn  2.0
Be Rational
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
visitor.hxx
Go to the documentation of this file.
3 #include <cassert>
4 
5 namespace vcsn
6 {
7  namespace rat
8  {
9 #define VISIT(Type, Name) \
10  template <typename Context> \
11  inline \
12  void \
13  const_visitor<Context>::visit(const Type ## _t& Name)
14 
15  VISIT(prod, v)
16  {
17  for (auto t : v)
18  t->accept(*this);
19  }
20 
21  VISIT(conjunction, v)
22  {
23  for (auto t : v)
24  t->accept(*this);
25  }
26 
27  VISIT(shuffle, v)
28  {
29  for (auto t : v)
30  t->accept(*this);
31  }
32 
33  VISIT(ldiv, v)
34  {
35  for (auto t : v)
36  t->accept(*this);
37  }
38 
39  VISIT(sum, v)
40  {
41  for (auto t : v)
42  t->accept(*this);
43  }
44 
45  VISIT(star, v)
46  {
47  v.sub()->accept(*this);
48  }
49 
51  {
52  v.sub()->accept(*this);
53  }
54 
55  VISIT(rweight, v)
56  {
57  v.sub()->accept(*this);
58  }
59 
60  VISIT(complement, v)
61  {
62  v.sub()->accept(*this);
63  }
64 
66  {
67  v.sub()->accept(*this);
68  }
69 
71  {}
72 
73  VISIT(zero, )
74  {}
75 
77  {}
78 
79 #undef VISIT
80 
81  } // namespace rat
82 } // namespace vcsn
variadic< type_t::ldiv, Context > ldiv
Definition: fwd.hh:132
unary< type_t::complement, Context > complement
Definition: fwd.hh:110
An inner node with multiple children.
Definition: fwd.hh:123
unary< type_t::transposition, Context > transposition
Definition: fwd.hh:116
variadic< type_t::sum, Context > sum
Definition: fwd.hh:138
#define VISIT(Type, Name)
Definition: visitor.hxx:9
An inner node implementing a weight.
Definition: fwd.hh:145
variadic< type_t::shuffle, Context > shuffle
Definition: fwd.hh:135