Beispiel #1
0
// РЕ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;    
}
Beispiel #2
0
 static FSpace create() { return FSpace(new KernelSumSpace()); }