void CPrimitiveGroup::ResetGrammems()
{
    Grammems.Reset();
    for (CWord::SHomIt it = m_pWord->IterHomonyms(); it.Ok(); ++it)
        if (it->HasTerminalSymbol(GetActiveSymbol()))
            Grammems |= it->Grammems;
}
void CPrimitiveGroup::SetActiveSymbol(int iS)
{
    CGroup::SetActiveSymbol(iS);
    for (CWord::SHomIt it = m_pWord->IterHomonyms(); it.Ok32(); ++it)
        if (it->HasTerminalSymbol(iS))
            m_ActiveHomonyms |= (1 << it.GetID());

    ResetGrammems();
}