bool CAnalyticFormBuilder::HasShortParticipleOrAdj(const CWord& _W) const { for (CWord::SHomIt it = _W.IterHomonyms(); it.Ok(); ++it) if (it->IsShortAdjectiveOrParticiple()) return true; return false; }
bool CAnalyticFormBuilder::AllHomonymsArePredicates(const CWord& W) const { const TGramBitSet VerbGerundPraedic(gVerb, gGerund, gPraedic); for (CWord::SHomIt it = W.IterHomonyms(); it.Ok(); ++it) { if (it->HasAnyOfPOS(VerbGerundPraedic) || it->IsShortAdjectiveOrParticiple()) continue; //verbs that can not be predicates or an.f. if (!TAnalyticFormPredicates::Has(it->Lemma)) return false; } return true; }