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