forked from GitHub/gf-rgl
fixed genitive es/en in German adjectives and determiners
This commit is contained in:
@@ -32,6 +32,10 @@ oper
|
|||||||
{s,sp : Gender => PCase => Str ; n : Number ; a : Adjf ; isDef : Bool} = \isDef,n,dies ->
|
{s,sp : Gender => PCase => Str ; n : Number ; a : Adjf ; isDef : Bool} = \isDef,n,dies ->
|
||||||
{s,sp = appAdj (regA dies) ! n ; n = n ; a = Weak ; isDef = isDef} ;
|
{s,sp = appAdj (regA dies) ! n ; n = n ; a = Weak ; isDef = isDef} ;
|
||||||
|
|
||||||
|
detUnlikeAdj : Bool -> Number -> Str ->
|
||||||
|
{s,sp : Gender => PCase => Str ; n : Number ; a : Adjf ; isDef : Bool} = \isDef,n,dies ->
|
||||||
|
{s,sp = appAdj (regDetA dies) ! n ; n = n ; a = Weak ; isDef = isDef} ;
|
||||||
|
|
||||||
mkOrd : {s : Degree => AForm => Str} -> {s : AForm => Str} = \a ->
|
mkOrd : {s : Degree => AForm => Str} -> {s : AForm => Str} = \a ->
|
||||||
{s = a.s ! Posit} ;
|
{s = a.s ! Posit} ;
|
||||||
|
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
|
|||||||
sp = table {
|
sp = table {
|
||||||
True => \\_,_,c => usePrepC c (\k -> []) ;
|
True => \\_,_,c => usePrepC c (\k -> []) ;
|
||||||
False => table {
|
False => table {
|
||||||
Sg => \\g,c => usePrepC c (\k -> (detLikeAdj False Sg "ein").s ! g ! NPC k) ;
|
Sg => \\g,c => usePrepC c (\k -> (detUnlikeAdj False Sg "ein").s ! g ! NPC k) ;
|
||||||
Pl => \\_,c => usePrepC c (\k -> caselist "einige" "einige" "einigen" "einiger" ! k)
|
Pl => \\_,c => usePrepC c (\k -> caselist "einige" "einige" "einigen" "einiger" ! k)
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -399,6 +399,17 @@ resource ResGer = ParamX ** open Prelude in {
|
|||||||
in
|
in
|
||||||
mkA blau blau (blau + "er") blauest ;
|
mkA blau blau (blau + "er") blauest ;
|
||||||
|
|
||||||
|
regDetA : Str -> Adjective = \blau ->
|
||||||
|
let
|
||||||
|
rblau = regA blau ;
|
||||||
|
dblau = adjFormsDet blau blau
|
||||||
|
in {
|
||||||
|
s = table {
|
||||||
|
Posit => dblau ;
|
||||||
|
d => rblau.s ! d
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
regV : Str -> Verb = \legen ->
|
regV : Str -> Verb = \legen ->
|
||||||
let
|
let
|
||||||
lege = init legen ;
|
lege = init legen ;
|
||||||
@@ -503,15 +514,24 @@ resource ResGer = ParamX ** open Prelude in {
|
|||||||
table {
|
table {
|
||||||
APred => teuer ;
|
APred => teuer ;
|
||||||
AMod (GSg Masc) c =>
|
AMod (GSg Masc) c =>
|
||||||
caselist (teur+"er") (teur+"en") (teur+"em") (teur+"es") ! c ;
|
caselist (teur+"er") (teur+"en") (teur+"em") (teur+"en") ! c ;
|
||||||
AMod (GSg Fem) c =>
|
AMod (GSg Fem) c =>
|
||||||
caselist (teur+"e") (teur+"e") (teur+"er") (teur+"er") ! c ;
|
caselist (teur+"e") (teur+"e") (teur+"er") (teur+"er") ! c ;
|
||||||
AMod (GSg Neut) c =>
|
AMod (GSg Neutr) c =>
|
||||||
caselist (teur+"es") (teur+"es") (teur+"em") (teur+"es") ! c ;
|
caselist (teur+"es") (teur+"es") (teur+"em") (teur+"en") ! c ;
|
||||||
AMod GPl c =>
|
AMod GPl c =>
|
||||||
caselist (teur+"e") (teur+"e") (teur+"en") (teur+"er") ! c
|
caselist (teur+"e") (teur+"e") (teur+"en") (teur+"er") ! c
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
-- for some determiners, Gen form -es rather than -en
|
||||||
|
adjFormsDet : (x1,x2 : Str) -> AForm => Str = \teuer,teur ->
|
||||||
|
let adj = adjForms teuer teur
|
||||||
|
in
|
||||||
|
table {
|
||||||
|
AMod (GSg Masc| GSg Neutr) Gen => teur + "es" ;
|
||||||
|
a => adj ! a
|
||||||
|
} ;
|
||||||
|
|
||||||
--------------------------------------------
|
--------------------------------------------
|
||||||
--VP CONSTRUCTION
|
--VP CONSTRUCTION
|
||||||
--------------------------------------------
|
--------------------------------------------
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
during_Prep = mkPrep "während" P.genitive | P.mkPrep P.accusative "über" ;
|
during_Prep = mkPrep "während" P.genitive | P.mkPrep P.accusative "über" ;
|
||||||
either7or_DConj = sd2 "entweder" "oder" ** {n = Sg} ;
|
either7or_DConj = sd2 "entweder" "oder" ** {n = Sg} ;
|
||||||
everybody_NP = nameNounPhrase {s = caselist "jeder" "jeden" "jedem" "jedes"} ;
|
everybody_NP = nameNounPhrase {s = caselist "jeder" "jeden" "jedem" "jedes"} ;
|
||||||
every_Det = detLikeAdj False Sg "jed" ;
|
every_Det = detUnlikeAdj False Sg "jed" ;
|
||||||
everything_NP = nameNounPhrase {s = caselist "alles" "alles" "allem" "alles"} ;
|
everything_NP = nameNounPhrase {s = caselist "alles" "alles" "allem" "alles"} ;
|
||||||
everywhere_Adv = ss "überall" ;
|
everywhere_Adv = ss "überall" ;
|
||||||
few_Det = detLikeAdj False Pl "wenig" ;
|
few_Det = detLikeAdj False Pl "wenig" ;
|
||||||
@@ -45,7 +45,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
here_Adv = ss "hier" ;
|
here_Adv = ss "hier" ;
|
||||||
how_IAdv = ss "wie" ;
|
how_IAdv = ss "wie" ;
|
||||||
how8much_IAdv = ss "wieviel" ;
|
how8much_IAdv = ss "wieviel" ;
|
||||||
how8many_IDet = {s = \\g,c => (detLikeAdj False Pl "wie viel").s ! g ! NPC c ; n = Pl} ;
|
how8many_IDet = {s = \\g,c => (detUnlikeAdj False Pl "wie viel").s ! g ! NPC c ; n = Pl} ;
|
||||||
if_Subj = ss "wenn" | ss "falls" ;
|
if_Subj = ss "wenn" | ss "falls" ;
|
||||||
in8front_Prep = mkPrep "vor" P.dative ;
|
in8front_Prep = mkPrep "vor" P.dative ;
|
||||||
i_Pron = mkPronPers "ich" "mich" "mir" "meiner" "mein" Masc Sg P1 ;
|
i_Pron = mkPronPers "ich" "mich" "mir" "meiner" "mein" Masc Sg P1 ;
|
||||||
@@ -88,7 +88,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
something_NP = nameNounPhrase {s = \\_ => "etwas"} ;
|
something_NP = nameNounPhrase {s = \\_ => "etwas"} ;
|
||||||
somewhere_Adv = ss "irgendwo" ;
|
somewhere_Adv = ss "irgendwo" ;
|
||||||
that_Quant = let
|
that_Quant = let
|
||||||
jener : Number => Gender => PCase => Str = \\n => (detLikeAdj True n "jen").s in
|
jener : Number => Gender => PCase => Str = \\n => (detUnlikeAdj True n "jen").s in
|
||||||
{s,sp = \\_ => jener ; a,aPl = Weak} ;
|
{s,sp = \\_ => jener ; a,aPl = Weak} ;
|
||||||
---b that_NP = nameNounPhrase {s = caselist "das" "das" "denem" "dessen"} ; ----
|
---b that_NP = nameNounPhrase {s = caselist "das" "das" "denem" "dessen"} ; ----
|
||||||
there_Adv = ss "da" | ss "dort" ;
|
there_Adv = ss "da" | ss "dort" ;
|
||||||
@@ -98,7 +98,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
---b these_NP = {s = caselist "diese" "diese" "diesen" "dieser" ; a = agrP3 Pl} ;
|
---b these_NP = {s = caselist "diese" "diese" "diesen" "dieser" ; a = agrP3 Pl} ;
|
||||||
they_Pron = mkPronPers "sie" "sie" "ihnen" "ihrer" "ihr" Fem Pl P3 ;
|
they_Pron = mkPronPers "sie" "sie" "ihnen" "ihrer" "ihr" Fem Pl P3 ;
|
||||||
this_Quant = let
|
this_Quant = let
|
||||||
dieser : Number => Gender => PCase => Str = \\n => (detLikeAdj True n "dies").s in
|
dieser : Number => Gender => PCase => Str = \\n => (detUnlikeAdj True n "dies").s in
|
||||||
{s,sp = \\_ => dieser ; a,aPl = Weak} ;
|
{s,sp = \\_ => dieser ; a,aPl = Weak} ;
|
||||||
---b this_NP = nameNounPhrase {s = caselist "dies" "dies" "diesem" "dieses"} ; ----
|
---b this_NP = nameNounPhrase {s = caselist "dies" "dies" "diesem" "dieses"} ; ----
|
||||||
---b those_NP = {s = caselist "jene" "jene" "jenen" "jener" ; a = agrP3 Pl} ;
|
---b those_NP = {s = caselist "jene" "jene" "jenen" "jener" ; a = agrP3 Pl} ;
|
||||||
@@ -121,7 +121,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
when_IAdv = ss "wann" ;
|
when_IAdv = ss "wann" ;
|
||||||
when_Subj = ss "wenn" ;
|
when_Subj = ss "wenn" ;
|
||||||
where_IAdv = ss "wo" ;
|
where_IAdv = ss "wo" ;
|
||||||
which_IQuant = {s = \\n,g,c => (detLikeAdj True n "welch").s ! g ! NPC c} ;
|
which_IQuant = {s = \\n,g,c => (detUnlikeAdj True n "welch").s ! g ! NPC c} ;
|
||||||
|
|
||||||
whoSg_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ;
|
whoSg_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ;
|
||||||
whoPl_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ; -- HL 6/2016
|
whoPl_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ; -- HL 6/2016
|
||||||
@@ -137,7 +137,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
no_Quant = let
|
no_Quant = let
|
||||||
keiner : Number => Gender => PCase => Str = table {
|
keiner : Number => Gender => PCase => Str = table {
|
||||||
Sg => \\g,c => usePrepC c (\k -> "kein" + pronEnding ! GSg g ! k) ;
|
Sg => \\g,c => usePrepC c (\k -> "kein" + pronEnding ! GSg g ! k) ;
|
||||||
Pl => (detLikeAdj False Pl "kein").s
|
Pl => (detUnlikeAdj False Pl "kein").s
|
||||||
}
|
}
|
||||||
in
|
in
|
||||||
{s,sp = \\_ => keiner ; a = Strong ; aPl = Weak} ; ---- sp
|
{s,sp = \\_ => keiner ; a = Strong ; aPl = Weak} ; ---- sp
|
||||||
|
|||||||
Reference in New Issue
Block a user