1
0
forked from GitHub/gf-core
This commit is contained in:
janna
2006-05-26 09:59:30 +00:00
parent 0d7406a7f0
commit 40dcf1c0d6
11 changed files with 531 additions and 826 deletions

View File

@@ -6,9 +6,14 @@ concrete CatRus of Cat = CommonX ** open ResRus, Prelude in {
lincat
-- Phrase
Utt, Voc = {s : Str} ;
-- Tensed/Untensed
S = {s : Str} ;
SC = {s : Str} ;
QS = {s : QForm => Str} ;
RS = {s : GenNum => Case => Animacy => Str} ;
@@ -23,7 +28,7 @@ concrete CatRus of Cat = CommonX ** open ResRus, Prelude in {
QCl = {s :Polarity => ClForm => QForm => Str};
IP = { s : PronForm => Str ; n : Number ; p : Person ;
g: PronGen ; anim : Animacy ; pron: Bool} ;
IComp = {s : Str} ;
IAdv, IComp = {s : Str} ;
IDet = Adjective ** {n: Number; g: PronGen; c: Case} ;
-- Relative
@@ -60,6 +65,10 @@ concrete CatRus of Cat = CommonX ** open ResRus, Prelude in {
QuantSg, QuantPl , Det = {s : AdjForm => Str; n: Number; g: PronGen; c: Case} ;
Predet, Quant= {s : AdjForm => Str; g: PronGen; c: Case} ;
-- Adverb
Adv, AdV, AdA, AdS, AdN = {s : Str} ;
-- Numeral
Num, Numeral = {s : Case => Gender => Str} ;
@@ -71,6 +80,8 @@ concrete CatRus of Cat = CommonX ** open ResRus, Prelude in {
Conj = {s : Str ; n : Number} ;
DConj = {s1,s2 : Str ; n : Number} ;
PConj = {s : Str} ;
CAdv = {s : Str} ;
Subj = {s : Str} ;
Prep = {s : Str ; c: Case } ;

View File

@@ -1,28 +0,0 @@
--# -path=.:../abstract:../common:../../prelude
concrete ExtRus of ExtRusAbs = CatRus ** open ResRus in {
--
-- lincat
--
-- Aux = {s : Polarity => Str} ;
--
-- lin
--
-- PredAux np aux vp = mkClause (np.s ! Nom) np.a {
-- s = \\t,ant,b,ord,agr =>
-- let
-- fin = aux.s ! b ;
-- vf : Str -> Str -> {fin, inf : Str} = \x,y ->
-- {fin = x ; inf = y} ;
-- in
-- case ant of {
-- Simul => vf fin [] ;
-- Anter => vf fin "have"
-- } ;
-- s2 = \\agr => infVP vp agr
-- } ;
--
-- can_Aux = {s = \\p => posneg p "can"} ; ---- cannt
-- must_Aux = {s = \\p => posneg p "must"} ;
--
}

View File

@@ -14,6 +14,13 @@ concrete IdiomRus of Idiom = CatRus ** open Prelude, ResRus, MorphoRus in {
}
} ;
ExistIP Kto =
let { kto = Kto.s ! (PF Nom No NonPoss) } in
{s = \\b,clf,_ => case b of
{Pos => kto ++ verbByut.s ! (getActVerbForm clf (pgen2gen Kto.g) Sg P3) ;
Neg => kto ++ "не" ++ verbByut.s ! (getActVerbForm clf (pgen2gen Kto.g) Sg P3)
}
} ;
ImpersCl vp = {s= \\ b, clf => let ne= case b of {Pos =>[]; Neg =>""}
in

View File

@@ -1,14 +1,12 @@
--# -path=.:../abstract:../common:../../prelude
concrete LangRus of Lang =
NounRus,
VerbRus,
AdjectiveRus,
AdverbRus,
NumeralRus,
SentenceRus,
QuestionRus,
RelativeRus,
ConjunctionRus,
@@ -16,7 +14,4 @@ concrete LangRus of Lang =
TextX,
StructuralRus,
IdiomRus,
LexiconRus
** { flags startcat = Phr ; unlexer = text ; lexer = text ;} ;
LexiconRus ** { flags startcat = Phr ; unlexer = text ; lexer = text ;} ;

View File

@@ -1,402 +1,403 @@
--# -path=.:../abstract:../common:../../prelude
concrete LexiconRus of Lexicon = CatRus ** open ParadigmsRus, Prelude, MorphoRus in {
flags
optimize=values ;
coding=utf8 ;
lin
airplane_N = nTelefon "Ñ<>амолеÑ" ;
answer_V2S = tvDir (mkRegVerb imperfective first "оÑ‚веча" "ÑŽ" "оÑ‚вечал" "оÑ‚вечай" "оÑ‚вечаÑ‚ь" );
apartment_N = nMashina "кварÑ‚иÑ€" ;
apple_N = nChislo "Ñ<>блок" ;
art_N = nChislo "иÑÂ<C391>куÑ<C692>ÑÂ<C391>Ñв" ;
ask_V2Q = tvDir (mkRegVerb imperfective first "Ñ<>прашива" "ÑŽ" "Ñ<>прашивал" "Ñ<>прашивай" "Ñ<>прашиваÑÑÂŒ") ;
baby_N = nMalush "малыш";
bad_A = AKakoj_Nibud "плох" "" "хуже";
bank_N = nBank "банк" ;
beautiful_A = AStaruyj "кÑ€аÑÂ<C391>ив" "кÑ€аÑÂ<C391>ивее";
become_VA = mkRegVerb perfective second "Ñ<>ÑÂанов" "лÑÂŽ" "Ñ<>ÑÂал" "Ñ<>ÑÂань" "Ñ<>ÑÂаÑÂÑŒ" ;
beer_N = nChislo "пив" ;
beg_V2V = tvDir (mkRegVerb imperfective second "про" "шу" "пÑ€оÑÂ<C391>ил" "пÑ€оÑÂ<C391>и" "пÑ€оÑÂ<C391>иÑÂÑŒ" );
big_A = AKakoj_Nibud "больш" "" "больше" ;
bike_N = nTelefon "велоÑÂ<EFBFBD>ипед" ;
bird_N = nEdinica "пÑ‚иц" ;
black_A = AStaruyj "чÑ‘рн" "чернее";
blue_A = AMolodoj "голуб" "голубее";
boat_N = nMashina "лодк" ;
book_N = nMashina "книг" ;
boot_N = nBank "Ñ<>апог" ;
boss_N = nStomatolog "начальник" ;
boy_N = nStomatolog "мальчик" ;
bread_N = nAdres "хлеб" ;
break_V2 = tvDir (mkRegVerb imperfective first "пÑ€еÑ€ыва" "ÑŽ" "пÑ€еÑ€ывал" "пÑ€еÑ€ывай" "пÑ€еÑ€ыватÑÂŒ" );
broad_A = AMalenkij "широк" "шире";
brother_N2 = mkN2 (nBrat ",бÑ€аÑ‚") ;
brown_A = AStaruyj "коричнев" "коричневее";
butter_N = nChislo "маÑ<C2B0>л";
buy_V2 = tvDir (mkRegVerb imperfective first "покупа" "ÑŽ" "покупал" "покупай" "покупатÑÂŒ" );
camera_N = nMashina "kamer" ;
cap_N = nNoga "чашк" ; -- чаш-ек Pl-Gen
car_N = nMashina "машин" ;
carpet_N = mkN "ковёÑ€" "ковра" "ковру" "ковёÑ€" "ковром" "ковре" "коврÑ‹" "ковров" "коврам" "коврÑ‹" "коврами" "коврах" masculine inanimate;
cat_N = nMashina "кошк" ;
ceiling_N = nPotolok "потол" ;
chair_N = nStul "Ñ<>ÑÂул" ;
cheese_N = nTelefon "Ñ<>ÑÂÑ€" ;
child_N = mkN "ребёнок" "ребёнка" "ребёнку" "ребёнка" "ребёнком" "ребёнке" "дети" "детей" "деÑÑ<E2809A>м" "детей" "детьми" "деÑÑ<E2809A>ÑÂ…" masculine animate ;
church_N = mkN "церковь" "церкви" "церкви" "церковь" "церковьÑÂŽ" "церкви" "церкви" "церквей" "церквÑ<C2B2>м" "церкви" "церквÑ<C2B2>ми" "церквÑ<C2B2>Ñ…" masculine inanimate;
city_N = nAdres "город" ;
clean_A = AStaruyj "чиÑ<C2B8>Ñ" "чище";
clever_A = AStaruyj "умн" "умнее";
close_V2= tvDir (mkRegVerb imperfective first "закрÑ‹ва" "ÑŽ" "закрÑ‹вал" "закрÑ‹вай" "закрÑ‹вать" );
coat_N = mkIndeclinableNoun "пальто" masculine inanimate ;
cold_A = AStaruyj "холодн" "холоднее";
come_V = mkRegVerb imperfective first "пÑ€иÑ…о" "жу" "пÑ€иÑ…одил" "пÑ€иÑ…оди" "пÑ€иÑ…одитÑÂŒ" ;
computer_N = nTelefon "компÑŒюÑ‚еÑ€" ;
country_N = nMashina "Ñ<>ÑÂран" ;
cousin_N = nTelefon "кузен" ;
cow_N = nMashina "коров" ;
die_V = mkRegVerb imperfective first "умира" "ю" "умирал" "умрай" "умирать" ;
dirty_A = AStaruyj "гÑ€Ñ<E282AC>зн" "гÑ€Ñ<E282AC>знее" ;
doctor_N = nAdres "доктор" ;
dog_N = nNoga "Ñ<>обак" ;
door_N = nBol "двер" ;
drink_V2 = tvDir (mkRegVerb imperfective firstE "пÑÂŒ" "ÑŽ" "пил" "пей" "пить" );
eat_V2 = tvDir (mkRegVerb imperfective first "куша" "ÑŽ" "кушал" "кушай" "кушать" );
enemy_N = nStomatolog "вÑ€аг" ;
factory_N = nNoga "фабрик" ;
father_N2 = mkN2 (mkN "оÑ‚ец" "оÑ‚ца" "оÑ‚цу" "оÑ‚ца" "оÑ‚цом" "оÑ‚це" "оÑ‚цÑ‹" "оÑ‚цов" "оÑ‚цам" "оÑ‚цов" "оÑ‚цами" "оÑ‚цах" masculine animate);
fear_VS= mkRegVerb imperfective second "бо" "ÑŽ" "боÑ<EFBFBD>л" "бой" "боÑ<C2BE>ÑÑÂŒ" ;
find_V2 = tvDir (mkRegVerb imperfective second "нахо" "жу" "находил" "находи" "находитÑÂŒ" );
fish_N = nMashina "рыб" ;
floor_N = nTelefon "пол" ;
forget_V2= tvDir (mkRegVerb imperfective first "забыва" "ÑŽ" "забывал" "забывай" "забыватÑÂŒ" );
fridge_N = nBank "холодилÑŒник" ;
friend_N = mkN "дÑ€уг" "дÑ€уга" "дÑ€угу" "дÑ€уга" "дÑ€угом" "дÑ€уге" "дÑ€узьÑ<C592>" "дÑ€узей" "дÑ€узьÑ<C592>м" "дÑ€узей" "дузÑÂŒÑ<C592>ми" "дÑ€узьÑ<C592>ÑÂ…" masculine animate;
fruit_N = nTelefon "фрукт" ;
garden_N = nTelefon "Ñ<>ад" ;
girl_N = nNoga "девочк" ;
glove_N = nNoga "перчатк" ;
gold_N = nChislo "золоÑ‚" ;
good_A = AKhoroshij "хорош" "лучше" ;
go_V= mkRegVerb imperfective second "хо" "жу" "ходил" "ходи" "ходиÑ‚ь" ;
green_A = AStaruyj "зелен" "зеленее" ;
harbour_N = nTelefon "залив" ;
hate_V2= tvDir (mkRegVerb imperfective second "ненави" "жу" "ненавидел" "ненавидÑÂŒ" "ненавидеть" );
hat_N = nMashina "шлÑ<C2BB>п" ;
have_V2= tvDir (mkRegVerb imperfective first "име" "ÑŽ" "имел" "имей" "иметÑÂŒ" );
hear_V2= tvDir (mkRegVerb imperfective first "Ñ<>луша" "ÑŽ" "Ñ<>лушал" "Ñ<>лушай" "Ñ<>лушаÑÑŒ" );
hill_N = nTelefon "холм" ;
hope_VS= mkRegVerb imperfective first "наде" "ÑŽ" "надеÑÂ<C391>л" "надей" "надеÑÂ<C391>ÑÑÂŒ" ;
horse_N = nBol "лошад" ;
hot_A = AKhoroshij "горÑ<E282AC>ч" "горÑ<E282AC>чее" ;
house_N = nAdres "дом" ;
important_A = AStaruyj "важн" "важнее" ;
industry_N = nChislo "пÑ€оизводÑ<C2B4>ÑÂв" ;
iron_N = nChislo "желез" ;
king_N = mkN "король" "королÑ<C2BB>" "королю" "королÑ<C2BB>" "королем" "короле" "короли" "королей" "королÑ<C2BB>м" "королей" "королÑ<C2BB>ми" "королÑ<C2BB>Ñ…" masculine animate;
know_V2= tvDir (mkRegVerb imperfective first "зна" "ÑŽ" "знал" "знай" "знатÑÂŒ" );
lake_N = nChislo "озер" ;
lamp_N = nMashina "ламп" ;
learn_V2= tvDir (mkRegVerb imperfective second "уч" "у" "учил" "учи" "учиÑ‚ь" );
leather_N = nEdinica "кож" ;
leave_V2= tvDir (mkRegVerb imperfective second "уÑ…ож" "у" "уÑ…одил" "уÑ…оди" "уÑ…одитÑÂŒ" );
like_V2= tvDir (mkRegVerb imperfective second "нÑ€ав" "лÑÂŽ" "нÑ€авил" "нÑ€авь" "нÑ€авитÑÂŒ" );
listen_V2= tvDir (mkRegVerb imperfective first "Ñ<>луша" "ÑŽ" "Ñ<>лушал" "Ñ<>лушай" "Ñ<>лушаÑÑŒ" );
live_V= mkRegVerb imperfective firstE "жив" "у" "жил" "живи" "жить" ;
long_A = AStaruyj "длинн" "длиннее" ;
lose_V2 = tvDir (mkRegVerb imperfective first "ÑерÑ<E282AC>" "ÑŽ" "ÑерÑ<EFBFBD>л" "ÑерÑ<E282AC>й" "ÑерÑ<E282AC>ÑÂÑŒ" );
love_N = nBol "лÑŽбов" ;
love_V2= tvDir (mkRegVerb imperfective second "лÑŽб" "лÑÂŽ" "лÑŽбил" "лÑŽби" "лÑŽбить" );
man_N = nStomatolog "человек" ;
meat_N =nChislo "мÑÂ<C391>Ñ<EFBFBD>" ;
milk_N = nChislo "молок" ;
moon_N = nMashina "лун" ;
mother_N2 = mkN2 ( nMashina "мам") ;
mountain_N = nMashina "гор" ;
music_N = nNoga "музык" ;
narrow_A = AStaruyj "узк" "уже" ;
new_A = AStaruyj "нов" "новее" ;
newspaper_N = nMashina "газеÑ‚" ;
oil_N = nBol "нефтÑÂŒ" ;
old_A = AStaruyj "Ñ<>ÑÂаÑ€" "Ñ<>ÑÂаÑ€ше" ;
open_V2= tvDir (mkRegVerb imperfective first "оÑ‚кÑ€ыва" "ÑŽ" "оÑ‚кÑ€ывал" "оÑ‚кÑ€ывай" "оÑ‚кÑ€ыватÑÂŒ" );
paper_N = nNoga "бумаг" ;
peace_N = nTelefon "мир" ;
pen_N = nNoga "ручк" ;
planet_N = nMashina "планет" ;
plastic_N = nMashina "плаÑ<C2B0>ÑÂмаÑ<C2B0>Ñ<EFBFBD>" ;
play_V2 = tvDir (mkRegVerb imperfective first "игра" "ÑŽ" "играл" "играй" "играÑ‚ь" );
policeman_N = nTelefon "милиционеÑ€" ;
priest_N = nStomatolog "Ñ<>вÑ<C2B2>щенник" ;
queen_N = nMashina "королев" ;
radio_N = mkIndeclinableNoun "радио" neuter inanimate;
read_V2 = tvDir (mkRegVerb imperfective first "чита" "ÑŽ" "читал" "читай" "читаÑ‚ь" );
red_A = AStaruyj "кÑ€аÑÂ<C391>н" "кÑ€аÑÂ<C391>нее" ;
religion_N = nMalyariya "религи" ;
restaurant_N = nTelefon "реÑ<C2B5>Ñоран" ;
river_N = nNoga "рек" ;
rock_N = nUroven "кам" ;
roof_N = nEdinica "кÑ€ыш" ;
rubber_N = nMashina "резин" ;
run_V = mkRegVerb imperfective first "бега" "ÑŽ" "бегал" "бегай" "бегаÑ‚ь" ;
say_VS = mkRegVerb imperfective second "говоÑ€" "ÑŽ" "говоÑ€ил" "говори" "говоÑ€иÑ‚ь" ;
school_N = nMashina "школ" ;
science_N = nEdinica "наук" ;
sea_N = nProizvedenie "мор" ;
seek_V2 = tvDir (mkRegVerb imperfective first "ищ" "у" "иÑÂ<C391>кал" "ищи" "иÑÂ<C391>каÑÑŒ" );
see_V2 = tvDir (mkRegVerb imperfective second "виж" "у" "видел" "видь" "видеÑ‚ь" );
sell_V3 = tvDirDir (mkRegVerb imperfective firstE "пÑ€ода" "ÑŽ" "пÑ€одавал" "пÑ€одавай" "пÑ€одавать" );
send_V3 = tvDirDir (mkRegVerb imperfective first "поÑ<C2BE>Ñла" "ÑŽ" "поÑ<C2BE>Ñлал" "поÑ<C2BE>Ñлай" "поÑ<C2BE>ÑлаÑÑÂŒ" );
sheep_N = nMashina "овц" ;
ship_N = nNol "корабл" ;
shirt_N = nNoga "рубашк" ;
shoe_N = mkN "ÑуфлÑ<C2BB>" "туфли" "туфле" "туфлю" "туфлей" "туфле" "туфли" "туфель" "ÑуфлÑ<C2BB>м" "туфли" "ÑуфлÑ<C2BB>ми" "ÑуфлÑ<C2BB>Ñ…" masculine inanimate;
shop_N = nTelefon "магазин" ;
short_A = AMalenkij "коротк" "короче" ;
silver_N = nChislo "Ñ<>еребр" ;
sister_N = nMashina "Ñ<>еÑ<C2B5>ÑÑ€" ;
sleep_V = mkRegVerb imperfective second "Ñ<>п" "лÑÂŽ" "Ñ<>пал" "Ñ<>пи" "Ñ<>паÑÑÂŒ" ;
small_A = AMalenkij "маленьк" "меньше" ;
snake_N = nTetya"зме" ;
sock_N = nPotolok "ноÑ<C2BE>" ;
speak_V2 = tvDir (mkRegVerb imperfective second "говоÑ€" "ÑŽ" "говоÑ€ил" "говори" "говоÑ€иÑ‚ь" );
star_N = nMashina "звезд" ;
steel_N = nBol "Ñ<>ÑÂал" ;
stone_N = nNol "камен" ;
stove_N = nBol "печ" ;
student_N = nTelefon "Ñ<>ÑÂуденÑÂ" ;
stupid_A = AMolodoj "тупой" "тупее" ;
sun_N = mkN "Ñ<>олнце" "Ñ<>олнца" "Ñ<>олнцу" "Ñ<>олнце" "Ñ<>олнцем" "Ñ<>олнце" "Ñ<>олнца" "Ñ<>олнц" "Ñ<>олнцам" "Ñ<>олнца" "Ñ<>олнцами" "Ñ<>олнцаÑÂ…" neuter inanimate;
switch8off_V2 = tvDir (mkRegVerb imperfective first "вÑ‹ключа" "ÑŽ" "вÑ‹ключал" "вÑ‹ключай" "вÑ‹ключать") ;
switch8on_V2 = tvDir (mkRegVerb imperfective first "включа" "ÑŽ" "включал" "включай" "включаÑ‚ь") ;
table_N = nTelefon "Ñ<>ÑÂол" ;
teacher_N = nNol "учиÑ‚ел" ;
teach_V2 = tvDir (mkRegVerb imperfective second "уч" "у" "учил" "учи" "учиÑ‚ь" );
television_N = nProizvedenie "телевидени" ;
thick_A = AStaruyj "ÑолÑ<C2BB>ÑÂ" "толще" ;
thin_A = AMalenkij "тонк" "тоньше" ;
train_N = nAdres "поезд" ;
travel_V = mkRegVerb imperfective first "пуÑешеÑÂ<C391>Ñву" "ÑŽ" "пуÑешеÑÂ<C391>Ñвовал" "пуÑешеÑÂ<C391>Ñвуй" "пуÑешеÑÂ<C391>ÑвоваÑÑŒ" ;
tree_N = nChislo "дерев" ;
--trousers_N = mkN "" "" "" "" "" "" "шÑ‚аны" "шÑ‚анов" "шÑ‚анам" "шÑ‚аны" "шÑ‚анами" "шÑ‚анах" masculine inanimate;
ugly_A = AStaruyj "некраÑ<C2B0>ив" "некраÑ<C2B0>ивее" ;
understand_V2 = tvDir (mkRegVerb imperfective first "понима" "ÑŽ" "понимал" "понимай" "пониматÑÂŒ" );
university_N = nTelefon "универÑ<E282AC>иÑеÑÂ" ;
village_N = nMalyariya "деревн" ;
wait_V2 = tvDir (mkRegVerb imperfective firstE "жд" "у" "ждал" "жди" "ждатÑÂŒ" );
walk_V = mkRegVerb imperfective first "гулÑÂ<C391>" "ÑŽ" "гулÑÂ<C391>л" "гулÑÂ<C391>й" "гулÑÂ<C391>ÑÑÂŒ" ;
warm_A = AStaruyj "тёпл" "теплее" ;
war_N = nMashina "войн" ;
watch_V2 = tvDir (mkRegVerb imperfective second "Ñ<>моÑÑ€" "ÑŽ" "Ñ<EFBFBD>моÑÑ€ел" "Ñ<>моÑри" "Ñ<>моÑÑ€еÑÂÑŒ" );
water_N = nMashina "вод" ;
white_A = AStaruyj "бел" "белее" ;
window_N = nChislo "окн" ;
wine_N = nChislo "вин" ;
win_V2 = tvDir (mkRegVerb imperfective first "вÑ‹игрыва" "ÑŽ" "вÑ‹игрывал" "вÑ‹игрывай" "вÑ‹игрыватÑÂŒ" );
woman_N = nZhenchina "женщин" ;
wood_N = nChislo "дерев" ;
write_V2 = tvDir (mkRegVerb imperfective first "пиш" "у" "пиÑ<C2B8>ал" "пиши" "пиÑ<C2B8>аÑÂÑŒ" );
yellow_A = AStaruyj "жÑ‘лÑ‚" "желтее" ;
young_A = AMolodoj "молод" "моложе";
do_V2 = tvDir (mkRegVerb imperfective first "дела" "ÑŽ" "делал" "делай" "делаÑ‚ь" );
now_Adv = mkAdv "Ñ<>ейчаÑ<C2B0>" ;
already_Adv = mkAdv "уже" ;
song_N = nTetya "пеÑ<C2B5>н" ;
add_V3 = mkV3 (mkRegVerb imperfective first "Ñ<EFBFBD>кладÑва" "ÑŽ" "Ñ<EFBFBD>кладÑвал" "Ñ<>кладÑвай" "Ñ<>кладÑваÑÑŒ" ) "" "в" accusative accusative;
number_N = nChislo "чиÑ<C2B8>л" ;
put_V2 = tvDir (mkRegVerb imperfective firstE "клад" "у" "клал" "клади" "клаÑ<C2B0>ÑÂÑŒ" );
stop_V = mkRegVerb imperfective first "оÑÂ<C391>Ñанавлива" "ÑŽ" "оÑÂ<C391>Ñанавливал" "оÑÂ<C391>Ñанавливай" "оÑÂ<C391>ÑанавливаÑÑÂŒ";
jump_V = mkRegVerb imperfective first "пÑ€ыга" "ÑŽ" "пÑ€ыгал" "пÑ€ыгай" "пÑ€ыгатÑÂŒ" ;
---- distance_N3 = mkN3 (nProizvedenie "раÑ<C2B0>Ñ<EFBFBD>ÑÂоÑÂ<C391>н") from_Prep to_Prep ;
-- in Russian combinations with verbs are expressed with adverbs:
-- "легко понÑ<C2BD>ÑÂÑŒ" ("easy to understand"), which is different from
-- adjective expression "легкий длÑ<C2BB> пониманиÑ<C2B8>" ("easy for understanding")
-- So the next to words are adjectives, since there are such adjectives
-- in Russian, but to use them with verb would be wrong in Russian:
fun_AV = AStaruyj "веÑ<C2B5>Ñл" "веÑ<C2B5>елее";
easy_A2V = mkA2 (AMalenkij "легк" "легче") "длÑ<C2BB>" genitive ;
empty_A = AMolodoj "пуÑ<C692>ÑÂ" "пуÑ<C692>ÑÂее";
married_A2 = mkA2 (adjInvar "замужем") "за" instructive ;
paint_V2A = tvDir (mkRegVerb imperfective first "риÑ<C2B8>у" "ÑŽ" "риÑ<C2B8>овал" "риÑ<C2B8>уй" "риÑ<C2B8>оваÑÑÂŒ" ) ;
probable_AS = AStaruyj "возможный" "возможнее";
-- rain_V0 No such verb in Russian!
talk_V3 = mkV3 (mkRegVerb imperfective second "говоÑ€" "ÑŽ" "говоÑ€ил" "говори" "говоÑ€иÑ‚ь" ) "Ñ<>" "о" instructive prepositional;
wonder_VQ = mkRegVerb imperfective first "инÑеÑ€еÑÂ<C391>у" "ÑŽ" "инÑеÑ€еÑÂ<C391>овал" "инÑеÑ€еÑÂ<C391>уй" "инÑеÑ€еÑÂ<C391>оваÑÑÂŒ";
-- Nouns
animal_N = nZhivotnoe "животн" ;
ashes_N = nPepel "пеп" ;
back_N = nMashina "Ñ<>пин" ;
bark_N = mkN "лай" "лаÑ<C2B0>" "лаю" "лай" "лаем" "лае" "лаи" "лаев" "лаÑ<C2B0>м" "лаи" "лаÑ<C2B0>ми" "лаÑ<C2B0>Ñ…" masculine inanimate;
belly_N = nTelefon "живоÑ‚" ;
bird_N = nEdinica "пÑ‚иц" ;
blood_N = nBol "кÑ€ов" ;
bone_N = nBol "коÑ<C2BE>Ñ" ;
breast_N = nBol "гÑ€удь" ;
cloud_N = nChislo "облак" ;
day_N = mkN "день" "днÑ<C2BD>" "дню" "день" "днёÐ¼" "дне" "дни" "дней" "днÑ<C2BD>м" "дни" "днÑ<C2BD>ми" "днÑ<C2BD>Ñ…" masculine inanimate ;
dust_N = nBol "пыл" ;
ear_N = nChislo "уÑ…о" ;
earth_N = nTetya "земл" ;
egg_N = nChislo "Ñ<>йц" ;
eye_N = nAdres "глаз" ;
fat_N = nBank "жир" ;
-- father_N = UseN2 father_N2 ;
feather_N = mkN "перо" "пера" "перу" "пера" "пером" "пере" "перьÑÂ<C391>" "перьев" "перьÑÂ<C391>м" "перьев" "перьÑÂ<C391>ми" "перьÑÂ<C391>Ñ…" neuter inanimate ;
fingernail_N = mkN "ногоÑ‚ь" "ногÑÑÂ<C391>" "ногтÑÂŽ" "ногÑÑÂ<C391>" "ногтем" "ногте" "ногти" "ногтей" "ногÑÑÂ<C391>м" "ногтей" "ногÑÑÂ<C391>ми" "ногÑÑÂ<C391>Ñ…" masculine inanimate ;
fire_N = mkN "огонÑÂŒ" "огнÑ<C2BD>" "огню" "огнÑ<C2BD>" "огнём" "огне" "огни" "огней" "огнÑ<C2BD>м" "огней" "огнÑ<C2BD>ми" "огнÑ<C2BD>ÑÂ…" masculine inanimate ;
fish_N = nMashina "рыб" ;
flower_N = mkN "оÑ‚ец" "оÑ‚ца" "оÑ‚цу" "оÑ‚ца" "оÑ‚цом" "оÑ‚це" "оÑ‚цÑ‹" "оÑ‚цов" "оÑ‚цам" "оÑ‚цов" "оÑ‚цами" "оÑ‚цах" masculine animate ;
fog_N = nTelefon "туман" ;
foot_N = nTetya "Ñ<>ÑÂупн" ;
forest_N = nAdres "леÑ<C2B5>" ;
fruit_N = nTelefon "фрукт";
grass_N = nMashina "трав" ;
guts_N = nBol "внуÑÑ€енноÑÂ<C391>Ñ" ;
hair_N = nTelefon "волоÑÂ<C391>" ;
hand_N = nNoga "рук" ;
head_N = nMashina "голов" ;
heart_N = mkN "Ñ<>ердце" "Ñ<>ердца" "Ñ<>ердцу" "Ñ<>ердца" "Ñ<>ердцем" "Ñ<>ердце" "Ñ<>ердца" "Ñ<>ердец" "Ñ<>ердцам" "Ñ<>ердец" "Ñ<>ердцами" "Ñ<>ердцаÑÂ…" neuter inanimate;
horn_N = nAdres "рог" ;
husband_N = mkN "муж" "мужа" "мужу" "мужа" "мужем" "муже" "мужÑÂŒÑ<C592>" "мужей" "мужÑÂŒÑ<C592>м" "мужей" "мужÑÂŒÑ<C592>ми" "мужÑÂŒÑ<C592>ÑÂ…" masculine animate ;
ice_N = mkN "лёд" "лÑŒда" "лÑŒду" "лÑŒда" "лÑŒдом" "лÑŒде" "лÑŒдÑ‹" "лÑŒдов" "лÑŒдам" "лÑŒдов" "лÑŒдами" "лÑŒдах" masculine inanimate ;
knee_N = mkN "колено" "колена" "колену" "колена" "коленом" "колене" "колени" "колен" "коленам" "колен" "коленÑ<C2BD>ми" "коленÑ<C2BD>Ñ…" neuter inanimate ;
lake_N = nChislo "озер" ;
leaf_N = nStul "лиÑ<C2B8>Ñ" ;
leg_N = nNoga "ног" ;
liver_N = nBol "печен" ;
louse_N = mkN "вошь" "вши" "вши" "вошь" "вошьÑÂŽ" "вше" "вши" "вшей" "вшам" "вшей" "вшами" "вшаÑÂ…" feminine animate ;
meat_N = nChislo "мÑÂ<C391>Ñ<EFBFBD>" ;
moon_N = nMashina "лун" ;
mountain_N = nMashina "гор" ;
mouth_N = mkN "рот" "рта" "рту" "рот" "ртом" "рте" "рты" "ртов" "ртам" "рты" "ртами" "ртаÑÂ…" masculine inanimate;
name_N = mkN "имÑ<EFBFBD>" "имени" "имени" "имÑ<C2BC>" "именем" "имени" "имена" "имёÐ½" "именам" "имена" "именами" "именах" neuter inanimate;
neck_N = nTetya "ше" ;
night_N = nBol "ноч" ;
nose_N = nTelefon "ноÑ<C2BE>" ;
person_N = nBol "личноÑ<C2BE>ÑÑÂŒ" ;
rain_N = nNol "дожд" ;
road_N = nNoga "дорог" ;
root_N = nUroven "кор" ;
rope_N = nNoga "веревк" ;
salt_N = nBol "Ñ<EFBFBD>ол" ;
sand_N = mkN "пеÑ<C2B5>ок" "пеÑ<C2B5>ка" "пеÑ<C2B5>ку" "пеÑ<C2B5>ок" "пеÑ<C2B5>ком" "пеÑ<C2B5>ке" "пеÑ<C2B5>ки" "пеÑ<C2B5>ков" "пеÑ<C2B5>кам" "пеÑ<C2B5>ков" "пеÑ<C2B5>ками" "пеÑ<C2B5>ках" masculine inanimate ;
sea_N = nProizvedenie "мор" ;
seed_N = mkN "Ñ<>емÑ<C2BC>" "Ñ<>емени" "Ñ<>емении" "Ñ<>емÑ<C2BC>" "Ñ<>еменем" "Ñ<>емени" "Ñ<>емена" "Ñ<>емÑ<C2BC>н" "Ñ<>еменам" "Ñ<>емена" "Ñ<>еменами" "Ñ<>еменах" neuter inanimate ;
skin_N = nEdinica "кож" ;
sky_N = mkN "небо" "неба" "небу" "небо" "небом" "небе" "небеÑÂ<C391>а" "небеÑÂ<C391>" "небеÑÂ<C391>ам" "небеÑÂ<C391>" "небеÑÂ<C391>ами" "небеÑÂ<C391>аÑÂ…" neuter inanimate ;
smoke_N = nTelefon "дым" ;
snake_N = nTetya "зме" ;
snow_N = nAdres "Ñ<>нег" ;
star_N = nMashina "звезд" ;
stick_N = nNoga "палк" ;
tail_N = nTelefon "хвоÑ<C2BE>ÑÂ" ;
tongue_N = nBank "Ñ<>зÑк" ;
tooth_N = nTelefon "зуб" ;
tree_N = nChislo "дерев" ;
water_N = nMashina "вод" ;
wife_N = nMashina "жен" ;
wind_N = mkN "ветеÑ€" "ветра" "ветру" "ветеÑ€" "ветром" "ветра" "ветров" "ветра" "ветрам" "ветров" "ветрами" "ветрах" masculine inanimate ;
wing_N = mkN "кÑ€ыло" "кÑ€ыла" "кÑ€ылу" "кÑ€ыло" "кÑ€ылом" "кÑ€ыле" "кÑ€ÑльÑ<C592>" "кÑ€ыльев" "кÑ€ÑльÑ<C592>м" "кÑ€ÑльÑ<C592>" "кÑ€ÑльÑ<C592>ми" "кÑ€ÑльÑ<C592>ÑÂ…" neuter inanimate ;
worm_N = nNol "черв" ;
year_N = nAdres "год" ;
-- Verbs
bite_V2 = tvDir (mkRegVerb imperfective first "куÑ<C692>а" "ÑŽ" "куÑ<C692>ал" "куÑ<C692>ай" "куÑ<C692>аÑÑŒ");
blow_V = mkRegVerb imperfective first "ду" "ÑŽ" "дул" "дуй" "дутÑÂŒ" ;
breathe_V = mkRegVerb imperfective second "дÑ‹ш" "у" "дÑ‹шал" "дÑ‹ши" "дÑ‹шать" ;
burn_V = mkRegVerb imperfective second "гор" "ÑŽ" "горел" "гори" "гореÑ‚ь" ;
count_V2 = tvDir (mkRegVerb imperfective first "Ñ<>чиÑÂа" "ÑŽ" "Ñ<>чиÑÂал" "Ñ<>чиÑÂай" "Ñ<>чиÑÂаÑÂÑŒ" ) ;
cut_V2 = tvDir (mkRegVerb imperfective first "реж" "у" "резал" "режь" "резаÑ‚ь" ) ;
dig_V = mkRegVerb imperfective first "копа" "ÑŽ" "копал" "копай" "копаÑ‚ь" ;
fall_V = mkRegVerb imperfective first "пада" "ÑŽ" "падал" "падай" "падаÑ‚ь" ;
fight_V2 = tvDir (mkRegVerb imperfective firstE "дер" "у" "дÑ€ал" "дери" "дÑ€аÑ‚ь" ) ;
float_V = mkRegVerb imperfective firstE "плыв" "у" "плыл" "плыви" "плытÑÂŒ" ;
flow_V = mkRegVerb imperfective firstE "тек" "у" "тёк" "теки" "течь" ;
fly_V = mkRegVerb imperfective second "лета" "ÑŽ" "летал" "летай" "летаÑ‚ь" ;
freeze_V = mkRegVerb imperfective first "замеÑ€за" "ÑŽ" "замеÑ€зал" "замеÑ€зай" "замеÑ€зать" ;
give_V3 = tvDirDir (mkRegVerb imperfective firstE "да" "ÑŽ" "давал" "давай" "даваÑ‚ь" ) ;
hit_V2 = tvDir (mkRegVerb imperfective first "ударÑÂ<C391>" "ÑŽ" "ударÑÂ<C391>л" "ударÑÂ<C391>й" "ударÑÂ<C391>ÑÑÂŒ" );
hold_V2 = tvDir (mkRegVerb imperfective second "держ" "у" "держал" "держи" "держать" );
hunt_V2 = tvDir (mkRegVerb imperfective second "оÑ…оч" "у" "оÑ…оÑ‚ил" "оÑ…оÑ‚ь" "оÑ…оÑ‚иÑ‚ь" ) ;
kill_V2 = tvDir (mkRegVerb imperfective first "убива" "ю" "убивал" "убивай" "убивать" ) ;
laugh_V = mkRegVerb imperfective firstE "Ñ<EFBFBD>ме" "ÑŽ" "Ñ<EFBFBD>меÑ<EFBFBD>л" "Ñ<>мей" "Ñ<>меÑ<C2B5>ÑÂÑŒ" ;
lie_V = mkRegVerb imperfective firstE "лг" "у" "лгал" "лги" "лгатÑÂŒ" ;
play_V = mkRegVerb imperfective first "игра" "ÑŽ" "играл" "играй" "играÑ‚ь" ;
pull_V2 = tvDir (mkRegVerb imperfective first "ÑÑÂ<EFBFBD>н" "у" "ÑÑÂ<EFBFBD>нул" "ÑÑÂ<C391>ни" "ÑÑÂ<C391>нуÑÑÂŒ" ) ;
push_V2 = tvDir (mkRegVerb imperfective first "толка" "ю" "толкал" "толкай" "толкать" );
rub_V2 = tvDir (mkRegVerb imperfective firstE "тр" "у" "тёр" "три" "тереÑ‚ь" );
scratch_V2 = tvDir (mkRegVerb imperfective first "чеш" "у" "чеÑ<C2B5>ал" "чеши" "чеÑ<C2B5>аÑÂÑŒ" ) ;
sew_V = mkRegVerb imperfective firstE "шÑÂŒ" "ÑŽ" "шил" "шей" "шить" ;
sing_V = mkRegVerb imperfective firstE "по" "ю" "пел" "пой" "петь" ;
sit_V = mkVerbum imperfective <>ижу" "Ñ<>идишь" "Ñ<>идиÑÂ" "Ñ<>идим" "Ñ<>идиÑÂе" "Ñ<>идÑ<C2B4>ÑÂ" "Ñ<>идел" "Ñ<>иди" "Ñ<>идеÑÂÑŒ" ;
smell_V = mkRegVerb imperfective first "пахн" "у" "пахнул" "пахни" "пахнутÑÂŒ" ;
spit_V = mkRegVerb imperfective firstE "плю" "ÑŽ" "плевал" "плюй" "плевать" ;
split_V2 = tvDir (mkRegVerb imperfective first "разбива" "ÑŽ" "разбивал" "разбей" "разбиваÑ‚ь" ) ;
squeeze_V2 = tvDir (mkRegVerb imperfective first "Ñ<EFBFBD>жима" "ÑŽ" "Ñ<EFBFBD>жимал" "Ñ<>жимай" "Ñ<>жимаÑÑŒ" ) ;
stab_V2 = tvDir (mkRegVerb imperfective first "кол" "ÑŽ" "колол" "коли" "колоÑ‚ь" ) ;
stand_V = mkRegVerb imperfective second "Ñ<>ÑÂо" "ÑŽ" "Ñ<EFBFBD>ÑÂоÑÂ<EFBFBD>л" "Ñ<>ÑÂой" "Ñ<>ÑÂоÑÂ<C391>ÑÑÂŒ" ;
suck_V2 = tvDir (mkRegVerb imperfective firstE "Ñ<EFBFBD>оÑ<EFBFBD>" "у" "Ñ<EFBFBD>оÑ<EFBFBD>ал" "Ñ<>оÑ<C2BE>и" "Ñ<>оÑ<C2BE>аÑÂÑŒ") ;
swell_V = mkRegVerb imperfective first "опуха" "ю" "опухал" "опухай" "опухать" ;
swim_V = mkRegVerb imperfective first "плава" "ю" "плавал" "плавай" "плавать" ;
think_V = mkRegVerb imperfective first "дума" "ÑŽ" "думал" "думай" "думать" ;
throw_V2 = tvDir (mkRegVerb imperfective first "бÑ€оÑÂ<EFBFBD>а" "ÑŽ" "бÑ€оÑÂ<EFBFBD>ал" "бÑ€оÑÂ<C391>ай" "бÑ€оÑÂ<C391>аÑÂÑŒ" ) ;
tie_V2 = tvDir (mkRegVerb imperfective first "вÑÂ<EFBFBD>ж" "у" "вÑÂ<EFBFBD>зал" "вÑÂ<C391>жи" "вÑÂ<C391>заÑÑŒ") ;
turn_V = mkRegVerb imperfective first "повоÑ€ачива" "ÑŽ" "повоÑ€ачивал" "повоÑ€ачивай" "повоÑ€ачиватÑÂŒ" ;
vomit_V = mkRegVerb imperfective firstE "рв" "у" "рвал" "рви" "рватÑÂŒ" ;
wash_V2 = tvDir (mkRegVerb imperfective first "мо" "ÑŽ" "мыл" "мой" "мÑ‹тÑÂŒ" ) ;
wipe_V2 = tvDir (mkRegVerb imperfective first "вÑ‹тира" "ÑŽ" "вÑ‹тирал" "вÑ‹тирай" "вÑ‹тираÑ‚ь" );
correct_A = AStaruyj "пÑ€авилÑŒн" "пÑ€авилÑŒнее";
dry_A = AMolodoj "Ñ<>ух" "Ñ<>уше";
dull_A = AStaruyj "Ñ<>кучн" "Ñ<>кучнее";
far_Adv = mkAdv "далеко";
full_A = AStaruyj "полн" "полнее";
heavy_A = AStaruyj "ÑÑÂ<C391>жел" "ÑÑÂ<C391>желее";
left_Ord = (uy_j_EndDecl "лев" ) ** {lock_A = <>};
near_A = AMalenkij "близк" "ближе";
right_Ord = (uy_j_EndDecl "пÑ€ав") ** {lock_A = <>} ;
rotten_A = AMolodoj "гнил" "гнилее";
round_A = AStaruyj "кÑ€угл" "кÑ€углее";
sharp_A = AStaruyj "оÑÂ<EFBFBD>ÑÑ€" "оÑÂ<C391>ÑÑ€ее";
smooth_A = AMalenkij "гладк" "глаже";
straight_A = AMolodoj "пÑ€Ñ<E282AC>м" "пÑ€Ñ<E282AC>мее";
wet_A = AStaruyj "мокр" "мокрее";
wide_A = AMalenkij "широк" "шире";
fear_V2 =tvDir (mkRegVerb imperfective first "бо" "ÑŽ" "боÑ<C2BE>л" "бой" "боÑ<C2BE>ÑÑÂŒ" );
paris_PN = mkPN "Париж" Masc Inanimate ;
--rain_V0 Does not exist in Russian
}
--# -path=.:../abstract:../common:../../prelude
--
concrete LexiconRus of Lexicon = CatRus **
open ParadigmsRus, Prelude, StructuralRus, MorphoRus in {
--, IrregRus
flags
optimize=values ;
coding=utf8 ;
lin
airplane_N = nTelefon "самолет" ;
answer_V2S = tvDir (mkRegVerb imperfective first "отвеча" "ю" "отвечал" "отвечай" "отвечать" );
apartment_N = nMashina "квартир" ;
apple_N = nChislo "яблок" ;
art_N = nChislo "искусств" ;
ask_V2Q = tvDir (mkRegVerb imperfective first "спрашива" "ю" "спрашивал" "спрашивай" "спрашивать") ;
baby_N = nMalush "малыш";
bad_A = AKakoj_Nibud "плох" "" "хуже";
bank_N = nBank "банк" ;
beautiful_A = AStaruyj "красив" "красивее";
become_VA = mkRegVerb perfective second "станов" "лю" "стал" "стань" "стать" ;
beer_N = nChislo "пив" ;
beg_V2V = tvDir (mkRegVerb imperfective second "про" "шу" "просил" "проси" "просить" );
big_A = AKakoj_Nibud "больш" "" "больше" ;
bike_N = nTelefon "велосипед" ;
bird_N = nEdinica "птиц" ;
black_A = AStaruyj "чёрн" "чернее";
blue_A = AMolodoj "голуб" "голубее";
boat_N = nMashina "лодк" ;
book_N = nMashina "книг" ;
boot_N = nBank "сапог" ;
boss_N = nStomatolog "начальник" ;
boy_N = nStomatolog "мальчик" ;
bread_N = nAdres "хлеб" ;
break_V2 = tvDir (mkRegVerb imperfective first "прерыва" "ю" "прерывал" "прерывай" "прерывать" );
broad_A = AMalenkij "широк" "шире";
brother_N2 = mkN2 (nBrat ",брат") ;
brown_A = AStaruyj "коричнев" "коричневее";
butter_N = nChislo "масл";
buy_V2 = tvDir (mkRegVerb imperfective first "покупа" "ю" "покупал" "покупай" "покупать" );
camera_N = nMashina "kamer" ;
cap_N = nNoga "чашк" ; -- чаш-ек Pl-Gen
car_N = nMashina "машин" ;
carpet_N = mkN "ковёр" "ковра" "ковру" "ковёр" "ковром" "ковре" "ковры" "ковров" "коврам" "ковры" "коврами" "коврах" masculine inanimate;
cat_N = nMashina "кошк" ;
ceiling_N = nPotolok "потол" ;
chair_N = nStul "стул" ;
cheese_N = nTelefon "сыр" ;
child_N = mkN "ребёнок" "ребёнка" "ребёнку" "ребёнка" "ребёнком" "ребёнке" "дети" "детей" "детям" "детей" "детьми" "детях" masculine animate ;
church_N = mkN "церковь" "церкви" "церкви" "церковь" "церковью" "церкви" "церкви" "церквей" "церквям" "церкви" "церквями" "церквях" masculine inanimate;
city_N = nAdres "город" ;
clean_A = AStaruyj "чист" "чище";
clever_A = AStaruyj "умн" "умнее";
close_V2= tvDir (mkRegVerb imperfective first "закрыва" "ю" "закрывал" "закрывай" "закрывать" );
coat_N = mkIndeclinableNoun "пальто" masculine inanimate ;
cold_A = AStaruyj "холодн" "холоднее";
come_V = mkRegVerb imperfective first "прихо" "жу" "приходил" "приходи" "приходить" ;
computer_N = nTelefon "компьютер" ;
country_N = nMashina "стран" ;
cousin_N = nTelefon "кузен" ;
cow_N = nMashina "коров" ;
die_V = mkRegVerb imperfective first "умира" "ю" "умирал" "умрай" "умирать" ;
dirty_A = AStaruyj "грязн" "грязнее" ;
doctor_N = nAdres "доктор" ;
dog_N = nNoga "собак" ;
door_N = nBol "двер" ;
drink_V2 = tvDir (mkRegVerb imperfective firstE "пь" "ю" "пил" "пей" "пить" );
eat_V2 = tvDir (mkRegVerb imperfective first "куша" "ю" "кушал" "кушай" "кушать" );
enemy_N = nStomatolog "враг" ;
factory_N = nNoga "фабрик" ;
father_N2 = mkN2 (mkN "отец" "отца" "отцу" "отца" "отцом" "отце" "отцы" "отцов" "отцам" "отцов" "отцами" "отцах" masculine animate);
fear_VS= mkRegVerb imperfective second "бо" "ю" "боял" "бой" "боять" ;
find_V2 = tvDir (mkRegVerb imperfective second "нахо" "жу" "находил" "находи" "находить" );
fish_N = nMashina "рыб" ;
floor_N = nTelefon "пол" ;
forget_V2= tvDir (mkRegVerb imperfective first "забыва" "ю" "забывал" "забывай" "забывать" );
fridge_N = nBank "холодильник" ;
friend_N = mkN "друг" "друга" "другу" "друга" "другом" "друге" "друзья" "друзей" "друзьям" "друзей" "дузьями" "друзьях" masculine animate;
fruit_N = nTelefon "фрукт" ;
garden_N = nTelefon "сад" ;
girl_N = nNoga "девочк" ;
glove_N = nNoga "перчатк" ;
gold_N = nChislo "золот" ;
good_A = AKhoroshij "хорош" "лучше" ;
go_V= mkRegVerb imperfective second "хо" "жу" "ходил" "ходи" "ходить" ;
green_A = AStaruyj "зелен" "зеленее" ;
harbour_N = nTelefon "залив" ;
hate_V2= tvDir (mkRegVerb imperfective second "ненави" "жу" "ненавидел" "ненавидь" "ненавидеть" );
hat_N = nMashina "шляп" ;
have_V2= tvDir (mkRegVerb imperfective first "име" "ю" "имел" "имей" "иметь" );
hear_V2= tvDir (mkRegVerb imperfective first "слуша" "ю" "слушал" "слушай" "слушать" );
hill_N = nTelefon "холм" ;
hope_VS= mkRegVerb imperfective first "наде" "ю" "надеял" "надей" "надеять" ;
horse_N = nBol "лошад" ;
hot_A = AKhoroshij "горяч" "горячее" ;
house_N = nAdres "дом" ;
important_A = AStaruyj "важн" "важнее" ;
industry_N = nChislo "производств" ;
iron_N = nChislo "желез" ;
king_N = mkN "король" "короля" "королю" "короля" "королем" "короле" "короли" "королей" "королям" "королей" "королями" "королях" masculine animate;
know_V2= tvDir (mkRegVerb imperfective first "зна" "ю" "знал" "знай" "знать" );
lake_N = nChislo "озер" ;
lamp_N = nMashina "ламп" ;
learn_V2= tvDir (mkRegVerb imperfective second "уч" "у" "учил" "учи" "учить" );
leather_N = nEdinica "кож" ;
leave_V2= tvDir (mkRegVerb imperfective second "ухож" "у" "уходил" "уходи" "уходить" );
like_V2= tvDir (mkRegVerb imperfective second "нрав" "лю" "нравил" "нравь" "нравить" );
listen_V2= tvDir (mkRegVerb imperfective first "слуша" "ю" "слушал" "слушай" "слушать" );
live_V= mkRegVerb imperfective firstE "жив" "у" "жил" "живи" "жить" ;
long_A = AStaruyj "длинн" "длиннее" ;
lose_V2 = tvDir (mkRegVerb imperfective first "теря" "ю" "терял" "теряй" "терять" );
love_N = nBol "любов" ;
love_V2= tvDir (mkRegVerb imperfective second "люб" "лю" "любил" "люби" "любить" );
man_N = nStomatolog "человек" ;
meat_N =nChislo "мяс" ;
milk_N = nChislo "молок" ;
moon_N = nMashina "лун" ;
mother_N2 = mkN2 ( nMashina "мам") ;
mountain_N = nMashina "гор" ;
music_N = nNoga "музык" ;
narrow_A = AStaruyj "узк" "уже" ;
new_A = AStaruyj "нов" "новее" ;
newspaper_N = nMashina "газет" ;
oil_N = nBol "нефть" ;
old_A = AStaruyj "стар" "старше" ;
open_V2= tvDir (mkRegVerb imperfective first "открыва" "ю" "открывал" "открывай" "открывать" );
paper_N = nNoga "бумаг" ;
peace_N = nTelefon "мир" ;
pen_N = nNoga "ручк" ;
planet_N = nMashina "планет" ;
plastic_N = nMashina "пластмасс" ;
play_V2 = tvDir (mkRegVerb imperfective first "игра" "ю" "играл" "играй" "играть" );
policeman_N = nTelefon "милиционер" ;
priest_N = nStomatolog "священник" ;
queen_N = nMashina "королев" ;
radio_N = mkIndeclinableNoun "радио" neuter inanimate;
read_V2 = tvDir (mkRegVerb imperfective first "чита" "ю" "читал" "читай" "читать" );
red_A = AStaruyj "красн" "краснее" ;
religion_N = nMalyariya "религи" ;
restaurant_N = nTelefon "ресторан" ;
river_N = nNoga "рек" ;
rock_N = nUroven "кам" ;
roof_N = nEdinica "крыш" ;
rubber_N = nMashina "резин" ;
run_V = mkRegVerb imperfective first "бега" "ю" "бегал" "бегай" "бегать" ;
say_VS = mkRegVerb imperfective second "говор" "ю" "говорил" "говори" "говорить" ;
school_N = nMashina "школ" ;
science_N = nEdinica "наук" ;
sea_N = nProizvedenie "мор" ;
seek_V2 = tvDir (mkRegVerb imperfective first "ищ" "у" "искал" "ищи" "искать" );
see_V2 = tvDir (mkRegVerb imperfective second "виж" "у" "видел" "видь" "видеть" );
sell_V3 = tvDirDir (mkRegVerb imperfective firstE "прода" "ю" "продавал" "продавай" "продавать" );
send_V3 = tvDirDir (mkRegVerb imperfective first "посыла" "ю" "посылал" "посылай" "посылать" );
sheep_N = nMashina "овц" ;
ship_N = nNol "корабл" ;
shirt_N = nNoga "рубашк" ;
shoe_N = mkN "туфля" "туфли" "туфле" "туфлю" "туфлей" "туфле" "туфли" "туфель" "туфлям" "туфли" "туфлями" "туфлях" masculine inanimate;
shop_N = nTelefon "магазин" ;
short_A = AMalenkij "коротк" "короче" ;
silver_N = nChislo "серебр" ;
sister_N = nMashina "сестр" ;
sleep_V = mkRegVerb imperfective second "сп" "лю" "спал" "спи" "спать" ;
small_A = AMalenkij "маленьк" "меньше" ;
snake_N = nTetya"зме" ;
sock_N = nPotolok "нос" ;
speak_V2 = tvDir (mkRegVerb imperfective second "говор" "ю" "говорил" "говори" "говорить" );
star_N = nMashina "звезд" ;
steel_N = nBol "стал" ;
stone_N = nNol "камен" ;
stove_N = nBol "печ" ;
student_N = nTelefon "студент" ;
stupid_A = AMolodoj "тупой" "тупее" ;
sun_N = mkN "солнце" "солнца" "солнцу" "солнце" "солнцем" "солнце" "солнца" "солнц" "солнцам" "солнца" "солнцами" "солнцах" neuter inanimate;
switch8off_V2 = tvDir (mkRegVerb imperfective first "выключа" "ю" "выключал" "выключай" "выключать") ;
switch8on_V2 = tvDir (mkRegVerb imperfective first "включа" "ю" "включал" "включай" "включать") ;
table_N = nTelefon "стол" ;
teacher_N = nNol "учител" ;
teach_V2 = tvDir (mkRegVerb imperfective second "уч" "у" "учил" "учи" "учить" );
television_N = nProizvedenie "телевидени" ;
thick_A = AStaruyj "толст" "толще" ;
thin_A = AMalenkij "тонк" "тоньше" ;
train_N = nAdres "поезд" ;
travel_V = mkRegVerb imperfective first "путешеству" "ю" "путешествовал" "путешествуй" "путешествовать" ;
tree_N = nChislo "дерев" ;
--trousers_N = mkN "" "" "" "" "" "" "штаны" "штанов" "штанам" "штаны" "штанами" "штанах" masculine inanimate;
ugly_A = AStaruyj "некрасив" "некрасивее" ;
understand_V2 = tvDir (mkRegVerb imperfective first "понима" "ю" "понимал" "понимай" "понимать" );
university_N = nTelefon "университет" ;
village_N = nMalyariya "деревн" ;
wait_V2 = tvDir (mkRegVerb imperfective firstE "жд" "у" "ждал" "жди" "ждать" );
walk_V = mkRegVerb imperfective first "гуля" "ю" "гулял" "гуляй" "гулять" ;
warm_A = AStaruyj "тёпл" "теплее" ;
war_N = nMashina "войн" ;
watch_V2 = tvDir (mkRegVerb imperfective second "смотр" "ю" "смотрел" "смотри" "смотреть" );
water_N = nMashina "вод" ;
white_A = AStaruyj "бел" "белее" ;
window_N = nChislo "окн" ;
wine_N = nChislo "вин" ;
win_V2 = tvDir (mkRegVerb imperfective first "выигрыва" "ю" "выигрывал" "выигрывай" "выигрывать" );
woman_N = nZhenchina "женщин" ;
wood_N = nChislo "дерев" ;
write_V2 = tvDir (mkRegVerb imperfective first "пиш" "у" "писал" "пиши" "писать" );
yellow_A = AStaruyj "жёлт" "желтее" ;
young_A = AMolodoj "молод" "моложе";
do_V2 = tvDir (mkRegVerb imperfective first "дела" "ю" "делал" "делай" "делать" );
now_Adv = mkAdv "сейчас" ;
already_Adv = mkAdv "уже" ;
song_N = nTetya "песн" ;
add_V3 = mkV3 (mkRegVerb imperfective first "складыва" "ю" "складывал" "складывай" "складывать" ) "" "в" accusative accusative;
number_N = nChislo "числ" ;
put_V2 = tvDir (mkRegVerb imperfective firstE "клад" "у" "клал" "клади" "класть" );
stop_V = mkRegVerb imperfective first "останавлива" "ю" "останавливал" "останавливай" "останавливать";
jump_V = mkRegVerb imperfective first "прыга" "ю" "прыгал" "прыгай" "прыгать" ;
distance_N3 = mkN3 (nProizvedenie "расстоян") from_Prep to_Prep ;
-- in Russian combinations with verbs are expressed with adverbs:
-- "легко понять" ("easy to understand"), which is different from
-- adjective expression "легкий для понимания" ("easy for understanding")
-- So the next to words are adjectives, since there are such adjectives
-- in Russian, but to use them with verb would be wrong in Russian:
fun_AV = AStaruyj "весёл" "веселее";
easy_A2V = mkA2 (AMalenkij "легк" "легче") "для" genitive ;
empty_A = AMolodoj "пуст" "пустее";
married_A2 = mkA2 (adjInvar "замужем") "за" instructive ;
paint_V2A = tvDir (mkRegVerb imperfective first "рису" "ю" "рисовал" "рисуй" "рисовать" ) ;
probable_AS = AStaruyj "возможный" "возможнее";
rain_V0 = idetDozhd verbIdti; -- No such verb in Russian!
talk_V3 = mkV3 (mkRegVerb imperfective second "говор" "ю" "говорил" "говори" "говорить" ) "с" "о" instructive prepositional;
wonder_VQ = mkRegVerb imperfective first "интересу" "ю" "интересовал" "интересуй" "интересовать";
-- Nouns
animal_N = nZhivotnoe "животн" ;
ashes_N = nPepel "пеп" ;
back_N = nMashina "спин" ;
bark_N = mkN "лай" "лая" "лаю" "лай" "лаем" "лае" "лаи" "лаев" "лаям" "лаи" "лаями" "лаях" masculine inanimate;
belly_N = nTelefon "живот" ;
bird_N = nEdinica "птиц" ;
blood_N = nBol "кров" ;
bone_N = nBol "кост" ;
breast_N = nBol "грудь" ;
cloud_N = nChislo "облак" ;
day_N = mkN "день" "дня" "дню" "день" "днём" "дне" "дни" "дней" "дням" "дни" "днями" "днях" masculine inanimate ;
dust_N = nBol "пыл" ;
ear_N = nChislo "ухо" ;
earth_N = nTetya "земл" ;
egg_N = nChislo "яйц" ;
eye_N = nAdres "глаз" ;
fat_N = nBank "жир" ;
-- father_N = UseN2 father_N2 ;
feather_N = mkN "перо" "пера" "перу" "пера" "пером" "пере" "перья" "перьев" "перьям" "перьев" "перьями" "перьях" neuter inanimate ;
fingernail_N = mkN "ноготь" "ногтя" "ногтю" "ногтя" "ногтем" "ногте" "ногти" "ногтей" "ногтям" "ногтей" "ногтями" "ногтях" masculine inanimate ;
fire_N = mkN "огонь" "огня" "огню" "огня" "огнём" "огне" "огни" "огней" "огням" "огней" "огнями" "огнях" masculine inanimate ;
fish_N = nMashina "рыб" ;
flower_N = mkN "отец" "отца" "отцу" "отца" "отцом" "отце" "отцы" "отцов" "отцам" "отцов" "отцами" "отцах" masculine animate ;
fog_N = nTelefon "туман" ;
foot_N = nTetya "ступн" ;
forest_N = nAdres "лес" ;
fruit_N = nTelefon "фрукт";
grass_N = nMashina "трав" ;
guts_N = nBol "внутренност" ;
hair_N = nTelefon "волос" ;
hand_N = nNoga "рук" ;
head_N = nMashina "голов" ;
heart_N = mkN "сердце" "сердца" "сердцу" "сердца" "сердцем" "сердце" "сердца" "сердец" "сердцам" "сердец" "сердцами" "сердцах" neuter inanimate;
horn_N = nAdres "рог" ;
husband_N = mkN "муж" "мужа" "мужу" "мужа" "мужем" "муже" "мужья" "мужей" "мужьям" "мужей" "мужьями" "мужьях" masculine animate ;
ice_N = mkN "лёд" "льда" "льду" "льда" "льдом" "льде" "льды" "льдов" "льдам" "льдов" "льдами" "льдах" masculine inanimate ;
knee_N = mkN "колено" "колена" "колену" "колена" "коленом" "колене" "колени" "колен" "коленам" "колен" "коленями" "коленях" neuter inanimate ;
lake_N = nChislo "озер" ;
leaf_N = nStul "лист" ;
leg_N = nNoga "ног" ;
liver_N = nBol "печен" ;
louse_N = mkN "вошь" "вши" "вши" "вошь" "вошью" "вше" "вши" "вшей" "вшам" "вшей" "вшами" "вшах" feminine animate ;
meat_N = nChislo "мяс" ;
moon_N = nMashina "лун" ;
mountain_N = nMashina "гор" ;
mouth_N = mkN "рот" "рта" "рту" "рот" "ртом" "рте" "рты" "ртов" "ртам" "рты" "ртами" "ртах" masculine inanimate;
name_N = mkN "имя" "имени" "имени" "имя" "именем" "имени" "имена" "имён" "именам" "имена" "именами" "именах" neuter inanimate;
neck_N = nTetya "ше" ;
night_N = nBol "ноч" ;
nose_N = nTelefon "нос" ;
person_N = nBol "личность" ;
rain_N = nNol "дожд" ;
road_N = nNoga "дорог" ;
root_N = nUroven "кор" ;
rope_N = nNoga "веревк" ;
salt_N = nBol "сол" ;
sand_N = mkN "песок" "песка" "песку" "песок" "песком" "песке" "пески" "песков" "пескам" "песков" "песками" "песках" masculine inanimate ;
sea_N = nProizvedenie "мор" ;
seed_N = mkN "семя" "семени" "семении" "семя" "семенем" "семени" "семена" "семян" "семенам" "семена" "семенами" "семенах" neuter inanimate ;
skin_N = nEdinica "кож" ;
sky_N = mkN "небо" "неба" "небу" "небо" "небом" "небе" "небеса" "небес" "небесам" "небес" "небесами" "небесах" neuter inanimate ;
smoke_N = nTelefon "дым" ;
snake_N = nTetya "зме" ;
snow_N = nAdres "снег" ;
star_N = nMashina "звезд" ;
stick_N = nNoga "палк" ;
tail_N = nTelefon "хвост" ;
tongue_N = nBank "язык" ;
tooth_N = nTelefon "зуб" ;
tree_N = nChislo "дерев" ;
water_N = nMashina "вод" ;
wife_N = nMashina "жен" ;
wind_N = mkN "ветер" "ветра" "ветру" "ветер" "ветром" "ветра" "ветров" "ветра" "ветрам" "ветров" "ветрами" "ветрах" masculine inanimate ;
wing_N = mkN "крыло" "крыла" "крылу" "крыло" "крылом" "крыле" "крылья" "крыльев" "крыльям" "крылья" "крыльями" "крыльях" neuter inanimate ;
worm_N = nNol "черв" ;
year_N = nAdres "год" ;
-- Verbs
bite_V2 = tvDir (mkRegVerb imperfective first "куса" "ю" "кусал" "кусай" "кусать");
blow_V = mkRegVerb imperfective first "ду" "ю" "дул" "дуй" "дуть" ;
breathe_V = mkRegVerb imperfective second "дыш" "у" "дышал" "дыши" "дышать" ;
burn_V = mkRegVerb imperfective second "гор" "ю" "горел" "гори" "гореть" ;
count_V2 = tvDir (mkRegVerb imperfective first "счита" "ю" "считал" "считай" "считать" ) ;
cut_V2 = tvDir (mkRegVerb imperfective first "реж" "у" "резал" "режь" "резать" ) ;
dig_V = mkRegVerb imperfective first "копа" "ю" "копал" "копай" "копать" ;
fall_V = mkRegVerb imperfective first "пада" "ю" "падал" "падай" "падать" ;
fight_V2 = tvDir (mkRegVerb imperfective firstE "дер" "у" "драл" "дери" "драть" ) ;
float_V = mkRegVerb imperfective firstE "плыв" "у" "плыл" "плыви" "плыть" ;
flow_V = mkRegVerb imperfective firstE "тек" "у" "тёк" "теки" "течь" ;
fly_V = mkRegVerb imperfective second "лета" "ю" "летал" "летай" "летать" ;
freeze_V = mkRegVerb imperfective first "замерза" "ю" "замерзал" "замерзай" "замерзать" ;
give_V3 = tvDirDir (mkRegVerb imperfective firstE "да" "ю" "давал" "давай" "давать" ) ;
hit_V2 = tvDir (mkRegVerb imperfective first "ударя" "ю" "ударял" "ударяй" "ударять" );
hold_V2 = tvDir (mkRegVerb imperfective second "держ" "у" "держал" "держи" "держать" );
hunt_V2 = tvDir (mkRegVerb imperfective second "охоч" "у" "охотил" "охоть" "охотить" ) ;
kill_V2 = tvDir (mkRegVerb imperfective first "убива" "ю" "убивал" "убивай" "убивать" ) ;
laugh_V = mkRegVerb imperfective firstE "сме" "ю" "смеял" "смей" "смеять" ;
lie_V = mkRegVerb imperfective firstE "лг" "у" "лгал" "лги" "лгать" ;
play_V = mkRegVerb imperfective first "игра" "ю" "играл" "играй" "играть" ;
pull_V2 = tvDir (mkRegVerb imperfective first "тян" "у" "тянул" "тяни" "тянуть" ) ;
push_V2 = tvDir (mkRegVerb imperfective first "толка" "ю" "толкал" "толкай" "толкать" );
rub_V2 = tvDir (mkRegVerb imperfective firstE "тр" "у" "тёр" "три" "тереть" );
scratch_V2 = tvDir (mkRegVerb imperfective first "чеш" "у" "чесал" "чеши" "чесать" ) ;
sew_V = mkRegVerb imperfective firstE "шь" "ю" "шил" "шей" "шить" ;
sing_V = mkRegVerb imperfective firstE "по" "ю" "пел" "пой" "петь" ;
sit_V = mkVerbum imperfective "сижу" "сидишь" "сидит" "сидим" "сидите" "сидят" "сидел" "сиди" "сидеть" ;
smell_V = mkRegVerb imperfective first "пахн" "у" "пахнул" "пахни" "пахнуть" ;
spit_V = mkRegVerb imperfective firstE "плю" "ю" "плевал" "плюй" "плевать" ;
split_V2 = tvDir (mkRegVerb imperfective first "разбива" "ю" "разбивал" "разбей" "разбивать" ) ;
squeeze_V2 = tvDir (mkRegVerb imperfective first "сжима" "ю" "сжимал" "сжимай" "сжимать" ) ;
stab_V2 = tvDir (mkRegVerb imperfective first "кол" "ю" "колол" "коли" "колоть" ) ;
stand_V = mkRegVerb imperfective second "сто" "ю" "стоял" "стой" "стоять" ;
suck_V2 = tvDir (mkRegVerb imperfective firstE "сос" "у" "сосал" "соси" "сосать") ;
swell_V = mkRegVerb imperfective first "опуха" "ю" "опухал" "опухай" "опухать" ;
swim_V = mkRegVerb imperfective first "плава" "ю" "плавал" "плавай" "плавать" ;
think_V = mkRegVerb imperfective first "дума" "ю" "думал" "думай" "думать" ;
throw_V2 = tvDir (mkRegVerb imperfective first "броса" "ю" "бросал" "бросай" "бросать" ) ;
tie_V2 = tvDir (mkRegVerb imperfective first "вяж" "у" "вязал" "вяжи" "вязать") ;
turn_V = mkRegVerb imperfective first "поворачива" "ю" "поворачивал" "поворачивай" "поворачивать" ;
vomit_V = mkRegVerb imperfective firstE "рв" "у" "рвал" "рви" "рвать" ;
wash_V2 = tvDir (mkRegVerb imperfective first "мо" "ю" "мыл" "мой" "мыть" ) ;
wipe_V2 = tvDir (mkRegVerb imperfective first "вытира" "ю" "вытирал" "вытирай" "вытирать" );
correct_A = AStaruyj "правильн" "правильнее";
dry_A = AMolodoj "сух" "суше";
dull_A = AStaruyj "скучн" "скучнее";
far_Adv = mkAdv "далеко";
full_A = AStaruyj "полн" "полнее";
heavy_A = AStaruyj "тяжел" "тяжелее";
left_Ord = (uy_j_EndDecl "лев" ) ** {lock_A = <>};
near_A = AMalenkij "близк" "ближе";
right_Ord = (uy_j_EndDecl "прав") ** {lock_A = <>} ;
rotten_A = AMolodoj "гнил" "гнилее";
round_A = AStaruyj "кругл" "круглее";
sharp_A = AStaruyj "остр" "острее";
smooth_A = AMalenkij "гладк" "глаже";
straight_A = AMolodoj "прям" "прямее";
wet_A = AStaruyj "мокр" "мокрее";
wide_A = AMalenkij "широк" "шире";

View File

@@ -310,6 +310,38 @@ oper pronChtoTo: Pronoun =
p = P3 ;
pron = False
} ;
oper pronEti: Pronoun =
{ s = table {
PF Nom _ _ => "эти" ;
PF Gen _ _ => "этих" ;
PF Dat _ _ => "этим" ;
PF Acc _ _ => "этих" ;
PF Inst _ _ => "этими" ;
PF Prepos _ _ => "этих"
} ;
n = Pl;
p = P3;
g= PGen Fem ;
anim = Animate ;
pron = False
} ;
oper pronTe: Pronoun =
{ s = table {
PF Nom _ _ => "те" ;
PF Gen _ _ => "тех" ;
PF Dat _ _ => "тем" ;
PF Acc _ _ => "тех" ;
PF Inst _ _ => "теми" ;
PF Prepos _ _ => "тех"
} ;
n = Pl;
p = P3;
g=PGen Fem ;
anim = Animate ;
pron = False
} ;
--oper pronNikto: Pronoun =
-- { s = table {
@@ -1229,32 +1261,32 @@ oper vesDet: Adjective = {s = table {
AF Dat _ (ASg Masc) => "ему";
AF Dat _ (ASg Fem) => "ей";
AF Dat _ (ASg Neut) => "ему";
AF Dat _ APl => "всем";
AF Prepos _ (ASg Masc) => "всём";
AF Prepos _ (ASg Fem) => "всей";
AF Prepos _ (ASg Neut) => "всём";
AF Prepos _ APl => "всех" ;
AdvF => "полностью"
}
} ;
oper uy_j_EndDecl : Str -> Adjective = \s ->{s = table {
AF Nom _ (ASg Masc) => s+"ый";
AF Nom _ (ASg Fem) => s+"ая";
AF Nom _ (ASg Neut) => s+"ое";
AF Nom _ APl => s+"ые";
AF Acc Inanimate (ASg Masc) => s+"ый";
AF Acc Animate (ASg Masc) => s+"ого";
AF Acc _ (ASg Fem) => s+"ую";
AF Acc _ (ASg Neut) => s+"ое";
AF Acc Inanimate APl => s+"ые";
AF Acc Animate APl => s+"ых";
AF Gen _ (ASg Masc) => s+"ого";
AF Gen _ (ASg Fem) => s+"ой";
AF Gen _ (ASg Neut) => s+"ого";
AF Gen _ APl => s+"ых";
AF Inst _ (ASg Masc) => s+"ым";
AF Inst _ (ASg Fem) => s+"ой";
AF Inst _ (ASg Neut) => s+"ым";
AF Dat _ APl => "всем";
AF Prepos _ (ASg Masc) => "всём";
AF Prepos _ (ASg Fem) => "всей";
AF Prepos _ (ASg Neut) => "всём";
AF Prepos _ APl => "всех" ;
AdvF => "полностью"
}
} ;
oper uy_j_EndDecl : Str -> Adjective = \s ->{s = table {
AF Nom _ (ASg Masc) => Prelude.glue s "ый";
AF Nom _ (ASg Fem) => Prelude.glue s "ая";
AF Nom _ (ASg Neut) => Prelude.glue s "ое";
AF Nom _ APl => Prelude.glue s "ые";
AF Acc Inanimate (ASg Masc) => Prelude.glue s "ый";
AF Acc Animate (ASg Masc) => Prelude.glue s "ого";
AF Acc _ (ASg Fem) => Prelude.glue s "ую";
AF Acc _ (ASg Neut) => Prelude.glue s "ое";
AF Acc Inanimate APl => Prelude.glue s "ые";
AF Acc Animate APl => Prelude.glue s "ых";
AF Gen _ (ASg Masc) => Prelude.glue s "ого";
AF Gen _ (ASg Fem) => Prelude.glue s "ой";
AF Gen _ (ASg Neut) => Prelude.glue s "ого";
AF Gen _ APl => Prelude.glue s "ых";
AF Inst _ (ASg Masc) => Prelude.glue s "ым";
AF Inst _ (ASg Fem) => Prelude.glue s "ой";
AF Inst _ (ASg Neut) => Prelude.glue s "ым";
AF Inst _ APl => Prelude.glue s "ыми";
AF Dat _ (ASg Masc) => Prelude.glue s "ому";
AF Dat _ (ASg Fem) => Prelude.glue s "ой";
@@ -1493,6 +1525,7 @@ param Conjugation = First | FirstE | Second | Mixed | Dolzhen;
---- Dummy verbum "have" that corresponds to the phrases like
---- "I have a headache" in English. The corresponding sentence
---- in Russian doesn't contain a verb:
--
--oper have: Verbum = {s=\\ vf => "-" ; asp = Imperfective} ;
--
---- There are two common conjugations
@@ -1533,6 +1566,8 @@ oper verbDolzhen : Verbum = verbDecl Imperfective Dolzhen "долж" "ен" "д
--
-- Irregular Mixed:
oper verbKhotet : Verbum = verbDecl Imperfective Mixed "хоч" "у" "хотел" "хоти" "хотеть";
-- Irregular
oper verbDolzhen : Verbum = verbDecl Imperfective Dolzhen "долж" "ен" "долж" ["будь должен"] ["быть должным"] ;
-- To reduces the redundancies in the definitions

View File

@@ -36,6 +36,26 @@ concrete NounRus of Noun = CatRus ** open ResRus, Prelude, MorphoRus in {
pron = np.pron
} ;
PPartNP np v2 = {
s = \\pf => np.s ! pf ++ v2.s ! VFORM Act VINF ;
-- no participles in the Verbum type as they behave as adjectives
n = np.n;
p = np.p;
g = np.g;
anim = np.anim;
pron = np.pron
} ;
AdvNP np adv = {
s = \\pf => np.s ! pf ++ adv.s ;
n = np.n;
p = np.p;
g = np.g;
anim = np.anim;
pron = np.pron
} ;
DetSg quant ord = {
s = \\af => quant.s!af ++ ord.s!af ;
n = quant.n;
@@ -62,17 +82,15 @@ concrete NounRus of Noun = CatRus ** open ResRus, Prelude, MorphoRus in {
-- so just leave a decimal representation, without case-suffixes:
NumInt i = {s = table { _ => table {_ => i.s } } } ;
{-
OrdInt n = case n of {
0|2|6 => (uy_oj_EndDecl n.s) ;
3 => (ti_j_EndDecl n.s) ;
_ => uy_j_EndDecl n.s } ;
-- OrdInt n = case n of {
-- 0|2|6 => (uy_oj_EndDecl n.s) ;
-- 3 => (ti_j_EndDecl n.s) ;
-- _ => uy_j_EndDecl n.s } ;
OrdNumeral numeral =
{s = \\ af => (uy_j_EndDecl (numeral.s ! caseAF af ! genAF af)).s!af} ;
-}
NumNumeral n = n ;
{s = \\ af => (uy_j_EndDecl (numeral.s ! caseAF af ! genAF af)).s!af} ;
NumNumeral n = n ;
AdNum adn num = {s = \\c,n => adn.s ++ num.s!c!n} ;

View File

@@ -23,12 +23,12 @@ param
Animacy = Animate | Inanimate ;
Voice = Act | Pass ;
Aspect = Imperfective | Perfective ;
-- RusTense = Present | Past | Future ;
RusTense = Present | PastRus | Future ;
-- Degree = Pos | Comp | Super ;
AfterPrep = Yes | No ;
Possessive = NonPoss | Poss GenNum ;
-- Anteriority = Simul | Anter ;
ClForm = ClIndic Tense Anteriority | ClCondit | ClInfinit | ClImper;
ClForm = ClIndic RusTense Anteriority | ClCondit | ClInfinit | ClImper;
-- "naked infinitive" clauses
-- A number of Russian nouns have common gender. They can
@@ -178,7 +178,7 @@ oper
-- Depending on the tense verbs conjugate according to combinations
-- of gender, person and number of the verb objects.
-- Participles (Present and Past) and Gerund forms are not included in the
-- Participles (Present and PastRus) and Gerund forms are not included in the
-- current description. This is the verb type used in the lexicon:
oper Verbum : Type = { s: VerbForm => Str ; asp : Aspect };
@@ -190,8 +190,12 @@ param
VTense = VPresent Person | VPast | VFuture Person ;
oper
getVTense : Tense -> Person -> VTense= \t,p ->
case t of { Present => VPresent p ; Past => VPast; Future => VFuture p } ;
getVTense : RusTense -> Person -> VTense= \t,p ->
case t of { Present => VPresent p ; PastRus => VPast; Future => VFuture p } ;
getTense : Tense -> RusTense= \t ->
case t of { Pres => Present ; Past => PastRus; _ => Future} ;
getVoice: VerbForm -> Voice = \vf ->
case vf of {
@@ -203,7 +207,7 @@ Nom => "";
Gen => "себя";
Dat=> "себе";
Acc => "себя";
Instr => "собой";
Inst => "собой";
Prep =>"себе"};
Verb : Type = {s : ClForm => GenNum => Person => Str ; asp : Aspect ; w: Voice} ;
@@ -256,7 +260,7 @@ param
oper
getActVerbForm : ClForm -> Gender -> Number -> Person -> VerbForm = \clf,g,n, p -> case clf of
{ ClIndic Future _ => VFORM Act (VIND (gNum g n) (VFuture p));
ClIndic Past _ => VFORM Act (VIND (gNum g n) VPast);
ClIndic PastRus _ => VFORM Act (VIND (gNum g n) VPast);
ClIndic Present _ => VFORM Act (VIND (gNum g n) (VPresent p));
ClCondit => VFORM Act (VSUB (gNum g n));
ClInfinit => VFORM Act VINF ;
@@ -387,324 +391,4 @@ oper
SF _ Prepos => Prepos
} ;
-- oper
-- agrP3 : Number -> Agr = \n ->
-- {n = n ; p = P3} ;
--
-- conjAgr : Agr -> Agr -> Agr = \a,b -> {
-- n = conjNumber a.n b.n ;
-- p = conjPerson a.p b.p
-- } ;
--
---- For $Lex$.
--
---- For each lexical category, here are the worst-case constructors.
--
-- mkNoun : (_,_,_,_ : Str) -> {s : Number => Case => Str} =
-- \man,mans,men,mens -> {
-- s = table {
-- Sg => table {
-- Gen => mans ;
-- _ => man
-- } ;
-- Pl => table {
-- Gen => mens ;
-- _ => men
-- }
-- }
-- } ;
--
-- mkAdjective : (_,_,_,_ : Str) -> {s : AForm => Str} =
-- \good,better,best,well -> {
-- s = table {
-- AAdj Posit => good ;
-- AAdj Compar => better ;
-- AAdj Superl => best ;
-- AAdv => well
-- }
-- } ;
--
-- mkVerb : (_,_,_,_,_ : Str) -> Verb =
-- \go,goes,went,gone,going -> {
-- s = table {
-- VInf => go ;
-- VPres => goes ;
-- VPast => went ; --# notpresent
-- VPPart => gone ;
-- VPresPart => going
-- } ;
-- isRefl = False
-- } ;
--
-- mkIP : (i,me,my : Str) -> Number -> {s : Case => Str ; n : Number} =
-- \i,me,my,n -> let who = mkNP i me my n P3 in {s = who.s ; n = n} ;
--
-- mkNP : (i,me,my : Str) -> Number -> Person -> {s : Case => Str ; a : Agr} =
-- \i,me,my,n,p -> {
-- s = table {
-- Nom => i ;
-- Acc => me ;
-- Gen => my
-- } ;
-- a = {
-- n = n ;
-- p = p
-- }
-- } ;
--
---- These functions cover many cases; full coverage inflectional patterns are
---- in $MorphoRus$.
--
-- regN : Str -> {s : Number => Case => Str} = \car ->
-- mkNoun car (car + "'s") (car + "s") (car + "s'") ;
--
-- regA : Str -> {s : AForm => Str} = \warm ->
-- mkAdjective warm (warm + "er") (warm + "est") (warm + "ly") ;
--
-- regV : Str -> Verb = \walk ->
-- mkVerb walk (walk + "s") (walk + "ed") (walk + "ed") (walk + "ing") ;
--
-- regNP : Str -> Number -> {s : Case => Str ; a : Agr} = \that,n ->
-- mkNP that that (that + "'s") n P3 ;
--
---- We have just a heuristic definition of the indefinite article.
---- There are lots of exceptions: consonantic "e" ("euphemism"), consonantic
---- "o" ("one-sided"), vocalic "u" ("umbrella").
--
-- artIndef = pre {
-- "a" ;
-- "an" / strs {"a" ; "e" ; "i" ; "o" ; "A" ; "E" ; "I" ; "O" }
-- } ;
--
-- artDef = "the" ;
--
---- For $Verb$.
--
-- Verb : Type = {
-- s : VForm => Str ;
-- isRefl : Bool
-- } ;
--
-- VerbForms : Type =
-- Tense => Anteriority => Polarity => Order => Agr => {fin, inf : Str} ;
--
-- VP : Type = {
-- s : VerbForms ;
-- prp : Str ; -- present participle
-- inf : Str ; -- infinitive
-- ad : Str ;
-- s2 : Agr => Str
-- } ;
--
----- The order gets wrong with AdV, but works around a parser
----- generation bug.
--
-- predV : Verb -> VP = \verb -> {
-- s = \\t,ant,b,ord,agr =>
-- let
-- inf = verb.s ! VInf ;
-- fin = presVerb verb agr ;
-- part = verb.s ! VPPart ;
-- vf : Str -> Str -> {fin, inf : Str} = \x,y ->
-- {fin = x ; inf = y} ;
-- in
-- case <t,ant,b,ord> of {
-- <Pres,Simul,Pos,ODir> => vf fin [] ; --- should be opp
-- <Pres,Simul,Pos,OQuest> => vf (does agr) inf ;
-- <Pres,Anter,Pos,_> => vf (have agr) part ; --# notpresent
-- <Pres,Anter,Neg,_> => vf (havent agr) part ; --# notpresent
-- <Past,Simul,Pos,ODir> => vf (verb.s ! VPast) [] ; --# notpresent --- should be opp
-- <Past,Simul,Pos,OQuest> => vf "did" inf ; --# notpresent
-- <Past,Simul,Neg,_> => vf "didn't" inf ; --# notpresent
-- <Past,Anter,Pos,_> => vf "had" part ; --# notpresent
-- <Past,Anter,Neg,_> => vf "hadn't" part ; --# notpresent
-- <Fut, Simul,Pos,_> => vf "will" inf ; --# notpresent
-- <Fut, Simul,Neg,_> => vf "won't" inf ; --# notpresent
-- <Fut, Anter,Pos,_> => vf "will" ("have" ++ part) ; --# notpresent
-- <Fut, Anter,Neg,_> => vf "won't" ("have" ++ part) ; --# notpresent
-- <Cond,Simul,Pos,_> => vf "would" inf ; --# notpresent
-- <Cond,Simul,Neg,_> => vf "wouldn't" inf ; --# notpresent
-- <Cond,Anter,Pos,_> => vf "would" ("have" ++ part) ; --# notpresent
-- <Cond,Anter,Neg,_> => vf "wouldn't" ("have" ++ part) ; --# notpresent
-- <Pres,Simul,Neg,_> => vf (doesnt agr) inf
-- } ;
-- prp = verb.s ! VPresPart ;
-- inf = verb.s ! VInf ;
-- ad = [] ;
-- s2 = \\a => if_then_Str verb.isRefl (reflPron ! a) []
-- } ;
--
-- predAux : Aux -> VP = \verb -> {
-- s = \\t,ant,b,ord,agr =>
-- let
-- inf = verb.inf ;
-- fin = verb.pres ! b ! agr ;
-- part = verb.ppart ;
-- vf : Str -> Str -> {fin, inf : Str} = \x,y ->
-- {fin = x ; inf = y} ;
-- in
-- case <t,ant,b,ord> of {
-- <Pres,Anter,Pos,_> => vf (have agr) part ; --# notpresent
-- <Pres,Anter,Neg,_> => vf (havent agr) part ; --# notpresent
-- <Past,Simul,_, _> => vf (verb.past ! b ! agr) [] ; --# notpresent
-- <Past,Anter,Pos,_> => vf "had" part ; --# notpresent
-- <Past,Anter,Neg,_> => vf "hadn't" part ; --# notpresent
-- <Fut, Simul,Pos,_> => vf "will" inf ; --# notpresent
-- <Fut, Simul,Neg,_> => vf "won't" inf ; --# notpresent
-- <Fut, Anter,Pos,_> => vf "will" ("have" ++ part) ; --# notpresent
-- <Fut, Anter,Neg,_> => vf "won't" ("have" ++ part) ; --# notpresent
-- <Cond,Simul,Pos,_> => vf "would" inf ; --# notpresent
-- <Cond,Simul,Neg,_> => vf "wouldn't" inf ; --# notpresent
-- <Cond,Anter,Pos,_> => vf "would" ("have" ++ part) ; --# notpresent
-- <Cond,Anter,Neg,_> => vf "wouldn't" ("have" ++ part) ; --# notpresent
-- <Pres,Simul,_, _> => vf fin []
-- } ;
-- prp = verb.prpart ;
-- inf = verb.inf ;
-- ad = [] ;
-- s2 = \\_ => []
-- } ;
--
-- insertObj : (Agr => Str) -> VP -> VP = \obj,vp -> {
-- s = vp.s ;
-- prp = vp.prp ;
-- inf = vp.inf ;
-- ad = vp.ad ;
-- s2 = \\a => vp.s2 ! a ++ obj ! a
-- } ;
--
----- The adverb should be before the finite verb.
--
-- insertAdV : Str -> VP -> VP = \adv,vp -> {
-- s = vp.s ;
-- prp = vp.prp ;
-- inf = vp.inf ;
-- ad = vp.ad ++ adv ;
-- s2 = \\a => vp.s2 ! a
-- } ;
--
----
--
-- predVV : {s : VVForm => Str ; isAux : Bool} -> VP = \verb ->
-- let verbs = verb.s
-- in
-- case verb.isAux of {
-- True => predAux {
-- pres = table {
-- Pos => \\_ => verbs ! VVF VPres ;
-- Neg => \\_ => verbs ! VVPresNeg
-- } ;
-- past = table { --# notpresent
-- Pos => \\_ => verbs ! VVF VPast ; --# notpresent
-- Neg => \\_ => verbs ! VVPastNeg --# notpresent
-- } ; --# notpresent
-- inf = verbs ! VVF VInf ;
-- ppart = verbs ! VVF VPPart ;
-- prpart = verbs ! VVF VPresPart ;
-- } ;
-- _ => predV {s = \\vf => verbs ! VVF vf ; isRefl = False}
-- } ;
--
-- presVerb : {s : VForm => Str} -> Agr -> Str = \verb ->
-- agrVerb (verb.s ! VPres) (verb.s ! VInf) ;
--
-- infVP : Bool -> VP -> Agr -> Str = \isAux,vp,a ->
-- if_then_Str isAux [] "to" ++
-- vp.inf ++ vp.s2 ! a ;
--
-- agrVerb : Str -> Str -> Agr -> Str = \has,have,agr ->
-- case agr of {
-- {n = Sg ; p = P3} => has ;
-- _ => have
-- } ;
--
-- have = agrVerb "has" "have" ;
-- havent = agrVerb "hasn't" "haven't" ;
-- does = agrVerb "does" "do" ;
-- doesnt = agrVerb "doesn't" "don't" ;
--
-- Aux = {
-- pres : Polarity => Agr => Str ;
-- past : Polarity => Agr => Str ; --# notpresent
-- inf,ppart,prpart : Str
-- } ;
--
-- auxBe : Aux = {
-- pres = \\b,a => case <b,a> of {
-- <Pos,{n = Sg ; p = P1}> => "am" ;
-- <Neg,{n = Sg ; p = P1}> => ["am not"] ; --- am not I
-- _ => agrVerb (posneg b "is") (posneg b "are") a
-- } ;
-- past = \\b,a => case a of { --# notpresent
-- {n = Sg ; p = P1|P3} => (posneg b "was") ; --# notpresent
-- _ => (posneg b "were") --# notpresent
-- } ; --# notpresent
-- inf = "be" ;
-- ppart = "been" ;
-- prpart = "being"
-- } ;
--
-- posneg : Polarity -> Str -> Str = \p,s -> case p of {
-- Pos => s ;
-- Neg => s + "n't"
-- } ;
--
-- conjThat : Str = "that" ;
--
-- reflPron : Agr => Str = table {
-- {n = Sg ; p = P1} => "myself" ;
-- {n = Sg ; p = P2} => "yourself" ;
-- {n = Sg ; p = P3} => "itself" ; ----
-- {n = Pl ; p = P1} => "ourselves" ;
-- {n = Pl ; p = P2} => "yourselves" ;
-- {n = Pl ; p = P3} => "themselves"
-- } ;
--
---- For $Sentence$.
--
-- Clause : Type = {
-- s : Tense => Anteriority => Polarity => Order => Str
-- } ;
--
-- mkClause : Str -> Agr -> VP -> Clause =
-- \subj,agr,vp -> {
-- s = \\t,a,b,o =>
-- let
-- verb = vp.s ! t ! a ! b ! o ! agr ;
-- compl = vp.s2 ! agr
-- in
-- case o of {
-- ODir => subj ++ verb.fin ++ vp.ad ++ verb.inf ++ compl ;
-- OQuest => verb.fin ++ subj ++ vp.ad ++ verb.inf ++ compl
-- }
-- } ;
--
--
---- For $Numeral$.
--
-- mkNum : Str -> Str -> Str -> Str -> {s : DForm => CardOrd => Str} =
-- \two, twelve, twenty, second ->
-- {s = table {
-- unit => table {NCard => two ; NOrd => second} ;
-- teen => \\c => mkCard c twelve ;
-- ten => \\c => mkCard c twenty
-- }
-- } ;
--
-- regNum : Str -> {s : DForm => CardOrd => Str} =
-- \six -> mkNum six (six + "teen") (six + "ty") (regOrd six) ;
--
-- regCardOrd : Str -> {s : CardOrd => Str} = \ten ->
-- {s = table {NCard => ten ; NOrd => regOrd ten}} ;
--
-- mkCard : CardOrd -> Str -> Str = \c,ten ->
-- (regCardOrd ten).s ! c ;
--
-- regOrd : Str -> Str = \ten ->
-- case last ten of {
-- "y" => init ten + "ieth" ;
-- _ => ten + "th"
-- } ;
--
}

View File

@@ -70,10 +70,10 @@ concrete SentenceRus of Sentence = CatRus ** open Prelude, ResRus in {
EmbedS s = {s = "что" ++ s.s} ;
-- In Russian "Whether you go" transformed in "go whether you":
EmbedQS qs = {s = qs.s ! QIndir} ;
EmbedVP vp = {s = vp.s!ClInfinit!(ASg Masc) !P3} ;
EmbedVP vp = {s = vp.s!ClInfinit!(ASg Masc) !P3} ;
UseCl t a p cl = {s = cl.s! p.p ! ClIndic t.t a.a};
UseCl t a p cl = {s = cl.s! p.p ! ClIndic (getTense t.t) a.a};
UseQCl t a p qcl= {s = qcl.s!p.p! ClIndic (getTense t.t) a.a };
UseRCl t a p rcl ={s = rcl.s! p.p ! ClIndic (getTense t.t) a.a };

View File

@@ -1,7 +1,7 @@
--# -path=.:../abstract:../common:../../prelude
concrete StructuralRus of Structural = CatRus **
open ResRus, MorphoRus, (P = ParadigmsRus), Prelude,NounRus in {
open ResRus, MorphoRus, (P = ParadigmsRus), Prelude, NounRus, in {
flags optimize=all ; coding=utf8 ;
@@ -38,7 +38,6 @@ lin
everything_NP = UsePron (pronVseInanimate ** {lock_Pron=<>}) ;
everywhere_Adv = ss "везде" ;
few_Det = (ij_EndK_G_KH_Decl "немног") **{lock_Det= <>; n= Sg; g = PNoGen; c = Nom}; -- AMalenkij
first_Ord = (uy_j_EndDecl "перв" ) ** {lock_A = <>}; --AStaruyj
from_Prep = { s = "от" ; c = Gen };
he_Pron = pronOn ;
@@ -59,9 +58,6 @@ lin
-- inanimate, Sg: "большинство телефонов безмолству-ет"
-- most8many_Det = bolshinstvoPlDet ** {n = Pl; g = (PGen Neut); c= Gen} ;
-- animate, Pl: "большинство учащихся хорошо подготовлен-ы"
much_Det = mnogoSgDet ** {n = Sg; g = (PGen Neut); c= Gen} ; -- same as previous
must_VV = verbDolzhen ;
no_Phr = ss ["Нет ."] ;
@@ -75,8 +71,6 @@ lin
please_Voc = ss "пожалуйста" ;
possess_Prep = { s = "" ; c = Gen}; --- ?? AR 19/2/2004
quite_Adv = ss "довольно" ;
she_Pron = pronOna ;
so_AdA = ss "так";
somebody_NP = UsePron (pronKtoTo** {lock_Pron = <>});
@@ -84,22 +78,14 @@ lin
somePl_Det = nekotorujDet ** {n = Pl; g = PNoGen; c= Nom} ;
something_NP = UsePron (pronChtoTo** {lock_Pron=<> }) ;
somewhere_Adv = ss "где-нибудь" ;
{-
these_NP n = { s =\\_ => "“”"; n = Pl; p = P3; g= PGen Fem ;
anim = Animate ; pron = True} ; -- missing in Russian
those_NP n = { s =\\_ => "“”" ; n = Pl; p = P3; g=PGen Fem ;
anim = Animate ; pron = True} ; -- missing in Russian
-}
these_NP = UsePron (pronEti** {lock_Pron = <>}); -- missing in Russian
those_NP = UsePron (pronTe** {lock_Pron = <>}); -- missing in Russian
that_Quant = totDet ** {n = Sg; g = PNoGen; c= Nom} ;
that_NP = det2NounPhrase totDet ; -- inanimate form only
there_Adv = ss "там" ;
there7to_Adv = ss "туда" ;
there7from_Adv = ss "оттуда" ;
therefore_PConj = ss "следовательно" ;
-- these_NDet = etotDet ** { g = PNoGen; c= Nom} ;
-- they8fem_NP = UsePron pronOni Animate;
they_Pron = pronOni;
@@ -113,8 +99,6 @@ lin
under_Prep = { s = "под" ; c = Inst };
very_AdA = ss "очень" ;
want_VV = verbKhotet ;
we_Pron = pronMu ;
whatPl_IP = pron2NounPhraseNum pronChto Inanimate Pl;
whatSg_IP = pron2NounPhraseNum pronChto Inanimate Sg;
@@ -146,7 +130,5 @@ lin
--- NeitherNor = sd2 "ни" [", ни"] ** {n = Sg} ;
--- NowhereNP = ss "нигде" ;
--- AgentPrep = { s = "" ; c = Nom}; -- missing in Russian
}
}

View File

@@ -9,7 +9,7 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
{ s=\\clf,gn,p => case clf of
{
(ClIndic Present _) => masha.s ! (mkPronForm Nom No NonPoss) ;
(ClIndic Past _) => case gn of
(ClIndic PastRus _) => case gn of
{ (ASg Fem) =>"была"++masha.s ! (mkPronForm Inst No NonPoss);
(ASg Masc) =>"был" ++ masha.s!(mkPronForm Inst No NonPoss);
(ASg Neut) =>"было" ++ masha.s!(mkPronForm Inst No NonPoss);
@@ -52,7 +52,7 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
};
-- infinitive does not save GenNum,
-- but indicative does for the sake of adjectival predication !
ClIndic Present _ => zloj.s ! AF Nom Animate gn ;
ClIndic Present _ => zloj.s ! AF Nom Animate gn ;
ClIndic PastRus _ => case gn of
{ (ASg Fem) => "была" ++ zloj.s! AF Nom Animate (ASg Fem);
@@ -97,7 +97,7 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
{ s= \\clf,gn,p => case clf of {
ClImper => case gn of
{ ASg _ => "будь" ++ zloj.s; -- person is ignored !
APl => "будьте" ++ zloj.s
APl => "будьте" ++ zloj.s
};
ClInfinit => "быть" ++ zloj.s;
ClIndic Present _ => zloj.s ;