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