Пример #1
0
inline SymsIndex countRuleSrcSymbols(Syms const& ngram) {
  SymsIndex r = 0;
  for (Syms::const_iterator i = ngram.begin(), e = ngram.end(); i != e; ++i)
    r += Vocabulary::isRuleSrcSymbol(*i);
  return r;
}
Пример #2
0
 /**
    convenience. doesn't call finishPhrase.
 */
 void phrase(Syms const& syms, IVocabulary& voc) const {
   for (Syms::const_iterator i = syms.begin(), e = syms.end(); i != e; ++i) operator()(voc.str(*i));
 }
Пример #3
0
inline bool isLexical(Syms const& syms) {
  for (Syms::const_iterator i = syms.begin(), e = syms.end(); i != e; ++i)
    if (!i->isLexical())
      return false;
  return true;
}
Пример #4
0
inline unsigned nLexical(Syms const& syms) {
  unsigned count = 0;
  for (Syms::const_iterator i = syms.begin(), e = syms.end(); i != e; ++i)
    count += i->isLexical();
  return count;
}
Пример #5
0
 std::size_t operator()( Syms const& sig ) const
 {
   return RangeHash(sig.begin(), sig.end());
 }