Exemple #1
0
        /*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);
        }
Exemple #2
0
        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);
        }