Esempio n. 1
0
 private void DisposeNativeResources()
 {
     if (_morphoAttributePairsBasePtr != null)
     {
         _morphoAttributePairsGCHandle.Free();
         _morphoAttributePairsBasePtr = null;
     }
 }
Esempio n. 2
0
        public MorphoAttributeList_v1()
        {
            var morphoAttributes = new List <MorphoAttributePair>(100)
            {
                /// первое
                new MorphoAttributePair(MorphoAttributeGroupEnum.Person, MorphoAttributeEnum.First),
                /// второе
                new MorphoAttributePair(MorphoAttributeGroupEnum.Person, MorphoAttributeEnum.Second),
                /// третье
                new MorphoAttributePair(MorphoAttributeGroupEnum.Person, MorphoAttributeEnum.Third),

                /// именительный
                new MorphoAttributePair(MorphoAttributeGroupEnum.Case, MorphoAttributeEnum.Nominative),
                /// родительный
                new MorphoAttributePair(MorphoAttributeGroupEnum.Case, MorphoAttributeEnum.Genitive),
                /// дательный
                new MorphoAttributePair(MorphoAttributeGroupEnum.Case, MorphoAttributeEnum.Dative),
                /// винительный
                new MorphoAttributePair(MorphoAttributeGroupEnum.Case, MorphoAttributeEnum.Accusative),
                /// творительный
                new MorphoAttributePair(MorphoAttributeGroupEnum.Case, MorphoAttributeEnum.Instrumental),
                /// предложный
                new MorphoAttributePair(MorphoAttributeGroupEnum.Case, MorphoAttributeEnum.Prepositional),
                /// местный
                new MorphoAttributePair(MorphoAttributeGroupEnum.Case, MorphoAttributeEnum.Locative),
                /// любой
                new MorphoAttributePair(MorphoAttributeGroupEnum.Case, MorphoAttributeEnum.Anycase),

                /// единственное
                new MorphoAttributePair(MorphoAttributeGroupEnum.Number, MorphoAttributeEnum.Singular),
                /// множественное
                new MorphoAttributePair(MorphoAttributeGroupEnum.Number, MorphoAttributeEnum.Plural),

                /// женский
                new MorphoAttributePair(MorphoAttributeGroupEnum.Gender, MorphoAttributeEnum.Feminine),
                /// мужской
                new MorphoAttributePair(MorphoAttributeGroupEnum.Gender, MorphoAttributeEnum.Masculine),
                /// средний
                new MorphoAttributePair(MorphoAttributeGroupEnum.Gender, MorphoAttributeEnum.Neuter),
                /// общий
                new MorphoAttributePair(MorphoAttributeGroupEnum.Gender, MorphoAttributeEnum.General),

                /// одушевленный
                new MorphoAttributePair(MorphoAttributeGroupEnum.Animateness, MorphoAttributeEnum.Animate),
                /// неодушевленный
                new MorphoAttributePair(MorphoAttributeGroupEnum.Animateness, MorphoAttributeEnum.Inanimate),

                /// имя собственное
                new MorphoAttributePair(MorphoAttributeGroupEnum.NounType, MorphoAttributeEnum.Proper),
                /// имя нарицательное
                new MorphoAttributePair(MorphoAttributeGroupEnum.NounType, MorphoAttributeEnum.Common),

                /// будущее
                new MorphoAttributePair(MorphoAttributeGroupEnum.Tense, MorphoAttributeEnum.Future),
                /// прошедшее
                new MorphoAttributePair(MorphoAttributeGroupEnum.Tense, MorphoAttributeEnum.Past),
                /// настоящее
                new MorphoAttributePair(MorphoAttributeGroupEnum.Tense, MorphoAttributeEnum.Present),
                /// будущее в прошедшем
                new MorphoAttributePair(MorphoAttributeGroupEnum.Tense, MorphoAttributeEnum.FutureInThePast),

                /// повелительное
                new MorphoAttributePair(MorphoAttributeGroupEnum.Mood, MorphoAttributeEnum.Imperative),
                /// изъявительное
                new MorphoAttributePair(MorphoAttributeGroupEnum.Mood, MorphoAttributeEnum.Indicative),
                /// сослагательное
                new MorphoAttributePair(MorphoAttributeGroupEnum.Mood, MorphoAttributeEnum.Subjunctive),
                /// личный глагол
                new MorphoAttributePair(MorphoAttributeGroupEnum.Mood, MorphoAttributeEnum.Personal),
                /// безличный глагол
                new MorphoAttributePair(MorphoAttributeGroupEnum.Mood, MorphoAttributeEnum.Impersonal),
                /// деепричастие
                new MorphoAttributePair(MorphoAttributeGroupEnum.Mood, MorphoAttributeEnum.Gerund),
                /// причастие
                new MorphoAttributePair(MorphoAttributeGroupEnum.Mood, MorphoAttributeEnum.Participle),

                /// действительный
                new MorphoAttributePair(MorphoAttributeGroupEnum.Voice, MorphoAttributeEnum.Active),
                /// страдательный
                new MorphoAttributePair(MorphoAttributeGroupEnum.Voice, MorphoAttributeEnum.Passive),

                /// переходный
                new MorphoAttributePair(MorphoAttributeGroupEnum.VerbTransitivity, MorphoAttributeEnum.Transitive),
                /// непереходный
                new MorphoAttributePair(MorphoAttributeGroupEnum.VerbTransitivity, MorphoAttributeEnum.Intransitive),

                /// несовершенная
                new MorphoAttributePair(MorphoAttributeGroupEnum.VerbForm, MorphoAttributeEnum.Imperfective),
                /// совершенная
                new MorphoAttributePair(MorphoAttributeGroupEnum.VerbForm, MorphoAttributeEnum.Perfective),
                /// совершенная и несовершенная
                new MorphoAttributePair(MorphoAttributeGroupEnum.VerbForm, MorphoAttributeEnum.PerfImPerf),

                /// порядковое
                new MorphoAttributePair(MorphoAttributeGroupEnum.NumeralType, MorphoAttributeEnum.Ordinal),
                /// количественное
                new MorphoAttributePair(MorphoAttributeGroupEnum.NumeralType, MorphoAttributeEnum.Cardinal),
                /// собирательное
                new MorphoAttributePair(MorphoAttributeGroupEnum.NumeralType, MorphoAttributeEnum.Collective),

                /// краткая
                new MorphoAttributePair(MorphoAttributeGroupEnum.AdjectForm, MorphoAttributeEnum.Short),

                /// сравнительная
                new MorphoAttributePair(MorphoAttributeGroupEnum.DegreeOfComparison, MorphoAttributeEnum.Comparative),
                /// превосходная
                new MorphoAttributePair(MorphoAttributeGroupEnum.DegreeOfComparison, MorphoAttributeEnum.Superlative),

                /// сочинительный
                new MorphoAttributePair(MorphoAttributeGroupEnum.ConjunctionType, MorphoAttributeEnum.Subordinating),
                /// подчинительный
                new MorphoAttributePair(MorphoAttributeGroupEnum.ConjunctionType, MorphoAttributeEnum.Coordinating),

                /// вопросительное
                new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Interrogative),
                /// относительное
                new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Relative),
                /// относительное и вопросительное
                new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.InterrogativeRelative),
                /// отрицательное
                new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Negative),
                /// возвратное
                new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Reflexive),
                /// неопределенное 1
                new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Indefinitive1),
                /// неопределенное 2
                new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Indefinitive2),
                /// указательное
                new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Indicative),
                /// притяжательное
                new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Possessive),
                /// личное
                new MorphoAttributePair(MorphoAttributeGroupEnum.PronounType, MorphoAttributeEnum.Personal),

                /// определенный
                new MorphoAttributePair(MorphoAttributeGroupEnum.ArticleType, MorphoAttributeEnum.Definite),
                /// неопределенный
                new MorphoAttributePair(MorphoAttributeGroupEnum.ArticleType, MorphoAttributeEnum.Indefinite),

                /// инфинитив
                new MorphoAttributePair(MorphoAttributeGroupEnum.VerbType, MorphoAttributeEnum.Infinitive),
                /// деепричастие
                new MorphoAttributePair(MorphoAttributeGroupEnum.VerbType, MorphoAttributeEnum.AdverbialParticiple),
                /// вспомогательный глагол
                new MorphoAttributePair(MorphoAttributeGroupEnum.VerbType, MorphoAttributeEnum.AuxiliaryVerb),
                /// причастие
                new MorphoAttributePair(MorphoAttributeGroupEnum.VerbType, MorphoAttributeEnum.Participle),

                /// относительное и вопросительное
                new MorphoAttributePair(MorphoAttributeGroupEnum.AdverbType, MorphoAttributeEnum.InterrogativeRelative)
            };

            _morphoAttributePairs = morphoAttributes.ToArray();
            _morphoAttributePairsLength_Minus1 = _morphoAttributePairs.Length - 1;
            _morphoAttributePairsGCHandle      = GCHandle.Alloc(_morphoAttributePairs, GCHandleType.Pinned);
            _morphoAttributePairsBasePtr       = (MorphoAttributePair *)_morphoAttributePairsGCHandle.AddrOfPinnedObject().ToPointer();
        }