protected override bool IsChildMatchCondition(SubsentPair pair, Language language)
 {
     return(inderectspeech2.IsConditionPrecede(pair.CHILD) &&
            inderectspeech.IsCondition(pair.CHILD));
 }
        protected override bool IsParentMatchCondition(SubsentPair pair, Language language, out IEnumerable <SubjectData> subjectData)
        {
            subjectData = null;

            var resultList = default(List <SubjectData>);
            var sd         = default(SubjectData);

            sd = pattern7.GetSubjectData(pair.PARENT, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern8.GetSubjectData(pair.PARENT, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern9.GetSubjectData(pair.PARENT, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern10.GetSubjectData(pair.PARENT, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern11.GetSubjectData(pair.PARENT, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern18.GetSubjectData(pair.PARENT, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern19.GetSubjectData(pair.PARENT, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern20.GetSubjectData(pair.PARENT, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern21.GetSubjectData(pair.PARENT, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern22.GetSubjectData(pair.PARENT, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern23.GetSubjectData(pair.PARENT, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern24.GetSubjectData(pair.PARENT, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }

NEXT:
            sd.Add2List(ref resultList);

            if (resultList.AnyEx())
            {
                /*
                 * Это касается шаблонов:
                 *  IS_ParentChild_03
                 *  IS_ParentChild_04
                 *  IS_ParentChild_05
                 *  IS_ParentChild_06
                 *
                 * Если в этих шаблонах во втором сабсенте (дочернем, типа subordinate) есть cet@link=N,
                 * который показывает куда-то вне этого же предложения с link, (в [::inderectspeech3,4,5,6::])
                 * то эти пары предложений не обрабатывать.
                 */
                if (!HasCetWithAttributeLinkPoint2Out(pair.CHILD))
                {
                    resultList = resultList.MakeDistinct();

                    subjectData = resultList;
                    return(true);
                }
            }

            return(false);
        }
 protected override bool IsChildMatchCondition(SubsentPair pair, Language language)
 {
     throw new InvalidOperationException();
 }
 private bool IsParentMatchCondition(SubsentPair pair, Language language)
 {
     return(inderectspeech2.IsConditionPrecede(pair.CHILD));
 }
Example #5
0
        protected override bool IsParentMatchCondition(SubsentPair pair, Language language, out IEnumerable <SubjectData> subjectData)
        {
            subjectData = null;

            var resultList = default(List <SubjectData>);
            var sd         = default(SubjectData);

            var elementsAfterCHILD = pair.CHILD.ElementsAfterSelf().ToArray();

            sd = pattern7.GetSubjectData(elementsAfterCHILD, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern8.GetSubjectData(elementsAfterCHILD, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern9.GetSubjectData(elementsAfterCHILD, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern10.GetSubjectData(elementsAfterCHILD, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern11.GetSubjectData(elementsAfterCHILD, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern18.GetSubjectData(elementsAfterCHILD, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern19.GetSubjectData(elementsAfterCHILD, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern20.GetSubjectData(elementsAfterCHILD, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern21.GetSubjectData(elementsAfterCHILD, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern22.GetSubjectData(elementsAfterCHILD, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern23.GetSubjectData(elementsAfterCHILD, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern24.GetSubjectData(elementsAfterCHILD, language, pair.CHILD); if (sd.IsNotNull())
            {
                goto NEXT;
            }

NEXT:
            sd.Add2List(ref resultList);

            if (resultList.AnyEx())
            {
                resultList = resultList.MakeDistinct();

                subjectData = resultList;
                return(true);
            }

            return(false);
        }
 protected override bool IsParentMatchCondition(SubsentPair pair, Language language, out IEnumerable <SubjectData> subjectData)
 {
     throw new InvalidOperationException();
 }
Example #7
0
 protected abstract bool IsChildMatchCondition(SubsentPair pair, Language language);
 protected abstract XElement GetSubsent4SearchObject(SubsentPair pair);
 protected abstract bool IsSubsent1MatchCondition(SubsentPair pair, Language language, out IEnumerable <SubjectData> subjectData);
 protected override XElement GetSubsent4SearchObject(SubsentPair pair)
 {
     return(pair.SUBSENT1);
 }
        protected override bool IsSubsent1MatchCondition(SubsentPair pair, Language language, out IEnumerable <SubjectData> subjectData)
        {
            subjectData = null;

            if (!GetSubsent4SearchObject(pair).AttributeTypeAreEqual(SubsentenceType.DirectSpeech))
            {
                return(false);
            }

            var subsent    = GetSubsent4SearchSubject(pair);
            var resultList = default(List <SubjectData>);
            var sd         = default(SubjectData);

            sd = pattern12.GetSubjectData(subsent, language);  if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern13.GetSubjectData(subsent, language);  if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern15.GetSubjectData(subsent, language);  if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern16.GetSubjectData(subsent, language);  if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern17.GetSubjectData(subsent, language);  if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern18.GetSubjectData(subsent, language);  if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern19.GetSubjectData(subsent, language);  if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern20.GetSubjectData(subsent, language);  if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern21.GetSubjectData(subsent, language);  if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern22.GetSubjectData(subsent, language);  if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern23.GetSubjectData(subsent, language);  if (sd.IsNotNull())
            {
                goto NEXT;
            }
            sd = pattern24.GetSubjectData(subsent, language);  if (sd.IsNotNull())
            {
                goto NEXT;
            }

NEXT:
            sd.Add2List(ref resultList);

            if (resultList.AnyEx())
            {
                resultList = resultList.MakeDistinct();

                subjectData = resultList;
                return(true);
            }

            return(false);
        }