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