This commit is contained in:
janna
2005-11-25 20:02:53 +00:00
parent 08d75593c3
commit 0b3d28f6d9
9 changed files with 683 additions and 56 deletions

View File

@@ -250,6 +250,20 @@ oper pronOni: Pronoun =
p = P3 ;
pron = True
} ;
oper pronKto: Pronoun =
{ s = table {
PF Nom _ _ => "кто" ;
PF Gen _ _ => "кого" ;
PF Dat _ _ => "кому" ;
PF Acc _ _ => "кого" ;
PF Inst _ _ => "кем" ;
PF Prepos _ _ => "ком"
} ;
g = PGen Masc;
n = Sg ;
p = P3 ;
pron = False
} ;
oper pronKtoTo: Pronoun =
{ s = table {
@@ -278,6 +292,20 @@ oper pronChtoTo: Pronoun =
n = Sg ;
p = P3 ;
pron = False
} ;
oper pronChto: Pronoun =
{ s = table {
PF Nom _ _ => "что" ;
PF Gen _ _ => "чего" ;
PF Dat _ _ => "чему" ;
PF Acc _ _ => "что" ;
PF Inst _ _ => "чем" ;
PF Prepos _ _ => "чём"
} ;
g = PGen Masc;
n = Sg ;
p = P3 ;
pron = False
} ;
oper pronNikto: Pronoun =
{ s = table {
@@ -302,7 +330,7 @@ oper pronNichto: Pronoun =
PF Acc _ _ => "ничего" ;
PF Inst _ _ => "ничем" ;
PF Prepos _ _ => ["ни о чём"] -- only together with preposition
} ;
} ;
g = PGen Masc;
n = Sg ;
@@ -341,7 +369,9 @@ oper grud : CommNoun = softSignEndDeclFem "груд" ;
oper zhivot : CommNoun = nullEndInAnimateDecl1 "живот" ;
oper grud : CommNoun = softSignEndDeclFem "груд" ;
oper ruka : CommNoun = aEndG_K_KH_Decl "рук" ;
oper stopa : CommNoun = aEndInAnimateDecl "стоп" ;
oper spina : CommNoun = aEndInAnimateDecl "спин" ;
oper stopa : CommNoun = aEndInAnimateDecl "стоп" ;
oper sreda : CommNoun = aEndInAnimateDecl "сред" ;
oper pyatnica : CommNoun = aEndInAnimateDecl "пятниц" ;
oper subbota : CommNoun = aEndInAnimateDecl "суббот" ;
oper astma : CommNoun = aEndInAnimateDecl "астм" ;
@@ -358,6 +388,11 @@ oper antidepressant : CommNoun = nullEndInAnimateDecl1 "антидепресса
oper viagra : CommNoun = aEndInAnimateDecl "виагр" ;
oper antidepressant : CommNoun = nullEndInAnimateDecl1 "антидепрессант" ;
oper insulin : CommNoun = nullEndInAnimateDecl1 "инсулин" ;
oper vitamin : CommNoun = nullEndInAnimateDecl1 "витамин" ;
oper antibiotik : CommNoun = nullEndInAnimateDecl3 "антибиотик" ;
oper ponedelnik : CommNoun = nullEndInAnimateDecl3 "понедельник" ;
oper vtornik : CommNoun = nullEndInAnimateDecl3 "вторник" ;
oper chetverg : CommNoun = nullEndInAnimateDecl3 "четверг" ;
oper kaplya : CommNoun = (l_yaEndInAnimateDecl "кап") ** {g = Fem; anim = Inanimate} ;
@@ -395,6 +430,23 @@ oper aEndAnimateDecl: Str -> SubstFormDecl = \muzhchin ->
SF Pl Acc => muzhchin ;
SF Pl Inst => muzhchin+"ами" ;
SF Pl Prepos => muzhchin+"ах" }
} ;
oper stomatolog : CommNoun = nullEndAnimateDecl "стоматолог" ;
oper nullEndInAnimateDecl: Str -> CommNoun = \stomatolog ->
{s = table
{ SF Sg Nom => stomatolog ;
SF Sg Gen => stomatolog+"а" ;
SF Sg Dat => stomatolog+"у" ;
SF Sg Acc => stomatolog +"а" ;
SF Sg Inst => stomatolog+"ом" ;
SF Sg Prepos => stomatolog+"е" ;
SF Pl Nom => stomatolog+"и" ;
SF Pl Gen => stomatolog+"ов" ;
SF Pl Dat => stomatolog+"ам" ;
SF Pl Acc => stomatolog+"ов" ;
SF Pl Inst => stomatolog+"ами" ;
SF Pl Prepos => stomatolog+"ах" } ;
g = Masc ; anim = Inanimate
} ;
@@ -454,6 +506,43 @@ oper nullEndInAnimateDecl1: Str -> CommNoun = \gripp ->
SF Pl Gen => gripp+"ов" ;
SF Pl Dat => gripp+"ам" ;
SF Pl Acc => gripp +"ы";
SF Pl Inst => gripp+"ами" ;
SF Pl Prepos => gripp+"ах"
} ;
g = Masc ; anim = Inanimate
} ;
oper nullEndInAnimateDeclStul: Str -> CommNoun = \brat ->
{s = table
{ SF Sg Nom => brat ;
SF Sg Gen => brat+"а" ;
SF Sg Dat => brat+"у" ;
SF Sg Acc => brat +"а";
SF Sg Inst => brat+"ом" ;
SF Sg Prepos => brat+"е" ;
SF Pl Nom => brat+"ья" ;
SF Pl Gen => brat+"ьев" ;
SF Pl Dat => brat+"ьям" ;
SF Pl Acc => brat +"ьев";
SF Pl Inst => brat+"ьями" ;
SF Pl Prepos => brat+"ьяах"
} ;
g = Masc ; anim = Inanimate
} ;
oper nullEndAnimateDeclBrat: Str -> CommNoun = \brat ->
{s = table
{ SF Sg Nom => brat ;
SF Sg Gen => brat+"а" ;
SF Sg Dat => brat+"у" ;
SF Sg Acc => brat +"а";
SF Sg Inst => brat+"ом" ;
SF Sg Prepos => brat+"е" ;
SF Pl Nom => brat+"ья" ;
SF Pl Gen => brat+"ьев" ;
SF Pl Dat => brat+"ьям" ;
SF Pl Acc => brat +"ьев";
SF Pl Inst => brat+"ьями" ;
SF Pl Prepos => brat+"ьяах"
@@ -531,7 +620,24 @@ oper oeEndInAnimateDecl: Str -> CommNoun = \snotvorn ->
oper oeEndInAnimateDecl: Str -> CommNoun = \snotvorn ->
{ s = table
SF Sg Inst => snotvorn+"ым" ;
{ SF Sg Nom => snotvorn +"ое";
SF Sg Gen => snotvorn+"ого" ;
SF Sg Dat => snotvorn+"ому" ;
SF Sg Acc => snotvorn +"ое";
SF Sg Inst => snotvorn+"ым" ;
SF Sg Prepos => snotvorn+"ом" ;
SF Pl Nom => snotvorn+"ые" ;
SF Pl Gen => snotvorn+"ых" ;
SF Pl Dat => snotvorn+"ым" ;
SF Pl Acc => snotvorn+"ые" ;
SF Pl Inst => snotvorn+"ыми" ;
SF Pl Prepos => snotvorn+"ых"
} ;
g = Neut ; anim = Inanimate
} ;
oper voskresenje : CommNoun = soft_eEndInAnimateDecl "воскресен" ;
oper soft_eEndInAnimateDecl: Str -> CommNoun = \proizvedeni ->
{ s = table
{ SF Sg Nom => proizvedeni +"ье";
SF Sg Gen => proizvedeni+"ья" ;
SF Sg Dat => proizvedeni+"ью" ;
@@ -608,8 +714,19 @@ oper oEnd_KH_InAnimateDecl: Str -> CommNoun = \u ->
} ;
g = Neut ; anim = Inanimate
} ;
SF Sg Dat => u+"ху" ;
oper oEnd_KH_InAnimateDecl: Str -> CommNoun = \u ->
{ s = table
{ SF Sg Nom => u+"хо" ;
SF Sg Gen => u+"ха" ;
SF Sg Dat => u+"ху" ;
SF Sg Acc => u+"хо" ;
SF Sg Inst => u+"хом" ;
SF Sg Prepos => u+"хе" ;
SF Pl Nom => u+"ши" ;
SF Pl Gen => u +"шей";
SF Pl Dat => u+"шам" ;
SF Pl Acc => u+"ши" ;
SF Pl Inst => u+"шами" ;
SF Pl Prepos => u+"шах"
@@ -666,6 +783,42 @@ oper softSignEndDeclMasc: Str -> CommNoun = \nol ->
SF Sg Inst => bol+"ью" ;
SF Sg Prepos => bol+"и" ;
SF Pl Nom => bol+"и" ;
SF Pl Gen => bol+"ей" ;
SF Pl Dat => bol+"ям" ;
SF Pl Acc => bol+"и" ;
SF Pl Inst => bol+"ями" ;
SF Pl Prepos => bol+"ях"
} ;
g = Fem ; anim = Inanimate
} ;
oper softSignEndDeclMasc: Str -> CommNoun = \nol ->
{s = table
{ SF Sg Nom => nol+"ь" ;
SF Sg Gen => nol+"я" ;
SF Sg Dat => nol+"ю" ;
SF Sg Acc => nol+"ь" ;
SF Sg Inst => nol+"ем" ;
SF Sg Prepos => nol+"е" ;
SF Pl Nom => nol+"и" ;
SF Pl Gen => nol+"ей" ;
SF Pl Dat => nol+"ям" ;
SF Pl Acc => nol+"и" ;
SF Pl Inst => nol+"ями" ;
SF Pl Prepos => nol+"ях"
} ;
g = Masc ; anim = Inanimate
} ;
oper okEndDeclMasc: Str -> CommNoun = \potol ->
{s = table
{ SF Sg Nom => potol+"ок" ;
SF Sg Gen => potol+"ка" ;
SF Sg Dat => potol+"ку" ;
SF Sg Acc => potol+"ок" ;
SF Sg Inst => potol+"ком" ;
SF Sg Prepos => potol+"ке" ;
SF Pl Nom => potol+"ки" ;
SF Pl Gen => potol+"ков" ;
SF Pl Dat => potol+"кам" ;
SF Pl Acc => potol+"ки" ;
SF Pl Inst => potol+"ками" ;
@@ -857,6 +1010,25 @@ oper eEnd_Decl: Str -> CommNoun = \vs ->
SF _ Dat => menshinstv+"ам" ;
SF _ Acc => menshinstv+"ва" ;
SF _ Inst => menshinstv+"ами" ;
SF _ Prepos => menshinstv+"вах"
} ;
g = Neut ; anim = Inanimate
} ;
oper oEnd_SgDecl: Str -> CommNoun = \bolshinstv ->
{ s = table {
SF _ Nom => bolshinstv+"о" ;
SF _ Gen => bolshinstv+"а" ;
SF _ Dat => bolshinstv+"у" ;
SF _ Acc => bolshinstv+"о" ;
SF _ Inst => bolshinstv+"ом" ;
SF _ Prepos => bolshinstv+"е"
} ;
g = Neut ; anim = Inanimate
} ;
-- Note: Now we consider only the plural form of the pronoun "все" (all)
-- treated as an adjective (see AllDetPl definition).
-- The meaning "entire" is not considered, which allows us to form
-- the pronoun-adjective from the substantive form below:
oper eEnd_Decl: Str -> CommNoun = \vs ->
@@ -1021,6 +1193,8 @@ oper uy_j_EndDecl : Str -> Adjective = \s ->{s = table {
AF Gen _ (ASg Masc) => "всего";
AF Gen _ (ASg Fem) => "всей";
AF Gen _ (ASg Neut) => "всего";
AF Gen _ APl => "всех";
AF Inst _ (ASg Masc) => "всем";
AF Inst _ (ASg Fem) => "всей";
AF Inst _ (ASg Neut) => "всем";
AF Inst _ APl => "всеми";
@@ -1162,6 +1336,7 @@ param Conjugation = First | FirstE | Second | Mixed | Dolzhen;
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 Inst _ APl => s+"ыми";
@@ -1442,6 +1617,9 @@ oper
};
-- Generation the imperfective active pattern given
-- a number of basic conjugation forms.
oper
imperfectiveActivePattern : Str -> Str -> PresentVerb -> PastVerb -> AspectVoice =
\inf, imper, presentFuture, past -> { s= table {
VINF => inf ;
@@ -1475,6 +1653,13 @@ oper mille : Size => Str = table {
VIND (ASg Masc) VPast => past ! (PSF (ASg Masc)) ;
VIND (ASg Fem) VPast => past ! (PSF (ASg Fem) ) ;
VIND (ASg Neut) VPast => past ! (PSF (ASg Neut)) ;
VIND APl VPast => past ! (PSF APl)
} ;
asp = Imperfective
} ;
asp = Imperfective
oper perfectiveActivePattern: Str -> Str -> PresentVerb -> PastVerb -> AspectVoice =
\inf, imper, presentFuture, past -> { s= table {