diff --git a/src/german/CatGer.gf b/src/german/CatGer.gf index d76d60d8f..6b5c20cf0 100644 --- a/src/german/CatGer.gf +++ b/src/german/CatGer.gf @@ -100,7 +100,7 @@ concrete CatGer of Cat = N = ResGer.Noun ; N2 = ResGer.Noun ** {c2 : Preposition} ; N3 = ResGer.Noun ** {c2,c3 : Preposition} ; - PN = {s : Case => Str; g : Gender} ; + PN = {s : Case => Str; g : Gender; n : Number} ; -- tense with possibility to choose conjunctive forms diff --git a/src/german/NounGer.gf b/src/german/NounGer.gf index 8bae4da5d..848fd6de9 100644 --- a/src/german/NounGer.gf +++ b/src/german/NounGer.gf @@ -28,7 +28,7 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in { UsePN pn = { s = \\c => usePrepC c (\k -> pn.s ! k) ; - a = agrgP3 pn.g Sg ; + a = agrgP3 pn.g pn.n ; -- isLight = True ; -- means: this is not a heavy NP, but comes before negation -- isPron = False ; -- HL 6/2019: to regulate Pron/NonPronNP order w = WLight ; diff --git a/src/german/ParadigmsGer.gf b/src/german/ParadigmsGer.gf index bb0c5f814..c9c47bf5d 100644 --- a/src/german/ParadigmsGer.gf +++ b/src/german/ParadigmsGer.gf @@ -127,6 +127,7 @@ mkN : overload { mkPN : overload { mkPN : Str -> PN ; -- regular name with genitive in "s", masculine + mkPN : Str -> Number -> PN ; -- regular name with genitive in "s", masculine mkPN : Str -> Gender -> PN ; -- regular name with genitive in "s" -- If only the genitive differs, two strings are needed. @@ -464,18 +465,19 @@ mkV2 : overload { mkN3 = \n,p,q -> n ** {c2 = p ; c3 = q ; lock_N3 = <>} ; mk2PN = \karolus, karoli, g -> - {s = table {Gen => karoli ; _ => karolus} ; g = g ; lock_PN = <>} ; + {s = table {Gen => karoli ; _ => karolus} ; g = g ; n = Sg ; lock_PN = <>} ; regPN = \horst, g -> mk2PN horst (ifTok Tok (Predef.dp 1 horst) "s" horst (horst + "s")) g ; mkPN = overload { mkPN : Str -> PN = \s -> regPN s Masc ; + mkPN : Str -> Number -> PN = \s,n -> regPN s Masc ** {n=n} ; mkPN : Str -> Gender -> PN = regPN ; - mkPN : N -> PN = \n -> lin PN {s = n.s ! Sg; g = n.g} ; + mkPN : N -> PN = \n -> lin PN {s = n.s ! Sg; g = n.g; n = Sg} ; mkPN : (nom,gen : Str) -> Gender -> PN = mk2PN ; mkPN : (nom,acc,dat,gen : Str) -> Gender -> PN = \nom,acc,dat,gen,g -> {s = table {Nom => nom ; Acc => acc ; Dat => dat ; Gen => gen} ; - g = g ; lock_PN = <>} + g = g ; n = Sg ; lock_PN = <>} } ; mk2PN : (karolus, karoli : Str) -> Gender -> PN ; -- karolus, karoli diff --git a/src/german/SymbolGer.gf b/src/german/SymbolGer.gf index 190e8e9ae..47f88fc0d 100644 --- a/src/german/SymbolGer.gf +++ b/src/german/SymbolGer.gf @@ -3,10 +3,10 @@ concrete SymbolGer of Symbol = CatGer ** open Prelude, ResGer in { lin - SymbPN i = {s = \\c => i.s ; g = Neutr} ; --- c - IntPN i = {s = \\c => i.s ; g = Neutr} ; --- c - FloatPN i = {s = \\c => i.s ; g = Neutr} ; --- c - NumPN i = {s = i.s ! Neutr ; g = Neutr} ; --- c + SymbPN i = {s = \\c => i.s ; g = Neutr ; n = Sg} ; --- c + IntPN i = {s = \\c => i.s ; g = Neutr ; n = Sg} ; --- c + FloatPN i = {s = \\c => i.s ; g = Neutr ; n = Sg} ; --- c + NumPN i = {s = i.s ! Neutr ; g = Neutr ; n = Sg} ; --- c CNIntNP cn i = { s = \\c => cn.s ! Weak ! Sg ! Nom ++ i.s ;