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(); }
public MorphoAttributePair(MorphoAttributeGroupEnum morphoAttributeGroup, MorphoAttributeEnum morphoAttribute) { _MorphoAttributeGroup = morphoAttributeGroup; _MorphoAttribute = morphoAttribute; }
private static int InternalGetHashCode(MorphoAttributeGroupEnum morphoAttributeGroup, MorphoAttributeEnum morphoAttribute) { return((morphoAttributeGroup.GetHashCode() ^ morphoAttribute.GetHashCode()) & 0x7fffffff); }
private static bool IsEquals(ref MorphoAttributePair v1, MorphoAttributeGroupEnum morphoAttributeGroup, MorphoAttributeEnum morphoAttribute) { return((v1.MorphoAttributeGroup & morphoAttributeGroup) == morphoAttributeGroup && (v1.MorphoAttribute & morphoAttribute) == morphoAttribute); }
internal MorphoType(PartOfSpeechBase partOfSpeechBase) { _MorphoForms = EMPTY; _MorphoAttributeGroup = partOfSpeechBase.MorphoAttributeGroup; _PartOfSpeech = partOfSpeechBase.PartOfSpeech; }