当前位置: 首页>>代码示例>>C++>>正文


C++ CGroup::size方法代码示例

本文整理汇总了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;

	/*
//.........这里部分代码省略.........
开发者ID:deNULL,项目名称:seman,代码行数:101,代码来源:Gleiche.cpp


注:本文中的CGroup::size方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。