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

   if(curWordIndex!=14)return false;

   curWordIndex=getWordIndex();

   return restdef();

  }

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

   curWordIndex=getWordIndex();

   if(curWordIndex!=32)return false;

   curWordIndex=getWordIndex();

   if(!infunction())return false;

   if(curWordIndex!=33)return false;

   curWordIndex=getWordIndex();

   return restdef();

  }

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

  }

  return false;

 }

 private boolean functions(){cCnt+=1;

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

   if(!type())return false;

   if(curWordIndex!=1)return false;

   curWordIndex=getWordIndex();

   if(curWordIndex!=32)return false;

   curWordIndex=getWordIndex();

   if(!infunction())return false;

   if(curWordIndex!=33)return false;

   curWordIndex=getWordIndex();

   return functions();

  }

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

  }

  return false;

 }

 private boolean infunction(){cCnt+=1;

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

   if(!Begin())return false;

   return infunction();

  }

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

  }

  return false;

 }

 private boolean Arg(){cCnt+=1;

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

   curWordIndex=getWordIndex();

  return true;

  }

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

   curWordIndex=getWordIndex();

  return true;

  }

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

   curWordIndex=getWordIndex();

  return true;

  }

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

   curWordIndex=getWordIndex();

  return true;

  }

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

   curWordIndex=getWordIndex();

  return true;

  }

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

   curWordIndex=getWordIndex();

  return true;

  }

  return false;

 }

 private boolean idEorN(){cCnt+=1;

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

   curWordIndex=getWordIndex();

   return OpOrNot();

  }

  return false;

 }

 private boolean Begin(){cCnt+=1;

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

   curWordIndex=getWordIndex();

   if(!Begin())return false;

   if(curWordIndex!=31)return false;

   curWordIndex=getWordIndex();

   return LogE();

  }

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

   curWordIndex=getWordIndex();

   if(!idEorN())return false;

   if(curWordIndex!=32)return false;

   curWordIndex=getWordIndex();

   if(!inswitch())return false;

   if(curWordIndex!=33)return false;

   curWordIndex=getWordIndex();

  return true;

  }

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

   if(!If())return false;

   return Else();

  }

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

   if(!type())return false;

   if(!idEorN())return false;

   if(curWordIndex!=14)return false;

   curWordIndex=getWordIndex();

  return true;

  }

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

   curWordIndex=getWordIndex();

   if(curWordIndex!=27)return false;

   curWordIndex=getWordIndex();

   if(!S())return false;

   if(curWordIndex!=14)return false;

   curWordIndex=getWordIndex();

  return true;

  }

  return false;

 }

 private boolean Else(){cCnt+=1;

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

   curWordIndex=getWordIndex();

   return Begin();

  }