// РЕ1 - РЕ2 int CGraphmatFile::DealReferences (size_t i,size_t HB) { // ч. 1 ст. 2 // п. 1 ст. 2 // п. 1.1 ст. 2 bool is_part_string = (GetUnits()[i].GetTokenLength() == 1) && (GetUnits()[i].GetToken()[0] == 'ч'); bool is_bullet_string = (GetUnits()[i].GetTokenLength() == 1) && (GetUnits()[i].GetToken()[0] == 'п'); if (!is_part_string && !is_bullet_string) return false; size_t nt = i+1; if (nt == HB) return false; if ( !IsOneFullStop(nt)) return false; nt ++; if (nt == HB) return false; size_t k = PSpace (nt,HB); if ((k == HB) || ((k - nt) > 10)) return false; nt = FSpace (k,HB); nt = PSpace (nt,HB); if ( (k == HB) || ((nt -k) > 20)) return false; if ( (GetUnits()[nt].GetTokenLength() != 2) || strncmp (GetUppercaseToken(nt), "ст",2) ) return false; nt++; if (nt == HB) return false; if ( !IsOneFullStop(nt)) return false; nt++; if (nt == HB) return false; nt = PSpace (nt,HB); if (nt == HB) return false; SetDes (i,ORef1); SetDes (nt, ORef2); SetState(i,nt+1,stGrouped); return true; }
static FSpace create() { return FSpace(new KernelSumSpace()); }