This commit is contained in:
janna
2006-06-09 11:10:43 +00:00
parent 648b186491
commit b589a0fd4d
5 changed files with 182 additions and 116 deletions

View File

@@ -22,7 +22,17 @@ concrete IdiomRus of Idiom = CatRus ** open Prelude, ResRus, MorphoRus in {
}
} ;
ImpersCl vp = {s= \\ b, clf => let ne= case b of {Pos =>[]; Neg =>""}
CleftAdv adv sen = {s= \\ b, clf => let ne= case b of {Pos =>[]; Neg =>"не"}
in
"это" ++ ne ++ adv.s ++ sen.s };
CleftNP np rs = {s= \\ b, clf => let ne= case b of {Pos =>[]; Neg =>"не"}
in
"это" ++ ne ++ np.s ! (PF Nom No NonPoss) ++ rs.s ! ASg Masc!Nom!Animate };
ImpPl1 vp = {s= "давайте" ++ vp.s! (ClIndic Future Simul)! APl ! P2 };
ImpersCl vp = {s= \\ b, clf => let ne= case b of {Pos =>[]; Neg =>"не"}
in
ne ++ vp.s! clf! (ASg Neut) ! P3 };

View File

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

View File

@@ -9,18 +9,18 @@ flags
coding=utf8 ;
lin
airplane_N = nTelefon "самолет" ;
answer_V2S = tvDir (mkRegVerb imperfective first "отвеча" "ю" "отвечал" "отвечай" "отвечать" );
answer_V2S = dirV2 (regV imperfective first "отвеча" "ю" "отвечал" "отвечай" "отвечать" );
apartment_N = nMashina "квартир" ;
apple_N = nChislo "яблок" ;
art_N = nChislo "искусств" ;
ask_V2Q = tvDir (mkRegVerb imperfective first "спрашива" "ю" "спрашивал" "спрашивай" "спрашивать") ;
ask_V2Q = dirV2 (regV imperfective first "спрашива" "ю" "спрашивал" "спрашивай" "спрашивать") ;
baby_N = nMalush "малыш";
bad_A = AKakoj_Nibud "плох" "" "хуже";
bank_N = nBank "банк" ;
beautiful_A = AStaruyj "красив" "красивее";
become_VA = mkRegVerb perfective second "станов" "лю" "стал" "стань" "стать" ;
become_VA = regV perfective second "станов" "лю" "стал" "стань" "стать" ;
beer_N = nChislo "пив" ;
beg_V2V = tvDir (mkRegVerb imperfective second "про" "шу" "просил" "проси" "просить" );
beg_V2V = dirV2 (regV imperfective second "про" "шу" "просил" "проси" "просить" );
big_A = AKakoj_Nibud "больш" "" "больше" ;
bike_N = nTelefon "велосипед" ;
bird_N = nEdinica "птиц" ;
@@ -32,12 +32,12 @@ lin
boss_N = nStomatolog "начальник" ;
boy_N = nStomatolog "мальчик" ;
bread_N = nAdres "хлеб" ;
break_V2 = tvDir (mkRegVerb imperfective first "прерыва" "ю" "прерывал" "прерывай" "прерывать" );
break_V2 = dirV2 (regV imperfective first "прерыва" "ю" "прерывал" "прерывай" "прерывать" );
broad_A = AMalenkij "широк" "шире";
brother_N2 = mkN2 (nBrat ",брат") ;
brown_A = AStaruyj "коричнев" "коричневее";
butter_N = nChislo "масл";
butter_N = nChislo "масл";
buy_V2 = dirV2 (regV imperfective first "покупа" "ю" "покупал" "покупай" "покупать" );
camera_N = nMashina "kamer" ;
cap_N = nNoga "чашк" ; -- чаш-ек Pl-Gen
@@ -51,29 +51,29 @@ child_N = mkN "ребёнок" "ребёнка" "ребёнку" "ребёнка
church_N = mkN "церковь" "церкви" "церкви" "церковь" "церковью" "церкви" "церкви" "церквей" "церквям" "церкви" "церквями" "церквях" masculine inanimate;
city_N = nAdres "город" ;
clean_A = AStaruyj "чист" "чище";
clean_A = AStaruyj "чист" "чище";
clever_A = AStaruyj "умн" "умнее";
close_V2= dirV2 (regV imperfective first "закрыва" "ю" "закрывал" "закрывай" "закрывать" );
coat_N = mkIndeclinableNoun "пальто" masculine inanimate ;
coat_N = mkIndeclinableNoun "пальто" masculine inanimate ;
cold_A = AStaruyj "холодн" "холоднее";
come_V = regV imperfective first "прихо" "жу" "приходил" "приходи" "приходить" ;
computer_N = nTelefon "компьютер" ;
country_N = nMashina "стран" ;
cousin_N = nTelefon "кузен" ;
cousin_N = nTelefon "кузен" ;
cow_N = nMashina "коров" ;
die_V = regV imperfective first "умира" "ю" "умирал" "умрай" "умирать" ;
dirty_A = AStaruyj "грязн" "грязнее" ;
doctor_N = nAdres "доктор" ;
dog_N = nNoga "собак" ;
door_N = nBol "двер" ;
dog_N = nNoga "собак" ;
door_N = nBol "двер" ;
drink_V2 = dirV2 (regV imperfective firstE "пь" "ю" "пил" "пей" "пить" );
eat_V2 = dirV2 (regV imperfective first "куша" "ю" "кушал" "кушай" "кушать" );
enemy_N = nStomatolog "враг" ;
factory_N = nNoga "фабрик" ;
father_N2 = mkN2 (mkN "отец" "отца" "отцу" "отца" "отцом" "отце" "отцы" "отцов" "отцам" "отцов" "отцами" "отцах" masculine animate);
factory_N = nNoga "фабрик" ;
father_N2 = mkN2 (mkN "отец" "отца" "отцу" "отца" "отцом" "отце" "отцы" "отцов" "отцам" "отцов" "отцами" "отцах" masculine animate);
fear_VS= regV imperfective second "бо" "ю" "боял" "бой" "боять" ;
find_V2 = dirV2 (regV imperfective second "нахо" "жу" "находил" "находи" "находить" );
fish_N = nMashina "рыб" ;
fish_N = nMashina "рыб" ;
floor_N = nTelefon "пол" ;
forget_V2= dirV2 (regV imperfective first "забыва" "ю" "забывал" "забывай" "забывать" );
fridge_N = nBank "холодильник" ;
@@ -82,15 +82,15 @@ girl_N = nNoga "девочк" ;
garden_N = nTelefon "сад" ;
girl_N = nNoga "девочк" ;
glove_N = nNoga "перчатк" ;
gold_N = nChislo "золот" ;
gold_N = nChislo "золот" ;
good_A = AKhoroshij "хорош" "лучше" ;
go_V= regV imperfective second "хо" "жу" "ходил" "ходи" "ходить" ;
green_A = AStaruyj "зелен" "зеленее" ;
green_A = AStaruyj "зелен" "зеленее" ;
harbour_N = nTelefon "залив" ;
hate_V2= tvDir (mkRegVerb imperfective second "ненави" "жу" "ненавидел" "ненавидь" "ненавидеть" );
hat_N = nMashina "шляп" ;
hate_V2= dirV2 (regV imperfective second "ненави" "жу" "ненавидел" "ненавидь" "ненавидеть" );
hat_N = nMashina "шляп" ;
have_V2= dirV2 (regV imperfective first "име" "ю" "имел" "имей" "иметь" );
hear_V2= tvDir (mkRegVerb imperfective first "слуша" "ю" "слушал" "слушай" "слушать" );
hear_V2= dirV2 (regV imperfective first "слуша" "ю" "слушал" "слушай" "слушать" );
hill_N = nTelefon "холм" ;
hope_VS= regV imperfective first "наде" "ю" "надеял" "надей" "надеять" ;
horse_N = nBol "лошад" ;
@@ -98,19 +98,19 @@ important_A = AStaruyj "важн" "важнее" ;
house_N = nAdres "дом" ;
important_A = AStaruyj "важн" "важнее" ;
industry_N = nChislo "производств" ;
industry_N = nChislo "производств" ;
iron_N = nChislo "желез" ;
king_N = mkN "король" "короля" "королю" "короля" "королем" "короле" "короли" "королей" "королям" "королей" "королями" "королях" masculine animate;
know_V2= tvDir (mkRegVerb imperfective first "зна" "ю" "знал" "знай" "знать" );
know_V2= dirV2 (regV imperfective first "зна" "ю" "знал" "знай" "знать" );
lake_N = nChislo "озер" ;
lamp_N = nMashina "ламп" ;
learn_V2= tvDir (mkRegVerb imperfective second "уч" "у" "учил" "учи" "учить" );
leather_N = nEdinica "кож" ;
leave_V2= tvDir (mkRegVerb imperfective second "ухож" "у" "уходил" "уходи" "уходить" );
lamp_N = nMashina "ламп" ;
learn_V2= dirV2 (regV imperfective second "уч" "у" "учил" "учи" "учить" );
leather_N = nEdinica "кож" ;
leave_V2= dirV2 (regV imperfective second "ухож" "у" "уходил" "уходи" "уходить" );
like_V2= dirV2 (regV imperfective second "нрав" "лю" "нравил" "нравь" "нравить" );
listen_V2= tvDir (mkRegVerb imperfective first "слуша" "ю" "слушал" "слушай" "слушать" );
listen_V2= dirV2 (regV imperfective first "слуша" "ю" "слушал" "слушай" "слушать" );
live_V= regV imperfective firstE "жив" "у" "жил" "живи" "жить" ;
long_A = AStaruyj "длинн" "длиннее" ;
long_A = AStaruyj "длинн" "длиннее" ;
lose_V2 = dirV2 (regV imperfective first "теря" "ю" "терял" "теряй" "терять" );
love_N = nBol "любов" ;
love_V2= dirV2 (regV imperfective second "люб" "лю" "любил" "люби" "любить" );
@@ -123,18 +123,18 @@ new_A = AStaruyj "нов" "новее" ;
music_N = nNoga "музык" ;
narrow_A = AStaruyj "узк" "уже" ;
new_A = AStaruyj "нов" "новее" ;
new_A = AStaruyj "нов" "новее" ;
newspaper_N = nMashina "газет" ;
oil_N = nBol "нефть" ;
old_A = AStaruyj "стар" "старше" ;
open_V2= dirV2 (regV imperfective first "открыва" "ю" "открывал" "открывай" "открывать" );
paper_N = nNoga "бумаг" ;
peace_N = nTelefon "мир" ;
peace_N = nTelefon "мир" ;
pen_N = nNoga "ручк" ;
planet_N = nMashina "планет" ;
plastic_N = nMashina "пластмасс" ;
play_V2 = dirV2 (regV imperfective first "игра" "ю" "играл" "играй" "играть" );
policeman_N = nTelefon "милиционер" ;
policeman_N = nTelefon "милиционер" ;
priest_N = nStomatolog "священник" ;
queen_N = nMashina "королев" ;
radio_N = mkIndeclinableNoun "радио" neuter inanimate;
@@ -142,15 +142,15 @@ river_N = nNoga "рек" ;
red_A = AStaruyj "красн" "краснее" ;
religion_N = nMalyariya "религи" ;
restaurant_N = nTelefon "ресторан" ;
river_N = nNoga "рек" ;
rock_N = nUroven "кам" ;
river_N = nNoga "рек" ;
rock_N = nUroven "кам" ;
roof_N = nEdinica "крыш" ;
rubber_N = nMashina "резин" ;
run_V = regV imperfective first "бега" "ю" "бегал" "бегай" "бегать" ;
say_VS = mkRegVerb imperfective second "говор" "ю" "говорил" "говори" "говорить" ;
school_N = nMashina "школ" ;
science_N = nEdinica "наук" ;
sea_N = nProizvedenie "мор" ;
say_VS = regV imperfective second "говор" "ю" "говорил" "говори" "говорить" ;
school_N = nMashina "школ" ;
science_N = nEdinica "наук" ;
sea_N = nProizvedenie "мор" ;
seek_V2 = dirV2 (regV imperfective first "ищ" "у" "искал" "ищи" "искать" );
see_V2 = dirV2 (regV imperfective second "виж" "у" "видел" "видь" "видеть" );
sell_V3 = tvDirDir (regV imperfective firstE "прода" "ю" "продавал" "продавай" "продавать" );
@@ -159,11 +159,11 @@ shop_N = nTelefon "магазин" ;
ship_N = nNol "корабл" ;
shirt_N = nNoga "рубашк" ;
shoe_N = mkN "туфля" "туфли" "туфле" "туфлю" "туфлей" "туфле" "туфли" "туфель" "туфлям" "туфли" "туфлями" "туфлях" masculine inanimate;
shoe_N = mkN "туфля" "туфли" "туфле" "туфлю" "туфлей" "туфле" "туфли" "туфель" "туфлям" "туфли" "туфлями" "туфлях" masculine inanimate;
shop_N = nTelefon "магазин" ;
short_A = AMalenkij "коротк" "короче" ;
silver_N = nChislo "серебр" ;
sister_N = nMashina "сестр" ;
sister_N = nMashina "сестр" ;
sleep_V = regV imperfective second "сп" "лю" "спал" "спи" "спать" ;
small_A = AMalenkij "маленьк" "меньше" ;
snake_N = nTetya"зме" ;
@@ -171,47 +171,47 @@ stove_N = nBol "печ" ;
speak_V2 = dirV2 (regV imperfective second "говор" "ю" "говорил" "говори" "говорить" );
star_N = nMashina "звезд" ;
steel_N = nBol "стал" ;
stone_N = nNol "камен" ;
stove_N = nBol "печ" ;
stone_N = nNol "камен" ;
stove_N = nBol "печ" ;
student_N = nTelefon "студент" ;
stupid_A = AMolodoj "тупой" "тупее" ;
sun_N = mkN "солнце" "солнца" "солнцу" "солнце" "солнцем" "солнце" "солнца" "солнц" "солнцам" "солнца" "солнцами" "солнцах" neuter inanimate;
sun_N = mkN "солнце" "солнца" "солнцу" "солнце" "солнцем" "солнце" "солнца" "солнц" "солнцам" "солнца" "солнцами" "солнцах" neuter inanimate;
switch8off_V2 = dirV2 (regV imperfective first "выключа" "ю" "выключал" "выключай" "выключать") ;
switch8on_V2 = dirV2 (regV imperfective first "включа" "ю" "включал" "включай" "включать") ;
table_N = nTelefon "стол" ;
teacher_N = nNol "учител" ;
teach_V2 = tvDir (mkRegVerb imperfective second "уч" "у" "учил" "учи" "учить" );
teach_V2 = dirV2 (regV imperfective second "уч" "у" "учил" "учи" "учить" );
television_N = nProizvedenie "телевидени" ;
thick_A = AStaruyj "толст" "толще" ;
thin_A = AMalenkij "тонк" "тоньше" ;
train_N = nAdres "поезд" ;
train_N = nAdres "поезд" ;
travel_V = regV imperfective first "путешеству" "ю" "путешествовал" "путешествуй" "путешествовать" ;
tree_N = nChislo "дерев" ;
--trousers_N = mkN "" "" "" "" "" "" "штаны" "штанов" "штанам" "штаны" "штанами" "штанах" masculine inanimate;
ugly_A = AStaruyj "некрасив" "некрасивее" ;
--trousers_N = mkN "" "" "" "" "" "" "штаны" "штанов" "штанам" "штаны" "штанами" "штанах" masculine inanimate;
ugly_A = AStaruyj "некрасив" "некрасивее" ;
understand_V2 = dirV2 (regV imperfective first "понима" "ю" "понимал" "понимай" "понимать" );
university_N = nTelefon "университет" ;
village_N = nMalyariya "деревн" ;
village_N = nMalyariya "деревн" ;
wait_V2 = dirV2 (regV imperfective firstE "жд" "у" "ждал" "жди" "ждать" );
walk_V = regV imperfective first "гуля" "ю" "гулял" "гуляй" "гулять" ;
warm_A = AStaruyj "тёпл" "теплее" ;
war_N = nMashina "войн" ;
watch_V2 = tvDir (mkRegVerb imperfective second "смотр" "ю" "смотрел" "смотри" "смотреть" );
watch_V2 = dirV2 (regV imperfective second "смотр" "ю" "смотрел" "смотри" "смотреть" );
water_N = nMashina "вод" ;
white_A = AStaruyj "бел" "белее" ;
window_N = nChislo "окн" ;
wine_N = nChislo "вин" ;
win_V2 = dirV2 (regV imperfective first "выигрыва" "ю" "выигрывал" "выигрывай" "выигрывать" );
woman_N = nZhenchina "женщин" ;
woman_N = nZhenchina "женщин" ;
wood_N = nChislo "дерев" ;
write_V2 = dirV2 (regV imperfective first "пиш" "у" "писал" "пиши" "писать" );
yellow_A = AStaruyj "жёлт" "желтее" ;
young_A = AMolodoj "молод" "моложе";
young_A = AMolodoj "молод" "моложе";
do_V2 = tvDir (mkRegVerb imperfective first "дела" "ю" "делал" "делай" "делать" );
now_Adv = mkAdv "сейчас" ;
already_Adv = mkAdv "уже" ;
do_V2 = dirV2 (regV imperfective first "дела" "ю" "делал" "делай" "делать" );
now_Adv = mkAdv "сейчас" ;
already_Adv = mkAdv "уже" ;
song_N = nTetya "песн" ;
add_V3 = mkV3 (regV imperfective first "складыва" "ю" "складывал" "складывай" "складывать" ) "" "в" accusative accusative;
number_N = nChislo "числ" ;
@@ -225,11 +225,11 @@ easy_A2V = mkA2 (AMalenkij "легк" "легче") "для" genitive ;
-- "легко понять" ("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:
-- in Russian, but to use them with verb would be wrong in Russian:
fun_AV = AStaruyj "весёл" "веселее";
easy_A2V = mkA2 (AMalenkij "легк" "легче") "для" genitive ;
empty_A = AMolodoj "пуст" "пустее";
empty_A = AMolodoj "пуст" "пустее";
married_A2 = mkA2 (adjInvar "замужем") "за" instructive ;
paint_V2A = dirV2 (regV imperfective first "рису" "ю" "рисовал" "рисуй" "рисовать" ) ;
probable_AS = AStaruyj "возможный" "возможнее";
@@ -323,57 +323,57 @@ wonder_VQ = mkRegVerb imperfective first "интересу" "ю" "интерес
wind_N = mkN "ветер" "ветра" "ветру" "ветер" "ветром" "ветра" "ветров" "ветра" "ветрам" "ветров" "ветрами" "ветрах" masculine inanimate ;
wing_N = mkN "крыло" "крыла" "крылу" "крыло" "крылом" "крыле" "крылья" "крыльев" "крыльям" "крылья" "крыльями" "крыльях" neuter inanimate ;
worm_N = nNol "черв" ;
year_N = nAdres "год" ;
-- Verbs
bite_V2 = tvDir (mkRegVerb imperfective first "куса" "ю" "кусал" "кусай" "кусать");
worm_N = nNol "черв" ;
year_N = nAdres "год" ;
-- Verbs
bite_V2 = dirV2 (regV imperfective first "куса" "ю" "кусал" "кусай" "кусать");
blow_V = regV imperfective first "ду" "ю" "дул" "дуй" "дуть" ;
breathe_V = regV imperfective second "дыш" "у" "дышал" "дыши" "дышать" ;
burn_V = mkRegVerb imperfective second "гор" "ю" "горел" "гори" "гореть" ;
burn_V = regV imperfective second "гор" "ю" "горел" "гори" "гореть" ;
count_V2 = dirV2 (regV imperfective first "счита" "ю" "считал" "считай" "считать" ) ;
cut_V2 = tvDir (mkRegVerb imperfective first "реж" "у" "резал" "режь" "резать" ) ;
dig_V = mkRegVerb imperfective first "копа" "ю" "копал" "копай" "копать" ;
fall_V = mkRegVerb imperfective first "пада" "ю" "падал" "падай" "падать" ;
cut_V2 = dirV2 (regV imperfective first "реж" "у" "резал" "режь" "резать" ) ;
dig_V = regV imperfective first "копа" "ю" "копал" "копай" "копать" ;
fall_V = regV imperfective first "пада" "ю" "падал" "падай" "падать" ;
fight_V2 = dirV2 (regV imperfective firstE "дер" "у" "драл" "дери" "драть" ) ;
float_V = mkRegVerb imperfective firstE "плыв" "у" "плыл" "плыви" "плыть" ;
flow_V = mkRegVerb imperfective firstE "тек" "у" "тёк" "теки" "течь" ;
fly_V = mkRegVerb imperfective second "лета" "ю" "летал" "летай" "летать" ;
freeze_V = mkRegVerb imperfective first "замерза" "ю" "замерзал" "замерзай" "замерзать" ;
float_V = regV imperfective firstE "плыв" "у" "плыл" "плыви" "плыть" ;
flow_V = regV imperfective firstE "тек" "у" "тёк" "теки" "течь" ;
fly_V = regV imperfective second "лета" "ю" "летал" "летай" "летать" ;
freeze_V = regV imperfective first "замерза" "ю" "замерзал" "замерзай" "замерзать" ;
give_V3 = tvDirDir (regV 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 "убива" "ю" "убивал" "убивай" "убивать" ) ;
hit_V2 = dirV2 (regV imperfective first "ударя" "ю" "ударял" "ударяй" "ударять" );
hold_V2 = dirV2 (regV imperfective second "держ" "у" "держал" "держи" "держать" );
hunt_V2 = dirV2 (regV imperfective second "охоч" "у" "охотил" "охоть" "охотить" ) ;
kill_V2 = dirV2 (regV imperfective first "убива" "ю" "убивал" "убивай" "убивать" ) ;
laugh_V = regV imperfective firstE "сме" "ю" "смеял" "смей" "смеять" ;
lie_V = mkRegVerb imperfective firstE "лг" "у" "лгал" "лги" "лгать" ;
lie_V = regV imperfective firstE "лг" "у" "лгал" "лги" "лгать" ;
play_V = regV imperfective first "игра" "ю" "играл" "играй" "играть" ;
pull_V2 = tvDir (mkRegVerb imperfective first "тян" "у" "тянул" "тяни" "тянуть" ) ;
push_V2 = tvDir (mkRegVerb imperfective first "толка" "ю" "толкал" "толкай" "толкать" );
pull_V2 = dirV2 (regV imperfective first "тян" "у" "тянул" "тяни" "тянуть" ) ;
push_V2 = dirV2 (regV imperfective first "толка" "ю" "толкал" "толкай" "толкать" );
rub_V2 = dirV2 (regV 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 "дума" "ю" "думал" "думай" "думать" ;
scratch_V2 = dirV2 (regV imperfective first "чеш" "у" "чесал" "чеши" "чесать" ) ;
sew_V = regV imperfective firstE "шь" "ю" "шил" "шей" "шить" ;
sing_V = regV imperfective firstE "по" "ю" "пел" "пой" "петь" ;
sit_V = mkVerbum imperfective "сижу" "сидишь" "сидит" "сидим" "сидите" "сидят" "сидел" "сиди" "сидеть" ;
smell_V = regV imperfective first "пахн" "у" "пахнул" "пахни" "пахнуть" ;
spit_V = regV imperfective firstE "плю" "ю" "плевал" "плюй" "плевать" ;
split_V2 = dirV2 (regV imperfective first "разбива" "ю" "разбивал" "разбей" "разбивать" ) ;
squeeze_V2 = dirV2 (regV imperfective first "сжима" "ю" "сжимал" "сжимай" "сжимать" ) ;
stab_V2 = dirV2 (regV imperfective first "кол" "ю" "колол" "коли" "колоть" ) ;
stand_V = regV imperfective second "сто" "ю" "стоял" "стой" "стоять" ;
suck_V2 = dirV2 (regV imperfective firstE "сос" "у" "сосал" "соси" "сосать") ;
swell_V = regV imperfective first "опуха" "ю" "опухал" "опухай" "опухать" ;
swim_V = regV imperfective first "плава" "ю" "плавал" "плавай" "плавать" ;
think_V = regV imperfective first "дума" "ю" "думал" "думай" "думать" ;
throw_V2 = dirV2 (regV imperfective first "броса" "ю" "бросал" "бросай" "бросать" ) ;
tie_V2 = dirV2 (regV imperfective first "вяж" "у" "вязал" "вяжи" "вязать") ;
turn_V = regV imperfective first "поворачива" "ю" "поворачивал" "поворачивай" "поворачивать" ;
@@ -394,7 +394,7 @@ wonder_VQ = mkRegVerb imperfective first "интересу" "ю" "интерес
near_A = AMalenkij "близк" "ближе";
right_Ord = (uy_j_EndDecl "прав") ** {lock_A = <>} ;
rotten_A = AMolodoj "гнил" "гнилее";
round_A = AStaruyj "кругл" "круглее";
round_A = AStaruyj "кругл" "круглее";
sharp_A = AStaruyj "остр" "острее";
smooth_A = AMalenkij "гладк" "глаже";
straight_A = AMolodoj "прям" "прямее";

View File

@@ -90,6 +90,11 @@ oper
-- мужчина, мужчины, мужчине, мужчину, мужчиной, мужчине
-- мужчины, мужчин, мужчинам, мужчин, мужчинами, мужчинах
-- The regular function captures the variants for some popular nouns
-- endings below:
regN : Str -> N ;
-- Here are some common patterns. The list is far from complete.
@@ -169,6 +174,11 @@ nPepel : Str -> N ; -- masculine, inanimate, ending with "-ел"- "пеп-л
-- mkA : ( : Str) -> A ;
-- The regular function captures the variants for some popular adjective
-- endings below:
regA : Str -> Str -> A ;
-- Invariable adjective is a special case.
adjInvar : Str -> A ; -- khaki, mini, hindi, netto
@@ -260,9 +270,9 @@ perfective: Aspect ;
-- first person from with second person form:
-- "я люб-лю", "ты люб-ишь". Stems shoud be the same.
-- So the definition for verb "любить" looks like:
-- mkRegVerb Imperfective Second "люб" "лю" "любил" "люби" "любить";
-- regV Imperfective Second "люб" "лю" "любил" "люби" "любить";
mkRegVerb :Aspect -> Conjugation -> (_,_,_,_,_ : Str) -> V ;
regV :Aspect -> Conjugation -> (_,_,_,_,_ : Str) -> V ;
-- For writing an application grammar one usualy doesn't need
-- the whole inflection table, since each verb is used in
@@ -278,9 +288,9 @@ perfective: Aspect ;
-- Two-place verbs, and the special case with direct object. Notice that
-- a particle can be included in a $V$.
mkTV : V -> Str -> Case -> V2 ; -- "войти в дом"; "в", accusative
mkV2 : V -> Str -> Case -> V2 ; -- "войти в дом"; "в", accusative
mkV3 : V -> Str -> Str -> Case -> Case -> V3 ; -- "сложить письмо в конверт"
tvDir : V -> V2 ; -- "видеть", "любить"
dirV2 : V -> V2 ; -- "видеть", "любить"
tvDirDir : V -> V3 ;
-- The definitions should not bother the user of the API. So they are
@@ -358,6 +368,32 @@ dolzhen = Dolzhen;
anim = anim
} ** {lock_N = <>} ;
regN = \ray ->
let
ra = Predef.tk 1 ray ;
y = Predef.dp 1 ray ;
r = Predef.tk 2 ray ;
ay = Predef.dp 2 ray ;
rays =
case y of {
"а" => nMashina ray ;
"ь" => nBol ray ;
"я" => case ay of {
"ия" => nMalyariya ray;
_ => nTetya ray };
"е" => case ay of {
"ее" => nObezbolivauchee ray ;
"ое" => nZhivotnoe ray ;
_ => nProizvedenie ray };
"о" => nChislo ray;
_=> nStomatolog ray
}
in
rays ;
nMashina = \s -> aEndInAnimateDecl s ** {lock_N = <>};
nEdinica = \s -> ej_aEndInAnimateDecl s ** {lock_N = <>};
nZhenchina = \s -> (aEndAnimateDecl s) ** { g = Fem ; anim = Animate } ** {lock_N = <>};
@@ -392,7 +428,7 @@ dolzhen = Dolzhen;
-- An individual-valued function is a common noun together with the
-- preposition prefixed to its argument ("клÑZÑ+ оÑ' дома").
-- preposition prefixed to its argument ("клZ+ о' дома").
-- The situation is analogous to two-place adjectives and transitive verbs.
--
-- We allow the genitive construction to be used as a variant of
@@ -421,6 +457,18 @@ dolzhen = Dolzhen;
mkNP = \x,y,z -> UsePN (mkPN x y z) ;
-- Adjective definitions
regA = \ray, comp ->
let
ay = Predef.dp 2 ray ;
rays =
case ay of {
"ый" => AStaruyj ray comp;
"ой" => AMolodoj ray comp;
"ий" => AMalenkij ray comp;
_=> AKhoroshij ray comp
}
in
rays ;
adjInvar = \s -> { s = \\_,_ => s } ** {lock_A= <>};
@@ -462,7 +510,7 @@ dolzhen = Dolzhen;
PRF APl P3 => plP3
};
mkRegVerb a b c d e f g = verbDecl a b c d e f g ** {lock_V = <>} ;
regV a b c d e f g = verbDecl a b c d e f g ** {lock_V = <>} ;
-- defined in morpho.RusU.gf
{-
mkV a b = extVerb a b ** {lock_V = <>}; -- defined in types.RusU.gf
@@ -475,8 +523,8 @@ dolzhen = Dolzhen;
VSubj gn => aller.s ! VFORM vox (VSUB gn)
}; t = Present ; a = aller.asp ; w = vox ; lock_V = <>} ;
-}
mkTV v p cas = v ** {s2 = p ; c = cas; lock_V2 = <>};
tvDir v = mkTV v [] Acc;
mkV2 v p cas = v ** {s2 = p ; c = cas; lock_V2 = <>};
dirV2 v = mkV2 v [] Acc;
tvDirDir v = mkV3 v "" "" Acc Dat;

View File

@@ -57,7 +57,7 @@ concrete SentenceRus of Sentence = CatRus ** open Prelude, ResRus in {
SlashPrep cl p = {s=cl.s; s2=p.s; c=p.c} ;
ImpVP inf = {s = \\pol, g,n =>
let
let
dont = case pol of {
Neg => "не" ;
_ => []