Example #1
0
 internal MorphoTypeNative(PartOfSpeechBase partOfSpeechBase)
 {
     _morphoAttributeGroup = partOfSpeechBase.MorphoAttributeGroup;
     _partOfSpeech         = partOfSpeechBase.PartOfSpeech;
     _morphoFormEndings    = EMPTY_ENDINGS;
     _morphoFormEndingUpperAndMorphoAttributes = EMPTY_MFUEMA;
 }
        public MorphoAttributePair?TryGetMorphoAttributePair(
            MorphoAttributeGroupEnum morphoAttributeGroup,
            MorphoAttributeEnum morphoAttribute)
        {
            if (_Set.TryGetValue(morphoAttributeGroup, morphoAttribute, ref _Pair))
            {
                return(_Pair);
            }

            return(null);
        }
        /// создание морфоатрибута из строки
        /// attribute - строка со значением атрибута
        /// attributeType - тип атрибута
        public MorphoAttributePair GetMorphoAttributePair(
            MorphoAttributeGroupEnum morphoAttributeGroup,
            MorphoAttributeEnum morphoAttribute)
        {
            if (_Set.TryGetValue(morphoAttributeGroup, morphoAttribute, ref _Pair))
            {
                return(_Pair);
            }

            throw new MorphoFormatException();
        }
        public MorphoAttributePair GetMorphoAttributePair_2(
            MorphoAttributeGroupEnum morphoAttributeGroup,
            MorphoAttributeEnum morphoAttribute)
        {
            var pair = default(MorphoAttributePair);

            if (_Set.TryGetValue(morphoAttributeGroup, morphoAttribute, ref pair))
            {
                return(pair);
            }

            throw new MorphoFormatException();
        }
            public bool Contains(MorphoAttributeGroupEnum morphoAttributeGroup, MorphoAttributeEnum morphoAttribute)
            {
                int hash = InternalGetHashCode(morphoAttributeGroup, morphoAttribute);

                for (int i = _Buckets[hash % _Buckets.Length] - 1; 0 <= i;)
                {
                    var slot = _Slots[i];
                    if ((slot.hashCode == hash) && IsEquals(ref slot.value, morphoAttributeGroup, morphoAttribute))
                    {
                        return(true);
                    }
                    i = slot.next;
                }

                return(false);
            }
        public MorphoAttributePair?TryGetMorphoAttributePair(
            MorphoAttributeGroupEnum morphoAttributeGroup,
            MorphoAttributeEnum morphoAttribute)
        {
            for (int i = _morphoAttributePairsLength_Minus1; 0 <= i; i--)
            {
                var morphoAttributePair = (_morphoAttributePairsBasePtr + i);
                if ((morphoAttributeGroup & morphoAttributePair->MorphoAttributeGroup) == morphoAttributeGroup &&
                    (morphoAttribute & morphoAttributePair->MorphoAttribute) == morphoAttribute)
                {
                    return(*morphoAttributePair);
                }
            }

            return(null);
        }
        /// создание морфоатрибута из строки
        /// attribute - строка со значением атрибута
        /// attributeType - тип атрибута
        public MorphoAttributePair GetMorphoAttributePair(
            MorphoAttributeGroupEnum morphoAttributeGroup,
            MorphoAttributeEnum morphoAttribute)
        {
            {
                for (int i = _morphoAttributePairsLength_Minus1; 0 <= i; i--)
                {
                    var morphoAttributePair = (_morphoAttributePairsBasePtr + i);
                    if ((morphoAttributeGroup & morphoAttributePair->MorphoAttributeGroup) == morphoAttributeGroup &&
                        (morphoAttribute & morphoAttributePair->MorphoAttribute) == morphoAttribute)
                    {
                        return(*morphoAttributePair);
                    }
                }
            }

            throw new MorphoFormatException();
        }
Example #8
0
 public MorphoAttributePair(MorphoAttributeGroupEnum morphoAttributeGroup, MorphoAttributeEnum morphoAttribute)
 {
     _MorphoAttributeGroup = morphoAttributeGroup;
     _MorphoAttribute      = morphoAttribute;
 }
 private static int InternalGetHashCode(MorphoAttributeGroupEnum morphoAttributeGroup, MorphoAttributeEnum morphoAttribute)
 {
     return((morphoAttributeGroup.GetHashCode() ^ morphoAttribute.GetHashCode()) & 0x7fffffff);
 }
Example #10
0
 private static bool IsEquals(ref MorphoAttributePair v1, MorphoAttributeGroupEnum morphoAttributeGroup, MorphoAttributeEnum morphoAttribute)
 {
     return((v1.MorphoAttributeGroup & morphoAttributeGroup) == morphoAttributeGroup &&
            (v1.MorphoAttribute & morphoAttribute) == morphoAttribute);
 }
Example #11
0
 internal MorphoType(PartOfSpeechBase partOfSpeechBase)
 {
     _MorphoForms          = EMPTY;
     _MorphoAttributeGroup = partOfSpeechBase.MorphoAttributeGroup;
     _PartOfSpeech         = partOfSpeechBase.PartOfSpeech;
 }