Vcsn  2.2a
Be Rational
fwd.hh
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory> // shared_ptr
4 
5 #include <vcsn/dyn/cast.hh>
6 
7 namespace vcsn
8 {
9  namespace dyn
10  {
11  // vcsn/dyn/automaton.hh.
12  namespace detail
13  {
14  class automaton;
15  }
17 
18  // vcsn/dyn/context.hh.
19  namespace detail
20  {
21  class context_base;
22  template <typename Context>
23  class context_wrapper;
24  }
26  using context = std::shared_ptr<const detail::context_base>;
27 
28  // vcsn/dyn/expansion.hh.
29  namespace detail
30  {
31  class expansion_base;
32  template <typename ExpansionSet>
33  class expansion_wrapper;
34  }
35  using expansion = std::shared_ptr<const detail::expansion_base>;
36 
37  // vcsn/dyn/label.hh.
38  namespace detail
39  {
40  class label_base;
41  template <typename LabelSet>
43  }
44  using label = std::shared_ptr<const detail::label_base>;
45 
46  // vcsn/dyn/polynomial.hh.
47  namespace detail
48  {
49  class polynomial_base;
50  template <typename PolynomialSet>
52  }
53  using polynomial = std::shared_ptr<const detail::polynomial_base>;
54 
55  // vcsn/dyn/expression.hh.
56  namespace detail
57  {
58  class expression_base;
59  template <typename ExpSet>
60  class expression_wrapper;
61  }
62  using expression = std::shared_ptr<detail::expression_base>;
63 
64  // vcsn/dyn/weight.hh.
65  namespace detail
66  {
67  class weight_base;
68  template <typename WeightSet>
70  }
71  using weight = std::shared_ptr<const detail::weight_base>;
72  }
73 
74  // vcsn/dyn/type-ast.hh.
75  namespace ast
76  {
77  class ast_node;
78  class automaton;
79  class context;
80  class expansionset;
81  class expressionset;
82  class genset;
83  class letterset;
84  class nullableset;
85  class oneset;
86  class other;
87  class polynomialset;
88  class tuple;
89  class tupleset;
90  class weightset;
91  class wordset;
92  }
93 } // namespace vcsn
Aggregate a polynomial and its polynomialset.
Definition: fwd.hh:51
Provide a variadic mul on top of a binary mul(), and one().
Definition: fwd.hh:46
Implementation of labels are words.
Definition: fwd.hh:36
std::shared_ptr< const detail::polynomial_base > polynomial
Definition: fwd.hh:53
Aggregate a label and its labelset.
Definition: fwd.hh:42
detail::automaton automaton
Definition: automaton.hh:108
ValueSet::value_t tuple(const ValueSet &vs, const typename ValueSets::value_t &...v)
Definition: tuple.hh:43
Implementation of labels are nullables (letter or empty).
Definition: fwd.hh:15
std::shared_ptr< const detail::context_base > context
A dyn::context.
Definition: fwd.hh:26
Implementation of labels are ones: there is a single instance of label.
Definition: oneset.hh:16
Implementation of labels are letters.
Definition: fwd.hh:11
std::shared_ptr< const detail::weight_base > weight
Definition: fwd.hh:71
std::shared_ptr< const detail::label_base > label
Definition: fwd.hh:44
std::shared_ptr< const detail::expansion_base > expansion
Definition: expansion.hh:73
std::shared_ptr< detail::expression_base > expression
Definition: expression.hh:92
Aggregate a weight and its weightset.
Definition: fwd.hh:69
Definition: a-star.hh:8