1 // fst-decl.h
2 
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 //
15 // Copyright 2005-2010 Google, Inc.
16 // Author: riley@google.com (Michael Riley)
17 //
18 // \file
19 // This file contains declarations of classes in the Fst template library.
20 //
21 
22 #ifndef FST_LIB_FST_DECL_H__
23 #define FST_LIB_FST_DECL_H__
24 
25 #include <memory>  // for allocator<>
26 #include <sys/types.h>
27 
28 #include <fst/types.h>
29 
30 namespace fst {
31 
32 class SymbolTable;
33 class SymbolTableIterator;
34 
35 template <class W> class FloatWeightTpl;
36 template <class W> class TropicalWeightTpl;
37 template <class W> class LogWeightTpl;
38 template <class W> class MinMaxWeightTpl;
39 
40 typedef FloatWeightTpl<float> FloatWeight;
41 typedef TropicalWeightTpl<float> TropicalWeight;
42 typedef LogWeightTpl<float> LogWeight;
43 typedef MinMaxWeightTpl<float> MinMaxWeight;
44 
45 template <class W> class ArcTpl;
46 typedef ArcTpl<TropicalWeight> StdArc;
47 typedef ArcTpl<LogWeight> LogArc;
48 
49 template <class E, class U> class DefaultCompactStore;
50 template <
51   class A, class C, class U = uint32,
52   class S = DefaultCompactStore<typename C::Element, U> > class CompactFst;
53 template <class A, class U = uint32> class ConstFst;
54 template <class A, class W, class M> class EditFst;
55 template <class A> class ExpandedFst;
56 template <class A> class Fst;
57 template <class A> class MutableFst;
58 template <class A, class M = std::allocator<A> > class VectorState;
59 template <class A, class S = VectorState<A> > class VectorFst;
60 
61 template <class A> class DefaultCacheStore;
62 template <class A, class C> class ArcSortFst;
63 template <class A> class ClosureFst;
64 template <class A, class C = DefaultCacheStore<A> > class ComposeFst;
65 template <class A> class ConcatFst;
66 template <class A> class DeterminizeFst;
67 template <class A> class DifferenceFst;
68 template <class A> class IntersectFst;
69 template <class A> class InvertFst;
70 template <class A, class B, class C> class ArcMapFst;
71 template <class A> class ProjectFst;
72 template <class A, class B, class S> class RandGenFst;
73 template <class A> class RelabelFst;
74 template <class A, class T, class C = DefaultCacheStore<A> > class ReplaceFst;
75 template <class A> class RmEpsilonFst;
76 template <class A> class UnionFst;
77 
78 template <class T, class Compare, bool max> class Heap;
79 
80 template <class A> class AcceptorCompactor;
81 template <class A> class StringCompactor;
82 template <class A> class UnweightedAcceptorCompactor;
83 template <class A> class UnweightedCompactor;
84 template <class A> class WeightedStringCompactor;
85 
86 template <class A, class P> class DefaultReplaceStateTable;
87 
88 typedef ConstFst<StdArc> StdConstFst;
89 typedef ExpandedFst<StdArc> StdExpandedFst;
90 typedef Fst<StdArc> StdFst;
91 typedef MutableFst<StdArc> StdMutableFst;
92 typedef VectorFst<StdArc> StdVectorFst;
93 
94 template <class C> class StdArcSortFst;
95 typedef ClosureFst<StdArc> StdClosureFst;
96 typedef ComposeFst<StdArc> StdComposeFst;
97 typedef ConcatFst<StdArc> StdConcatFst;
98 typedef DeterminizeFst<StdArc> StdDeterminizeFst;
99 typedef DifferenceFst<StdArc> StdDifferenceFst;
100 typedef IntersectFst<StdArc> StdIntersectFst;
101 typedef InvertFst<StdArc> StdInvertFst;
102 typedef ProjectFst<StdArc> StdProjectFst;
103 typedef RelabelFst<StdArc> StdRelabelFst;
104 typedef ReplaceFst<StdArc, DefaultReplaceStateTable<StdArc, ssize_t> >
105 StdReplaceFst;
106 typedef RmEpsilonFst<StdArc> StdRmEpsilonFst;
107 typedef UnionFst<StdArc> StdUnionFst;
108 
109 template <typename T> class IntegerFilterState;
110 typedef IntegerFilterState<signed char> CharFilterState;
111 typedef IntegerFilterState<short> ShortFilterState;
112 typedef IntegerFilterState<int> IntFilterState;
113 
114 template <class F> class Matcher;
115 template <class M1, class M2 = M1> class NullComposeFilter;
116 template <class M1, class M2 = M1> class SequenceComposeFilter;
117 template <class M1, class M2 = M1> class AltSequenceComposeFilter;
118 template <class M1, class M2 = M1> class MatchComposeFilter;
119 
120 }  // namespace fst
121 
122 #endif  // FST_LIB_FST_DECL_H__
123