Many additions; more numerals; tests;

This commit is contained in:
Roman Suzi
2020-08-26 18:10:35 +03:00
parent 0e363f02dd
commit f7f784aeb1
16 changed files with 481 additions and 93 deletions

View File

@@ -16,6 +16,101 @@ oper
anybody = pronFormsPronoun ((doKPron "нек" (Ag (GSg Masc) P3) Animate) ** {nPrefix=False}) ;
such = adjFormsAdjective (makeAdjectiveForms "такой" "" "3b" PreferFull) ;
poltora : DetTable
= \\g, anim, cas =>
case <cas, g> of {
<(Nom|VocRus|Acc), Fem> => "полторы" ;
<(Nom|VocRus|Acc), _> => "полтора" ;
_ => "полутора"
} ;
poltorasta : DetTable
= \\g, anim, cas =>
case cas of {
(Nom|VocRus|Acc) => "полтораста" ;
_ => "полутораста"
} ;
-- collective numerals
oba : DetTable
= \\g, anim, cas => case g of {
Fem => case <cas, anim> of {
<Acc, Animate> => "обеих" ;
<Nom|Acc|VocRus, _> => "обе" ;
<Gen|Ptv|Loc|Pre, _> => "обеих" ;
<Dat, _> => "обеим" ;
<Ins, _> => "обеими"
} ;
_ => case <cas, anim> of {
<Acc, Animate> => "обоих" ;
<Nom|Acc|VocRus, _> => "оба" ;
<Gen|Ptv|Loc|Pre, _> => "обоих" ;
<Dat, _> => "обоим" ;
<Ins, _> => "обоими"
}
} ;
colnum2_3 : Str -> DetTable
= \word ->
let stem = Predef.tk 1 word in
\\g, anim, cas => case <cas, anim> of {
<Acc, Animate> => stem + "их" ;
<Nom|Acc|VocRus, _> => word ;
<Gen|Ptv|Loc|Pre, _> => stem + "их" ;
<Dat, _> => stem + "им" ;
<Ins, _> => stem + "ими"
} ;
colnum4_10 : Str -> DetTable
= \word ->
let stem = Predef.tk 1 word in
\\g, anim, cas => case <cas, anim> of {
<Acc, Animate> => stem + "ых" ;
<Acc, Inanimate> => word ;
<Nom|VocRus, _> => word ;
<Gen|Ptv|Loc|Pre, _> => stem + "ых" ;
<Dat, _> => stem + "ым" ;
<Ins, _> => stem + "ыми"
} ;
dvoe : DetTable
= colnum2_3 "двое" ;
troe : DetTable
= colnum2_3 "трое" ;
chetvero : DetTable
= colnum4_10 "четверо" ;
pjatero : DetTable
= colnum4_10 "пятеро" ;
shestero : DetTable
= colnum4_10 "шестеро" ;
semero : DetTable
= colnum4_10 "семеро" ;
vosqmero : DetTable
= colnum4_10 "восьмеро" ;
devjatero : DetTable
= colnum4_10 "девятеро" ;
desjatero : DetTable
= colnum4_10 "десятеро" ;
stolqko : DetTable
= colnum2_3 "столько" ;
skolqko : DetTable
= colnum2_3 "сколько" ;
neskolqko : DetTable
= colnum2_3 "несколько" ;
-- Situations, when prepositions are modified (approximate, full rules may be much more complex)
sconsonant : pattern Str = #(("с"|"з"|"ж"|"ш"|"С"|"З"|"Ж"|"Ш") +
("б"|"в"|"г"|"д"|"ж"|"з"|"й"|"к"|"л"|"м"|"н"|"п"|"р"|"с"|"т"|"ф"|"х"|"ц"|"ч"|"ш"|"щ" |