// See www.openfst.org for extensive documentation on this weighted // finite-state transducer library. #ifndef FST_SCRIPT_ARCSORT_H_ #define FST_SCRIPT_ARCSORT_H_ #include #include #include namespace fst { namespace script { enum ArcSortType { ILABEL_SORT, OLABEL_SORT }; using ArcSortArgs = std::pair; template void ArcSort(ArcSortArgs *args) { MutableFst *fst = std::get<0>(*args)->GetMutableFst(); switch (std::get<1>(*args)) { case ILABEL_SORT: { const ILabelCompare icomp; ArcSort(fst, icomp); return; } case OLABEL_SORT: { const OLabelCompare ocomp; ArcSort(fst, ocomp); return; } } } void ArcSort(MutableFstClass *ofst, ArcSortType); } // namespace script } // namespace fst #endif // FST_SCRIPT_ARCSORT_H_