mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 19:42:50 -06:00
Ger Quant sp field gets a Boolean to manage the use of numerals like in English
This commit is contained in:
@@ -52,8 +52,8 @@ concrete CatGer of Cat =
|
|||||||
Pron = {s : NPForm => Str ; a : Agr} ;
|
Pron = {s : NPForm => Str ; a : Agr} ;
|
||||||
Det = {s,sp : Gender => PCase => Str ; n : Number ; a : Adjf ; isDef : Bool} ;
|
Det = {s,sp : Gender => PCase => Str ; n : Number ; a : Adjf ; isDef : Bool} ;
|
||||||
Quant = {
|
Quant = {
|
||||||
s : Bool => Number => Gender => PCase => Str ;
|
s : Bool => Number => Gender => PCase => Str ; -- Bool is True if a cardinal number is present
|
||||||
sp : Number => Gender => PCase => Str ;
|
sp : Bool => Number => Gender => PCase => Str ;
|
||||||
a : Adjf ;
|
a : Adjf ;
|
||||||
aPl : Adjf ; --- to distinguish "meine guten Freunde" / "gute Freunde"
|
aPl : Adjf ; --- to distinguish "meine guten Freunde" / "gute Freunde"
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -51,9 +51,9 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
|
|||||||
n = num.n ;
|
n = num.n ;
|
||||||
a = quant.a
|
a = quant.a
|
||||||
in {
|
in {
|
||||||
s = \\g,c => quant.s ! num.isNum ! n ! g ! c ++ (let k = (prepC c).c in
|
s = \\g,c => quant.s ! num.isNum ! n ! g ! c ++ (let k = (prepC c).c in
|
||||||
num.s!g!k ++ ord.s ! agrAdj g (adjfCase a k) n k) ;
|
num.s!g!k ++ ord.s ! agrAdj g (adjfCase a k) n k) ;
|
||||||
sp = \\g,c => quant.sp ! n ! g ! c ++ (let k = (prepC c).c in
|
sp = \\g,c => quant.sp ! num.isNum ! n ! g ! c ++ (let k = (prepC c).c in
|
||||||
num.s!g!k ++ ord.s ! agrAdj g (adjfCase quant.aPl k) n k) ;
|
num.s!g!k ++ ord.s ! agrAdj g (adjfCase quant.aPl k) n k) ;
|
||||||
n = n ;
|
n = n ;
|
||||||
a = case n of {Sg => a ; Pl => quant.aPl} ;
|
a = case n of {Sg => a ; Pl => quant.aPl} ;
|
||||||
@@ -65,9 +65,9 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
|
|||||||
n = num.n ;
|
n = num.n ;
|
||||||
a = quant.a
|
a = quant.a
|
||||||
in {
|
in {
|
||||||
s = \\g,c => quant.s ! num.isNum ! n ! g ! c ++ (let k = (prepC c).c in
|
s = \\g,c => quant.s ! num.isNum ! n ! g ! c ++ (let k = (prepC c).c in
|
||||||
num.s!g!k) ;
|
num.s!g!k) ;
|
||||||
sp = \\g,c => quant.sp ! n ! g ! c ++ (let k = (prepC c).c in
|
sp = \\g,c => quant.sp ! num.isNum ! n ! g ! c ++ (let k = (prepC c).c in
|
||||||
num.s!g!k) ;
|
num.s!g!k) ;
|
||||||
n = n ;
|
n = n ;
|
||||||
a = case n of {Sg => a ; Pl => quant.aPl} ;
|
a = case n of {Sg => a ; Pl => quant.aPl} ;
|
||||||
@@ -77,7 +77,7 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
|
|||||||
|
|
||||||
PossPron p = {
|
PossPron p = {
|
||||||
s = \\_,n,g,c => usePrepC c (\k -> p.s ! NPPoss (gennum g n) k) ;
|
s = \\_,n,g,c => usePrepC c (\k -> p.s ! NPPoss (gennum g n) k) ;
|
||||||
sp = \\n,g,c => usePrepC c (\k -> p.s ! NPPoss (gennum g n) k) ;
|
sp = \\_,n,g,c => usePrepC c (\k -> p.s ! NPPoss (gennum g n) k) ;
|
||||||
a = Strong ;
|
a = Strong ;
|
||||||
aPl = Weak ;
|
aPl = Weak ;
|
||||||
} ;
|
} ;
|
||||||
@@ -99,7 +99,7 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
|
|||||||
|
|
||||||
DefArt = {
|
DefArt = {
|
||||||
s = \\_,n,g,c => artDefContr (gennum g n) c ;
|
s = \\_,n,g,c => artDefContr (gennum g n) c ;
|
||||||
sp = \\n,g,c => artDefContr (gennum g n) c ; ---- deren, denem...
|
sp = \\_,n,g,c => artDefContr (gennum g n) c ; ---- deren, denem...
|
||||||
a, aPl = Weak
|
a, aPl = Weak
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -112,8 +112,11 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
|
|||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
sp = table {
|
sp = table {
|
||||||
Sg => \\g,c => usePrepC c (\k -> (detLikeAdj False Sg "ein").s ! g ! NPC k) ;
|
True => \\_,_,c => usePrepC c (\k -> []) ;
|
||||||
Pl => \\_,c => usePrepC c (\k -> caselist "einige" "einige" "einigen" "einiger" ! k)
|
False => table {
|
||||||
|
Sg => \\g,c => usePrepC c (\k -> (detLikeAdj False Sg "ein").s ! g ! NPC k) ;
|
||||||
|
Pl => \\_,c => usePrepC c (\k -> caselist "einige" "einige" "einigen" "einiger" ! k)
|
||||||
|
}
|
||||||
} ;
|
} ;
|
||||||
a, aPl = Strong
|
a, aPl = Strong
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
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 => (detLikeAdj True n "jen").s in
|
||||||
{s = \\_ => jener ; 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" ;
|
there_Adv = ss "da" ;
|
||||||
there7to_Adv = ss "dahin" ;
|
there7to_Adv = ss "dahin" ;
|
||||||
@@ -98,7 +98,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
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 => (detLikeAdj True n "dies").s in
|
||||||
{s = \\_ => dieser ; 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} ;
|
||||||
through_Prep = mkPrep "durch" P.accusative ;
|
through_Prep = mkPrep "durch" P.accusative ;
|
||||||
@@ -139,7 +139,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
Pl => (detLikeAdj False Pl "kein").s
|
Pl => (detLikeAdj False Pl "kein").s
|
||||||
}
|
}
|
||||||
in
|
in
|
||||||
{s = \\_ => keiner ; sp = keiner ; a = Strong ; aPl = Weak} ; ---- sp
|
{s,sp = \\_ => keiner ; a = Strong ; aPl = Weak} ; ---- sp
|
||||||
if_then_Conj = {s1 = "wenn" ; s2 = "dann" ; n = Sg ; lock_Conj = <>} ;
|
if_then_Conj = {s1 = "wenn" ; s2 = "dann" ; n = Sg ; lock_Conj = <>} ;
|
||||||
nobody_NP =
|
nobody_NP =
|
||||||
nameNounPhrase {s = caselist "niemand" "niemanden" "niemandem" "niemands"} ;
|
nameNounPhrase {s = caselist "niemand" "niemanden" "niemandem" "niemands"} ;
|
||||||
|
|||||||
Reference in New Issue
Block a user