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