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;
}