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 DifferenceFst; 60template <class A> class IntersectFst; 61template <class A> class InvertFst; 62template <class A, class B, class C> class ArcMapFst; 63template <class A> class ProjectFst; 64template <class A, class B, class S> class RandGenFst; 65template <class A> class RelabelFst; 66template <class A, class T> class ReplaceFst; 67template <class A> class RmEpsilonFst; 68template <class A> class UnionFst; 69 70template <class T, class Compare, bool max> class Heap; 71 72template <class A> class AcceptorCompactor; 73template <class A> class StringCompactor; 74template <class A> class UnweightedAcceptorCompactor; 75template <class A> class UnweightedCompactor; 76template <class A> class WeightedStringCompactor; 77 78template <class A, class P> class DefaultReplaceStateTable; 79 80typedef CompactFst<StdArc, AcceptorCompactor<StdArc> > 81StdCompactAcceptorFst; 82typedef CompactFst< StdArc, StringCompactor<StdArc> > 83StdCompactStringFst; 84typedef CompactFst<StdArc, UnweightedAcceptorCompactor<StdArc> > 85StdCompactUnweightedAcceptorFst; 86typedef CompactFst<StdArc, UnweightedCompactor<StdArc> > 87StdCompactUnweightedFst; 88typedef CompactFst< StdArc, WeightedStringCompactor<StdArc> > 89StdCompactWeightedStringFst; 90typedef ConstFst<StdArc> StdConstFst; 91typedef ExpandedFst<StdArc> StdExpandedFst; 92typedef Fst<StdArc> StdFst; 93typedef MutableFst<StdArc> StdMutableFst; 94typedef VectorFst<StdArc> StdVectorFst; 95 96 97template <class C> class StdArcSortFst; 98typedef ClosureFst<StdArc> StdClosureFst; 99typedef ComposeFst<StdArc> StdComposeFst; 100typedef ConcatFst<StdArc> StdConcatFst; 101typedef DeterminizeFst<StdArc> StdDeterminizeFst; 102typedef DifferenceFst<StdArc> StdDifferenceFst; 103typedef IntersectFst<StdArc> StdIntersectFst; 104typedef InvertFst<StdArc> StdInvertFst; 105typedef ProjectFst<StdArc> StdProjectFst; 106typedef RelabelFst<StdArc> StdRelabelFst; 107typedef ReplaceFst<StdArc, DefaultReplaceStateTable<StdArc, ssize_t> > 108StdReplaceFst; 109typedef RmEpsilonFst<StdArc> StdRmEpsilonFst; 110typedef UnionFst<StdArc> StdUnionFst; 111 112template <typename T> class IntegerFilterState; 113typedef IntegerFilterState<signed char> CharFilterState; 114typedef IntegerFilterState<short> ShortFilterState; 115typedef IntegerFilterState<int> IntFilterState; 116 117template <class F> class Matcher; 118template <class M1, class M2 = M1> class SequenceComposeFilter; 119template <class M1, class M2 = M1> class AltSequenceComposeFilter; 120template <class M1, class M2 = M1> class MatchComposeFilter; 121 122} // namespace fst 123 124#endif // FST_LIB_FST_DECL_H__ 125