fst-decl.h revision f4c12fce1ee58e670f9c3fce46c40296ba9ee8a2
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 <fst/types.h>
26
27namespace fst {
28
29class SymbolTable;
30class SymbolTableIterator;
31
32template <class W> class FloatWeightTpl;
33template <class W> class TropicalWeightTpl;
34template <class W> class LogWeightTpl;
35template <class W> class MinMaxWeightTpl;
36
37typedef FloatWeightTpl<float> FloatWeight;
38typedef TropicalWeightTpl<float> TropicalWeight;
39typedef LogWeightTpl<float> LogWeight;
40typedef MinMaxWeightTpl<float> MinMaxWeight;
41
42template <class W> class ArcTpl;
43typedef ArcTpl<TropicalWeight> StdArc;
44typedef ArcTpl<LogWeight> LogArc;
45
46template <class A, class C, class U = uint32> class CompactFst;
47template <class A, class U = uint32> class ConstFst;
48template <class A, class W, class M> class EditFst;
49template <class A> class ExpandedFst;
50template <class A> class Fst;
51template <class A> class MutableFst;
52template <class A> class VectorFst;
53
54template <class A, class C> class ArcSortFst;
55template <class A> class ClosureFst;
56template <class A> class ComposeFst;
57template <class A> class ConcatFst;
58template <class A> class DeterminizeFst;
59template <class A> class DeterminizeFst;
60template <class A> class DifferenceFst;
61template <class A> class IntersectFst;
62template <class A> class InvertFst;
63template <class A, class B, class C> class ArcMapFst;
64template <class A> class ProjectFst;
65template <class A, class B, class S> class RandGenFst;
66template <class A> class RelabelFst;
67template <class A, class T> class ReplaceFst;
68template <class A> class RmEpsilonFst;
69template <class A> class UnionFst;
70
71template <class T, class Compare, bool max> class Heap;
72
73template <class A> class AcceptorCompactor;
74template <class A> class StringCompactor;
75template <class A> class UnweightedAcceptorCompactor;
76template <class A> class UnweightedCompactor;
77template <class A> class WeightedStringCompactor;
78
79template <class A, class P> class DefaultReplaceStateTable;
80
81typedef CompactFst<StdArc, AcceptorCompactor<StdArc> >
82StdCompactAcceptorFst;
83typedef CompactFst< StdArc, StringCompactor<StdArc> >
84StdCompactStringFst;
85typedef CompactFst<StdArc, UnweightedAcceptorCompactor<StdArc> >
86StdCompactUnweightedAcceptorFst;
87typedef CompactFst<StdArc, UnweightedCompactor<StdArc> >
88StdCompactUnweightedFst;
89typedef CompactFst< StdArc, WeightedStringCompactor<StdArc> >
90StdCompactWeightedStringFst;
91typedef ConstFst<StdArc> StdConstFst;
92typedef ExpandedFst<StdArc> StdExpandedFst;
93typedef Fst<StdArc> StdFst;
94typedef MutableFst<StdArc> StdMutableFst;
95typedef VectorFst<StdArc> StdVectorFst;
96
97
98template <class C> class StdArcSortFst;
99typedef ClosureFst<StdArc> StdClosureFst;
100typedef ComposeFst<StdArc> StdComposeFst;
101typedef ConcatFst<StdArc> StdConcatFst;
102typedef DeterminizeFst<StdArc> StdDeterminizeFst;
103typedef DifferenceFst<StdArc> StdDifferenceFst;
104typedef IntersectFst<StdArc> StdIntersectFst;
105typedef InvertFst<StdArc> StdInvertFst;
106typedef ProjectFst<StdArc> StdProjectFst;
107typedef RelabelFst<StdArc> StdRelabelFst;
108typedef ReplaceFst<StdArc, DefaultReplaceStateTable<StdArc, ssize_t> >
109StdReplaceFst;
110typedef RmEpsilonFst<StdArc> StdRmEpsilonFst;
111typedef UnionFst<StdArc> StdUnionFst;
112
113template <typename T> class IntegerFilterState;
114typedef IntegerFilterState<signed char> CharFilterState;
115typedef IntegerFilterState<short> ShortFilterState;
116typedef IntegerFilterState<int> IntFilterState;
117
118template <class F> class Matcher;
119template <class M1, class M2 = M1> class SequenceComposeFilter;
120template <class M1, class M2 = M1> class AltSequenceComposeFilter;
121template <class M1, class M2 = M1> class MatchComposeFilter;
122
123}  // namespace fst
124
125#endif  // FST_LIB_FST_DECL_H__
126