// ************************************************************************** // // Описание группы числительного // (правильное, но неупорядоченное) // ************************************************************************** @Перевод { @Выбор цифра = гр_числ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_причастие( %М, Падеж, Число ) _хвост_сущ( %М, Падеж, Число ) ; }