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)); }
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(); }
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); }