Lines Matching defs:fst

1 // vector-fst.h
29 #include <fst/mutable-fst.h>
30 #include <fst/test-properties.h>
33 namespace fst {
205 explicit VectorFstImpl(const Fst<A> &fst);
294 VectorFstImpl<A>::VectorFstImpl(const Fst<A> &fst) {
296 SetInputSymbols(fst.InputSymbols());
297 SetOutputSymbols(fst.OutputSymbols());
298 BaseImpl::SetStart(fst.Start());
299 if (fst.Properties(kExpanded, false))
300 BaseImpl::ReserveStates(CountStates(fst));
302 for (StateIterator< Fst<A> > siter(fst);
307 BaseImpl::SetFinal(s, fst.Final(s));
308 ReserveArcs(s, fst.NumArcs(s));
309 for (ArcIterator< Fst<A> > aiter(fst, s);
320 SetProperties(fst.Properties(kCopyProperties, false) | kStaticProperties);
425 explicit VectorFst(const Fst<A> &fst)
426 : ImplToMutableFst<Impl>(new Impl(fst)) {}
428 VectorFst(const VectorFst<A> &fst) : ImplToMutableFst<Impl>(fst) {}
435 VectorFst<A> &operator=(const VectorFst<A> &fst) {
436 SetImpl(fst.GetImpl(), false);
440 virtual VectorFst<A> &operator=(const Fst<A> &fst) {
441 if (this != &fst) SetImpl(new Impl(fst));
467 static bool WriteFst(const F &fst, ostream &strm,
504 // Specialization for VectorFst; see generic version in fst.h
512 explicit StateIterator(const VectorFst<A> &fst)
513 : nstates_(fst.GetImpl()->NumStates()), s_(0) {}
534 bool VectorFst<A>::WriteFst(const F &fst, ostream &strm,
539 hdr.SetStart(fst.Start());
542 if (fst.Properties(kExpanded, false) || (start_offset = strm.tellp()) != -1) {
543 hdr.SetNumStates(CountStates(fst));
546 uint64 properties = fst.Properties(kCopyProperties, false) |
548 FstImpl<A>::WriteFstHeader(fst, strm, opts, kFileVersion, "vector",
551 for (StateIterator<F> siter(fst); !siter.Done(); siter.Next()) {
553 fst.Final(s).Write(strm);
554 int64 narcs = fst.NumArcs(s);
556 for (ArcIterator<F> aiter(fst, s); !aiter.Done(); aiter.Next()) {
572 return FstImpl<A>::UpdateFstHeader(fst, strm, opts, kFileVersion, "vector",
583 // Specialization for VectorFst; see generic version in fst.h
591 ArcIterator(const VectorFst<A> &fst, StateId s)
592 : arcs_(fst.GetImpl()->GetState(s)->arcs), i_(0) {}
619 // Specialization for VectorFst; see generic version in fst.h
629 MutableArcIterator(VectorFst<A> *fst, StateId s) : i_(0) {
630 fst->MutateCheck();
631 state_ = fst->GetImpl()->GetState(s);
632 properties_ = &fst->GetImpl()->properties_;
729 } // namespace fst