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