本文整理汇总了C++中CGroup::size方法的典型用法代码示例。如果您正苦于以下问题:C++ CGroup::size方法的具体用法?C++ CGroup::size怎么用?C++ CGroup::size使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGroup
的用法示例。
在下文中一共展示了CGroup::size方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: format_for_noun_groups
bool CRusFormatCaller::format_for_noun_groups (CGroup& G)
{
const CGroup& FirstChild = get_maximal_group(G.m_iFirstWord);
if (FirstChild.m_iFirstWord != G.m_iFirstWord) return false;
int i = get_main_word_in_group(FirstChild);
if (!is_left_noun_modifier (Wi)) return false;
if( Wi.is_lemma("КОТОРЫЙ") )
return false;
string debug_str;
bool bFound_VSE = false; //слово "всe" начинает группу
bool bFoundParticiple = false; //нашли дст., пе, причастие
bool bAdjShouldBeInNominativOrGenitiv = false; //чтобы собрать "две красивых девочки"
//gleiche_for_small_numbers
int NounGroupNo;
if( Wi.get_upper_word()
&& !strcmp(Wi.get_upper_word(), "ВСЕ")
&& Wi.is_lemma("ВЕСЬ")
&& (get_maximal_group_size(i) == 1)
)
bFound_VSE = true;
if ( Wi.has_grammem(rActiveVoice)
&& Wi.has_grammem(rTransitive)
&& Wi.HasPOS(PARTICIPLE)
)
bFoundParticiple = true;
if ((G.m_iFirstWord+1) >= sent.size()) return false;
// собираем группу "сам себя"
int j;
if ( Wi.is_lemma( "САМ") )
{
G.m_iLastWord = get_maximal_group(G.m_iFirstWord).m_iLastWord + 1;
if (G.m_iLastWord < sent.size())
{
NounGroupNo = get_maximal_group_no(G.m_iLastWord);
j = (NounGroupNo == -1 ) ? G.m_iLastWord : GetGroups()[NounGroupNo].m_MainWordNo;
if ( Wj.is_lemma("СЕБЯ")
|| Wj.is_lemma("ТЫ")
|| Wj.is_lemma("Я")
|| Wj.is_lemma("МЫ") // "сами мы не местные"
)
if ((Wi.GetGrammems() & Wj.GetGrammems() & rAllCases) > 0)
{
i = j;
G.SetGrammems (Wi.GetGrammems() & Wj.GetGrammems() & (rAllCases | rAllGenders));
goto CreateGroup;
};
};
};
// нахождение последовательности П1 ... Пn С, где Пi - прилагательное или группа прилагательных,
// а С - ИГ.
// Согласование по падежу, числу и роду будет проверяться в другом цикле.
G.SetGrammems ( Wi.GetGrammems() );
for ( G.m_iLastWord = get_maximal_group(G.m_iFirstWord).m_iLastWord + 1;
G.m_iLastWord < sent.size();
G.m_iLastWord = get_maximal_group(G.m_iLastWord).m_iLastWord + 1
)
{
int i_gr = get_maximal_group_no(G.m_iLastWord);
i = (i_gr == -1) ? G.m_iLastWord:GetGroups()[i_gr].m_MainWordNo;
if( Wi.is_lemma("КОТОРЫЙ") )
return false;
if( i_gr != -1 )
{
G.SetGrammems (G.GetGrammems() & GetGroups()[i_gr].GetGrammems());
}
else
{
G.SetGrammems( G.GetGrammems() & Wi.GetGrammems() );
if( GetGramTab()->IsSimpleParticle(Wi.get_lemma(), Wi.GetPoses()) && (i > G.m_iFirstWord) )
continue;
}
if ( !is_left_noun_modifier (Wi)) break;
if ( Wi.has_grammem(rActiveVoice)
&& Wi.has_grammem(rTransitive)
&& Wi.HasPOS(PARTICIPLE)
)
bFoundParticiple = true;
}; // end of for by "G.m_iLastWord"
if (G.m_iLastWord < sent.size())
G.m_iLastWord = get_maximal_group(G.m_iLastWord).m_iLastWord;
/*
//.........这里部分代码省略.........