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