/*unsafe public WordMorphology_t GetWordMorphology_4LastValueOriginalInNumeralChain( char* word, int wordLength, WordFormMorphologyModeEnum wordFormMorphologyMode ) * { * if ( DEFAULT_BUFFER_4_UPPER_SIZE <= wordLength ) * { * return (new WordMorphology_t()); * } * * fixed ( char* wordUpper_ptr = _Buffer4Upper ) * { * StringsHelper.ToUpperInvariant( word, wordUpper_ptr ); * * return (_GetWordMorphology_4LastValueUpperInNumeralChain( wordUpper_ptr, wordFormMorphologyMode )); * } * }*/ unsafe private WordMorphology_t _GetWordMorphology_4LastValueUpperInNumeralChain(char *wordUpper, WordFormMorphologyModeEnum wordFormMorphologyMode) { var wordMorphology = new WordMorphology_t(); if (_MorphoModel.GetWordFormMorphologies(wordUpper, _WordFormMorphologies, wordFormMorphologyMode)) { var len = _WordFormMorphologies.Count; switch (len) { case 0: break; case 1: wordMorphology.IsSinglePartOfSpeech = true; wordMorphology.PartOfSpeech = _WordFormMorphologies[0].PartOfSpeech; wordMorphology.WordFormMorphologies = _WordFormMorphologies; break; default: for (int i = 0; i < len; i++) { var pos = _WordFormMorphologies[i].PartOfSpeech; if (i == 0) { wordMorphology.IsSinglePartOfSpeech = true; } else { wordMorphology.IsSinglePartOfSpeech &= (wordMorphology.PartOfSpeech == pos); } wordMorphology.PartOfSpeech |= pos; } wordMorphology.WordFormMorphologies = _WordFormMorphologies; break; } } return(wordMorphology); }
public WordMorphology_t GetWordMorphology_NoToUpper(string wordUpper, WordFormMorphologyModeEnum wordFormMorphologyMode) { var wordMorphology = new WordMorphology_t(/*wordUpper*/); if (_MorphoModel.GetWordFormMorphologies(wordUpper, _WordFormMorphologies, wordFormMorphologyMode)) { var len = _WordFormMorphologies.Count; switch (len) { case 0: break; case 1: wordMorphology.IsSinglePartOfSpeech = true; wordMorphology.PartOfSpeech = _WordFormMorphologies[0].PartOfSpeech; wordMorphology.WordFormMorphologies = _WordFormMorphologies; break; default: for (int i = 0; i < len; i++) { var pos = _WordFormMorphologies[i].PartOfSpeech; if (i == 0) { wordMorphology.IsSinglePartOfSpeech = true; } else { wordMorphology.IsSinglePartOfSpeech &= (wordMorphology.PartOfSpeech == pos); } wordMorphology.PartOfSpeech |= pos; } wordMorphology.WordFormMorphologies = _WordFormMorphologies; break; } } return(wordMorphology); }