forked from GitHub/gf-core
russin: noun declesion 10: small animals
This commit is contained in:
@@ -57,7 +57,6 @@ lin
|
||||
ceiling_N = mkN "потолок" ; -- vowel change
|
||||
chair_N = mkN "стул" ; -- irregular
|
||||
cheese_N = mkN "сыр" ;
|
||||
--- child2_N = nRebenok "реб" ; -- Achtung: Hier 'child' im Sinne von "junge Lebewesen" (dann keine Suppletivformen(?))!
|
||||
child_N = mkN "ребёнок" "ребёнка" "ребёнку" "ребёнка" "ребёнком" "ребёнке" "ребёнке" "дети" "детей" "детям" "детей" "детьми" "детях" masculine animate ;
|
||||
church_N = mkN "церковь" "церкви" "церкви" "церковь" "церковью" "церкви" "церкви" "церкви" "церквей" "церквям" "церкви" "церквями" "церквях" masculine inanimate ;
|
||||
city_N = mkN "город" ;
|
||||
|
||||
@@ -558,6 +558,24 @@ Paradigms:
|
||||
SF Pl (Prepos _) => stem+"менах" };
|
||||
g = Fem; anim = Inanimate };
|
||||
|
||||
-- 10. Masc in -oнoк
|
||||
oper nDecl10Hard : Str -> CommNoun = \stem ->
|
||||
nAnimate (nSplitSgPl (nRegHardMasc (stem+"онок")) -- FIXME: vowel change in sg
|
||||
(nRegHardNeut (stem+"ат"))) ;
|
||||
|
||||
-- 10. Masc in -ёнoк
|
||||
oper nDecl10Soft : Str -> CommNoun = \stem ->
|
||||
nAnimate (nSplitSgPl (nRegHardMasc (stem+"ёнок")) -- FIXME: vowel change in sg
|
||||
(nRegHardNeut (stem+"ят"))) ;
|
||||
|
||||
oper nSplitSgPl : CommNoun -> CommNoun -> CommNoun = \x, y ->
|
||||
{s = table {
|
||||
SF Sg c => x.s!(SF Sg c) ;
|
||||
SF Pl c => y.s!(SF Pl c)
|
||||
} ;
|
||||
g = x.g ; anim = y.anim
|
||||
} ;
|
||||
|
||||
-- Nouns inflected as adjectives.
|
||||
oper nAdj : Adjective -> Gender ->CommNoun= \a,g ->
|
||||
{ s = table {
|
||||
@@ -565,6 +583,18 @@ Paradigms:
|
||||
SF Pl c => a.s!AF c Inanimate APl };
|
||||
g = g; anim = Inanimate } ;
|
||||
|
||||
-- Makes a noun animate.
|
||||
oper nAnimate : CommNoun -> CommNoun = \n ->
|
||||
{ s = table {
|
||||
SF Sg Acc => case n.g of {
|
||||
Masc => n.s!(SF Sg Gen);
|
||||
_ => n.s!(SF Sg Acc)
|
||||
};
|
||||
SF Pl Acc => n.s!(SF Pl Gen);
|
||||
sf => n.s!sf } ;
|
||||
g = n.g ;
|
||||
anim = Animate
|
||||
} ;
|
||||
|
||||
oper
|
||||
CommNoun = {s : SubstForm => Str ; g : Gender ; anim : Animacy } ;
|
||||
@@ -624,27 +654,6 @@ oper irregPl_StemInAnimateDecl: Str -> CommNoun = \derev ->
|
||||
g = Masc ; anim = Inanimate
|
||||
} ;
|
||||
|
||||
|
||||
|
||||
oper LittleAnimalDecl: Str -> CommNoun = \reb ->
|
||||
{s = table
|
||||
{ SF Sg Nom => reb+"ёноk" ;
|
||||
SF Sg Gen => reb+"ёнkа" ;
|
||||
SF Sg Dat => reb+"ёнkу" ;
|
||||
SF Sg Acc => reb+"ёнkа" ;
|
||||
SF Sg Inst => reb+"ёнkом" ;
|
||||
SF Sg (Prepos _) => reb+"ёнkе" ;
|
||||
SF Pl Nom => reb+"ята" ;
|
||||
SF Pl Gen => reb+"ят" ;
|
||||
SF Pl Dat => reb+"ятам" ;
|
||||
SF Pl Acc => reb+"ят" ;
|
||||
SF Pl Inst => reb+"ятами" ;
|
||||
SF Pl (Prepos _) => reb+"ятах"
|
||||
} ;
|
||||
g = Masc ; anim = Animate
|
||||
} ;
|
||||
|
||||
|
||||
oper kg_oEnd_SgDecl: Str -> CommNoun = \mnog ->
|
||||
{ s = table {
|
||||
SF _ Nom => mnog+"о" ;
|
||||
|
||||
@@ -274,7 +274,7 @@ foreign = Foreign; -- +++ MG_UR: added +++
|
||||
|
||||
mkN = overload {
|
||||
mkN : (karta : Str) -> N = mk1N ;
|
||||
mkN : (tigr : Str) -> Animacy -> N = \nom, anim -> case anim of { Animate => animateN (mk1N nom) ;
|
||||
mkN : (tigr : Str) -> Animacy -> N = \nom, anim -> case anim of { Animate => nAnimate (mk1N nom) ;
|
||||
Inanimate => mk1N nom } ;
|
||||
mkN : (nomSg, genSg, datSg, accSg, instSg, preposSg, prepos2Sg,
|
||||
nomPl, genPl, datPl, accPl, instPl, preposPl : Str) -> Gender -> Animacy -> N = mkWorstN
|
||||
@@ -311,23 +311,10 @@ foreign = Foreign; -- +++ MG_UR: added +++
|
||||
anim = anim
|
||||
} ** {lock_N = <>} ;
|
||||
|
||||
-- Makes a noun animate.
|
||||
oper animateN : N -> N = \n ->
|
||||
{
|
||||
s = table {
|
||||
SF Sg Acc => case n.g of {
|
||||
Masc => n.s!(SF Sg Gen);
|
||||
_ => n.s!(SF Sg Acc)
|
||||
};
|
||||
SF Pl Acc => n.s!(SF Pl Gen);
|
||||
sf => n.s!sf } ;
|
||||
g = n.g ;
|
||||
anim = Animate
|
||||
} ** {lock_N = <>};
|
||||
|
||||
oper mk1N : Str -> N = \x ->
|
||||
case x of {
|
||||
-- stem+"oнoк" => nDecl10 stem ;
|
||||
stem+"онок" => nDecl10Hard stem ;
|
||||
stem+"ёнок" => nDecl10Soft stem ;
|
||||
-- stem+"aнин" => nDecl11 stem ;
|
||||
stem@(_+"и")+"й" => nDecl7Masc stem;
|
||||
stem@(_+"и")+"я" => nDecl7Fem stem;
|
||||
|
||||
Reference in New Issue
Block a user