Синтаксис языков программирования. Нисходящий синтаксический анализ, процедурная и автоматная реализации, страница 7

  }

  return false;

 }

 private boolean Else(){cCnt+=1;

  if((curWordIndex>=0)&&SelSet[23].get(curWordIndex)){

   curWordIndex=getWordIndex();

   return Begin();

  }

  if((curWordIndex>=0)&&SelSet[24].get(curWordIndex)){return true;

  }

  return false;

 }

 private boolean Eq(){cCnt+=1;

  if((curWordIndex>=0)&&SelSet[25].get(curWordIndex)){

   curWordIndex=getWordIndex();

  return true;

  }

  if((curWordIndex>=0)&&SelSet[26].get(curWordIndex)){

   curWordIndex=getWordIndex();

  return true;

  }

  if((curWordIndex>=0)&&SelSet[27].get(curWordIndex)){

   curWordIndex=getWordIndex();

  return true;

  }

  if((curWordIndex>=0)&&SelSet[28].get(curWordIndex)){

   curWordIndex=getWordIndex();

  return true;

  }

  return false;

 }

 private boolean If(){cCnt+=1;

  if((curWordIndex>=0)&&SelSet[29].get(curWordIndex)){

   curWordIndex=getWordIndex();

   if(curWordIndex!=7)return false;

   curWordIndex=getWordIndex();

   if(!LogE())return false;

   if(curWordIndex!=8)return false;

   curWordIndex=getWordIndex();

   if(curWordIndex!=13)return false;

   curWordIndex=getWordIndex();

   return Begin();

  }

  return false;

 }

 private boolean LogE(){cCnt+=1;

  if((curWordIndex>=0)&&SelSet[30].get(curWordIndex)){

   if(!Arg())return false;

   if(!Eq())return false;

   return Arg();

  }

  return false;

 }

 private boolean OpOrNot(){cCnt+=1;

  if((curWordIndex>=0)&&SelSet[31].get(curWordIndex)){

   curWordIndex=getWordIndex();

   return S();

  }

  if((curWordIndex>=0)&&SelSet[32].get(curWordIndex)){{}return true;

  }

  return false;

 }

 private boolean inswitch(){cCnt+=1;

  if((curWordIndex>=0)&&SelSet[33].get(curWordIndex)){

   curWordIndex=getWordIndex();

   if(!Arg())return false;

   if(curWordIndex!=13)return false;

   curWordIndex=getWordIndex();

   if(!Begin())return false;

   if(curWordIndex!=17)return false;

   curWordIndex=getWordIndex();

  return true;

  }

  return false;

 }

 private boolean R(){cCnt+=1;

  if((curWordIndex>=0)&&SelSet[34].get(curWordIndex)){

   return Arg();

  }

  if((curWordIndex>=0)&&SelSet[35].get(curWordIndex)){

   curWordIndex=getWordIndex();

   if(!S())return false;

   if(curWordIndex!=8)return false;

   curWordIndex=getWordIndex();

  return true;

  }

  return false;

 }

 private boolean S(){cCnt+=1;

  if((curWordIndex>=0)&&SelSet[36].get(curWordIndex)){

   if(!X())return false;

   return Y();

  }

  return false;

 }

 private boolean X(){cCnt+=1;

  if((curWordIndex>=0)&&SelSet[37].get(curWordIndex)){

   if(!R())return false;

   return Z();

  }

  return false;

 }

 private boolean Y(){cCnt+=1;

  if((curWordIndex>=0)&&SelSet[38].get(curWordIndex)){

   curWordIndex=getWordIndex();

   return S();

  }

  if((curWordIndex>=0)&&SelSet[39].get(curWordIndex)){

   curWordIndex=getWordIndex();

   return S();

  }

  if((curWordIndex>=0)&&SelSet[40].get(curWordIndex)){{}return true;

  }

  return false;

 }

 private boolean Z(){cCnt+=1;

  if((curWordIndex>=0)&&SelSet[41].get(curWordIndex)){

   curWordIndex=getWordIndex();

   return X();

  }

  if((curWordIndex>=0)&&SelSet[42].get(curWordIndex)){

   curWordIndex=getWordIndex();

   return X();

  }

  if((curWordIndex>=0)&&SelSet[43].get(curWordIndex)){{}return true;

  }

  return false;

 }

 private boolean type(){cCnt+=1;

  if((curWordIndex>=0)&&SelSet[44].get(curWordIndex)){

   curWordIndex=getWordIndex();