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