1
0
forked from GitHub/gf-core

German Dict and Paradigms: added a case to mkN and removed bogus "e" plurals

This commit is contained in:
aarne
2014-05-05 20:36:44 +00:00
parent 284a61426e
commit 6cee0c1b59
2 changed files with 28664 additions and 28638 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -79,6 +79,8 @@ mkN : overload {
mkN : (Bild,Bilder : Str) -> Gender -> N ; -- sg and pl nom, and gender
mkN : (Frau : Str) -> Gender -> N ; -- masc: e, neutr: er, fem: en
-- Worst case: give all four singular forms, two plural forms (others + dative),
-- and the gender.
@@ -354,6 +356,29 @@ mkV2 : overload {
_ => mk6N hund hund hund (genitS (True | False) hund) (hund + "e") (pluralN hund) Masc
} ;
reg1N : (x1 : Str) -> Gender -> N = \hund,g ->
case <hund,g> of {
<_ + ("el"|"er"|"en"), Masc | Neutr> =>
let hunde = hund ; hunden = pluralN hunde in
mk6N hund hund hund (genitS (True | False) hund) hunde hunden g ;
<_ + "e", Masc> =>
let hunde = hund + "n" in
mk6N hund hunde hunde hunde hunde hunde g ;
<_, Masc> =>
let hunde = hund + "e" ; hunden = pluralN hunde in
variants {mk6N hund hund (dativE True hund) (genitS True hund) hunde hunden g ;
mk6N hund hund (dativE False hund) (genitS False hund) hunde hunden g} ;
<_, Neutr> =>
let hunde = hund + "er" ; hunden = pluralN hunde in
variants {mk6N hund hund (dativE True hund) (genitS True hund) hunde hunden g ;
mk6N hund hund (dativE False hund) (genitS False hund) hunde hunden g} ;
<_, Fem> =>
let hunde : Str = case hund of {_ + "e" => hund + "n" ; _ => hund + "en"} ;
hunden = hunde
in mk6N hund hund hund hund hunde hunden g ;
_ => {s = (regN hund).s ; g = g ; lock_N = <>}
} ;
reg2N : (x1,x2 : Str) -> Gender -> N = \hund,hunde,g ->
let hunden = pluralN hunde
in
@@ -568,6 +593,7 @@ mkV2 : overload {
mkN = overload {
mkN : Str -> N = regN ;
mkN : (x1 : Str) -> Gender -> N = reg1N ;
mkN : (x1,x2 : Str) -> Gender -> N = reg2N ;
mkN : (x1,_,_,_,_,x6 : Str) -> Gender -> N = mk6N ;
mkN : Str -> N -> N -- Auto + Fahrer -> Autofahrer