// **************************************************************************
//
//                   Описание группы числительного
//                   (правильное, но неупорядоченное)
// **************************************************************************

@Перевод
{
   @Выбор      цифра =
               гр_числ2
	       числительное ;
   @Выбор      цифра( ч_падеж Падеж1, ч_число Число1, падеж &Падеж ) =
	       гр_числ2    ( &Падеж1, &Число1, Падеж )
	       числительное( &Падеж1, &Число1, Падеж ) ;
}
@Перевод
{
   @Структура  цифра_итерационная = цифра _цифра_итерационная ;
   @Структура  цифра_итерационная( падеж &Падеж ) =
               цифра( &Падеж1, &Число1, Падеж ) 
	      _цифра_итерационная( Падеж );
}
@Перевод
{
   @Выбор     _цифра_итерационная =
               @00  цифра_итерационная
	       ;
   @Выбор     _цифра_итерационная( падеж &Падеж ) =
               @00  цифра_итерационная( Падеж )
	       ;
}
@Перевод
{
   @Выбор     _префикс_цифры =
               @00  цифра_итерационная
	       ;
   @Выбор     _префикс_цифры( падеж &Падеж ) =
               @00  цифра_итерационная( Падеж )
	       ;
}
@Перевод
{
   @Структура  гр_числительного2 = _префикс_цифры цифра ;
   @Структура  гр_числительного2( ч_падеж Падеж1, ч_число Число1, падеж &Падеж ) = 
               _префикс_цифры( Падеж )
	       цифра( &Падеж1, &Число1, Падеж ) ;
}
@Перевод
{
   @Выбор     _гр_числительного1 = 
               гр_числительного2
	       мест_числ
	       @00 ;
   @Выбор     _гр_числительного1( ч_падеж Падеж1, ч_число Число1, падеж &Падеж ) =
               гр_числительного2( &Падеж1, &Число1, Падеж )
	       мест_числ        //( &Падеж1, &Число1, Падеж )
	       @00 ;
}
@Перевод
{
   @Структура  гр_числ_или = и_или  _гр_числительного1 ;
   @Структура  гр_числ_или( падеж &Падеж ) = 
               и_или  _гр_числительного1( &Падеж1, &Число1, Падеж ) ;
}
@Перевод
{  // -------- сделано плохо, потому что нет итераций 
   @Выбор     _гр_числ_или = 
               гр_числ_или
	       @00 ;
   @Выбор     _гр_числ_или( падеж &Падеж ) =
               гр_числ_или( Падеж )
	       @00 ;
}
@Перевод
{  // -------- оборот с количественным числительным ------------
   @Структура  гр_числительного_И =
              _опр_прилагательный_И<1>
               гр_числительного2
	      _гр_числ_или
	      _опр_правый<2>
	      _опр_прилагательный_И<3>
	      _опр_правый<4>
	       сущ2( &Число, %И )
	      _хвост_сущ ;
   @Структура  гр_числительного_И( род Род, падеж &Падеж, число Число ) = 
              _опр_прилагательный_И<1>( Род, Душа, Падеж2, Число2 )
               гр_числительного2( &Падеж1, &Число1, Падеж )
	      _гр_числ_или( Падеж )
	      _опр_прилагательный_И<3>( Род, Душа, Падеж2, Число2 )
	       сущ2( &Род, &Душа, &Падеж2, &Число2 )
	      _опр_правый<2>
	      _опр_правый<4>
	      _хвост_сущ( Род, Душа, Падеж2, Число2 ) ;

   @Таблица_приемника( ч_падеж Падеж1, падеж Падеж = падеж Падеж2 )
   {
      Уступаю И = И ;
      Уступаю Р = Р ;
      Уступаю Д = Д ;
      Уступаю В = В ;
      Уступаю Т = Т ;
      Уступаю П = П ;

      РВсе   @0 = Р ;

      Р И = Р ;
      Р Р = Р ;
      Р Д = Д ;
      Р В = Р ;
      Р Т = Т ;
      Р П = П ;
   };
   @Таблица_приемника( ч_число Число1, падеж Падеж = число Число2 )
   {  Ед  @0 = Ед ;
      Мн  @0 = Мн ;
      ЕдИ  И = Ед ;
      ЕдИ  Р = Мн ;
      ЕдИ  Д = Мн ;
      ЕдИ  В = Ед ;
      ЕдИ  Т = Мн ;
      ЕдИ  П = Мн ;
   }
}
@Перевод
{  // -------- оборот с количественным числительным ------------
   @Структура  гр_числительного_В =
              _опр_прилагательный_В<1>
               гр_числительного2
	      _гр_числ_или
	      _опр_правый<2>
	      _опр_прилагательный_В<3>
	      _опр_правый<4>
	       сущ2( &Число, %В )
	      _хвост_сущ ;
   @Структура  гр_числительного_В( род Род, падеж &Падеж, число Число ) = 
              _опр_прилагательный_В<1>( Род, Душа, Падеж2, Число2 )
               гр_числительного2( &Падеж1, &Число1, Падеж )
	      _гр_числ_или( Падеж )
	      _опр_прилагательный_В<3>( Род, Душа, Падеж2, Число2 )
	       сущ2( &Род, &Душа, &Падеж2, &Число2 )
	      _опр_правый<2>
	      _опр_правый<4>
	      _хвост_сущ( Род, Душа, Падеж2, Число2 ) ;

   @Таблица_приемника( ч_падеж Падеж1, падеж Падеж = падеж Падеж2 )
   {
      Уступаю И = И ;
      Уступаю Р = Р ;
      Уступаю Д = Д ;
      Уступаю В = В ;
      Уступаю Т = Т ;
      Уступаю П = П ;

      РВсе   @0 = Р ;

      Р И = Р ;
      Р Р = Р ;
      Р Д = Д ;
      Р В = Р ;
      Р Т = Т ;
      Р П = П ;
   };
   @Таблица_приемника( ч_число Число1, падеж Падеж = число Число2 )
   {  Ед  @0 = Ед ;
      Мн  @0 = Мн ;
      ЕдИ  И = Ед ;
      ЕдИ  Р = Мн ;
      ЕдИ  Д = Мн ;
      ЕдИ  В = Ед ;
      ЕдИ  Т = Мн ;
      ЕдИ  П = Мн ;
   }
}
@Перевод
{
   @Структура  гр_числительного_нс =
	       гр_числ3
	      _опр_правый<2>
	      _опр_прилагательный_И<3>
	      _опр_правый<4>
	       сущ2( &Число, %И )
	      _хвост_сущ ;
   @Структура  гр_числительного_нс =
	       гр_числ3
	      _опр_правый<2>
	      _опр_прилагательный_И<3>( Род, Душа, %Р, %Мн )
	      _опр_правый<4>
	       сущ2( &Род, &Душа, %Р, %Мн )
	      _хвост_сущ( Род, Душа, %Р, %Мн ) ;
}
/*
@Перевод
{  // -------- оборот с порядковым числительным ------------
   @Структура  гр_числительного_а =
              _артикль
               числ_порядковое
	       гр_inf_причастие( &S1 )
              _хвост_сущ ;
   @Структура  гр_числительного_а( падеж &Падеж, число Число ) = 
               числ_порядковое( Падеж )
               гр_inf_причастие( %М, Падеж, Число )
	      _хвост_сущ       ( %М, Падеж, Число ) ;
}
*/
