Lines Matching refs:FST2
54 M *matcher2; // FST2 matcher
85 M2 *matcher2; // FST2 matcher
123 ComposeFstImplBase(const Fst<A> &fst1, const Fst<A> &fst2,
129 if (!CompatSymbols(fst2.InputSymbols(), fst1.OutputSymbols())) {
136 SetOutputSymbols(fst2.OutputSymbols());
206 typedef typename M2::FST FST2;
222 ComposeFstImpl(const FST1 &fst1, const FST2 &fst2,
279 const FST2 &GetFst2() { return fst2_; }
378 const FST2 &fst2_;
388 const FST1 &fst1, const FST2 &fst2,
390 : ComposeFstImplBase<Arc>(fst1, fst2, opts),
392 new F(fst1, fst2, opts.matcher1, opts.matcher2)),
409 uint64 fprops2 = fst2.Properties(kFstProperties, false);
469 // delayed Fst. If FST1 transduces string x to y with weight a and FST2
516 ComposeFst(const Fst<A> &fst1, const Fst<A> &fst2,
518 : ImplToFst<Impl>(CreateBase(fst1, fst2, opts)) {}
524 ComposeFst(const Fst<A> &fst1, const Fst<A> &fst2,
526 : ImplToFst<Impl>(CreateBase1(fst1, fst2, opts)) {}
534 ComposeFst(const typename M1::FST &fst1, const typename M2::FST &fst2,
536 : ImplToFst<Impl>(CreateBase2(fst1, fst2, opts)) {}
563 const typename M1::FST &fst1, const typename M2::FST &fst2,
565 Impl *impl = new ComposeFstImpl<M1, M2, F, T>(fst1, fst2, opts);
568 int64 props2 = fst2.Properties(kUnweighted, true);
581 static Impl *CreateBase1(const Fst<A> &fst1, const Fst<A> &fst2,
585 return CreateBase2(fst1, fst2, nopts);
589 static Impl *CreateBase(const Fst<A> &fst1, const Fst<A> &fst2,
591 switch (LookAheadMatchType(fst1, fst2)) { // Check for lookahead matchers
596 return CreateBase1(fst1, fst2, nopts);
603 return CreateBase1(fst1, fst2, nopts);
605 case MATCH_INPUT: { // Lookahead on fst2
606 VLOG(2) << "ComposeFst: Lookahead on fst2";
610 return CreateBase1(fst1, fst2, nopts);
672 // y with weight a and FST2 transduces y to z with weight b, then