Files
gf-rgl/src/german/NamesGer.gf
2023-08-22 08:06:07 +02:00

87 lines
2.3 KiB
Plaintext

concrete NamesGer of Names = CatGer ** open ResGer, Prelude, (P=ParadigmsGer) in {
lin GivenName gn = {
s = \\_,c => gn.s ! c ;
a = agrgP3 (sex2gender gn.g) Sg ;
w = WLight ;
rc, ext = []
} ;
lin MaleSurname sn = {
s = \\_,c => sn.s ! Male ! c ;
a = agrgP3 Masc Sg ;
w = WLight ;
rc, ext = []
} ;
lin FemaleSurname sn = {
s = \\_,c => sn.s ! Female ! c ;
a = agrgP3 Fem Sg ;
w = WLight ;
rc, ext = []
} ;
lin PlSurname sn = {
s = \\_,c => sn.s ! Male ! c ;
a = agrgP3 Masc Pl ;
w = WLight ;
rc, ext = []
} ;
lin FullName gn sn = {
s = \\_,c => gn.s ! Nom ++ sn.s ! gn.g ! c ;
a = agrgP3 (sex2gender gn.g) Sg ;
w = WLight ;
rc, ext = []
} ;
-- UseLN : LN -> NP ;
lin UseLN ln = {
s = \\b,c => case ln.hasArt of {
True => case b of {
True => [] ; -- defart dropped
False => artDef ! (gennum ln.g ln.n) ! c
} ++
ln.s ! (adjfCase Weak c) ! c ;
False => ln.s ! Strong ! c
} ;
a = agrgP3 ln.g ln.n ;
w = WLight ;
rc, ext = []
} ;
-- PlainLN : LN -> NP ;
lin PlainLN ln = {
s = \\_,c => ln.s ! Strong ! c ;
a = agrgP3 ln.g ln.n ;
w = WLight ;
rc, ext = []
} ;
-- InLN : LN -> Adv ;
lin InLN ln = {
s = appPrepNP P.inDat_Prep {
s = \\b,c => case ln.hasArt of {
True => case b of {
True => [] ; -- defart dropped
False => artDef ! (gennum ln.g ln.n) ! c
} ++
ln.s ! (adjfCase Weak c) ! c ;
False => ln.s ! Strong ! c
} ;
a = agrgP3 ln.g ln.n ;
w = WLight ;
rc, ext = []
}
} ;
-- AdjLN : AP -> LN -> LN ;
lin AdjLN ap ln = ln ** {
s = \\a,c =>
preOrPost ap.isPre
(ap.c.p1 ++ ap.c.p2 ++ ap.s ! agrAdj ln.g a ln.n c ++ ap.ext)
(ln.s ! a ! c) ;
} ;
}