mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-06-28 20:36:29 -06:00
extend the names API
This commit is contained in:
@@ -86,7 +86,8 @@ concrete CatBul of Cat = CommonX - [IAdv,AdV] ** open ResBul, Prelude, Predef, (
|
||||
N = {s : NForm => Str; rel : AForm => Str; relType : NRelType; g : AGender} ;
|
||||
N2 = {s : NForm => Str; rel : AForm => Str; relType : NRelType; g : AGender} ** {c2 : Preposition} ;
|
||||
N3 = {s : NForm => Str; rel : AForm => Str; relType : NRelType; g : AGender} ** {c2,c3 : Preposition} ;
|
||||
GN, SN = {s : Str; g : Gender} ;
|
||||
GN = {s : Str; g : Sex} ;
|
||||
SN = {s : Sex => Str; pl : Str} ;
|
||||
PN = {s : Str; gn : GenNum} ;
|
||||
|
||||
lindef
|
||||
|
||||
@@ -92,27 +92,23 @@ lin
|
||||
s3 = ""
|
||||
} ;
|
||||
|
||||
InflectionGN = \pn -> {
|
||||
InflectionGN = \gn -> {
|
||||
t = "същ.с.л." ;
|
||||
s1= heading1 ("Собствено Име"++
|
||||
case pn.g of {
|
||||
Masc => "(м.р.)" ;
|
||||
Fem => "(ж.р.)" ;
|
||||
Neut => "(ср.р.)"
|
||||
s1= heading1 (case gn.g of {
|
||||
Male => "Мъжко Име" ;
|
||||
Female => "Женско Име"
|
||||
}) ;
|
||||
s2 = pn.s ;
|
||||
s2 = gn.s ;
|
||||
s3 = ""
|
||||
} ;
|
||||
|
||||
InflectionSN = \pn -> {
|
||||
InflectionSN = \sn -> {
|
||||
t = "същ.с.ф." ;
|
||||
s1= heading1 ("Фамилно Име"++
|
||||
case pn.g of {
|
||||
Masc => "(м.р.)" ;
|
||||
Fem => "(ж.р.)" ;
|
||||
Neut => "(ср.р.)"
|
||||
}) ;
|
||||
s2 = pn.s ;
|
||||
s1= heading1 ("Фамилно Име") ;
|
||||
s2 = frameTable (
|
||||
tr (th "мъжко" ++ td (sn.s ! Male)) ++
|
||||
tr (th "женско" ++ td (sn.s ! Female)) ++
|
||||
tr (th "семейно" ++ td sn.pl)) ;
|
||||
s3 = ""
|
||||
} ;
|
||||
|
||||
|
||||
@@ -300,13 +300,25 @@ lin UseDAP dap = {
|
||||
p = NounP3 dap.p
|
||||
} ;
|
||||
|
||||
lin GivenName, Surname = \n -> {
|
||||
lin GivenName = \n -> {
|
||||
s = n.s ;
|
||||
gn = GSg n.g
|
||||
gn = GSg (sex2gender n.g)
|
||||
} ;
|
||||
lin MaleSurname = \n -> {
|
||||
s = n.s ! Male ;
|
||||
gn = GSg Masc
|
||||
} ;
|
||||
lin FemaleSurname = \n -> {
|
||||
s = n.s ! Female;
|
||||
gn = GSg Fem
|
||||
} ;
|
||||
lin PlSurname = \n -> {
|
||||
s = n.pl ;
|
||||
gn = GPl
|
||||
} ;
|
||||
lin FullName gn sn = {
|
||||
s = gn.s ++ sn.s ;
|
||||
gn = GSg gn.g
|
||||
s = gn.s ++ sn.s ! gn.g ;
|
||||
gn = GSg (sex2gender gn.g)
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -271,13 +271,16 @@ oper
|
||||
feminine : Gender = Fem ;
|
||||
neutr : Gender = Neut ;
|
||||
|
||||
mkGN : Str -> Gender -> GN =
|
||||
male : Sex = Male ;
|
||||
female : Sex = Female ;
|
||||
|
||||
mkGN : Str -> Sex -> GN =
|
||||
\s,g -> lin GN {s = s; g = g} ;
|
||||
mkSN = overload {
|
||||
mkSN : Str -> SN =
|
||||
\s -> lin SN {s = s; g = Masc} ;
|
||||
mkSN : Str -> Gender -> SN =
|
||||
\s,g -> lin SN {s = s; g = g} ;
|
||||
\s -> lin SN {s = \\_ => s; pl = s} ;
|
||||
mkSN : Str -> Str -> Str -> SN =
|
||||
\m,f,pl -> lin SN {s = table Sex [m; f]; pl = pl} ;
|
||||
} ;
|
||||
|
||||
mkPN = overload {
|
||||
|
||||
@@ -47,7 +47,8 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
||||
|
||||
param
|
||||
Gender = Masc | Fem | Neut ;
|
||||
|
||||
Sex = Male | Female ;
|
||||
|
||||
Species = Indef | Def ;
|
||||
|
||||
-- The plural never makes a gender distinction.
|
||||
@@ -851,4 +852,11 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
||||
APl Indef => "свои" ;
|
||||
APl Def => "своите"
|
||||
} ;
|
||||
|
||||
sex2gender : Sex -> Gender = \g ->
|
||||
case g of {
|
||||
Male => Masc ;
|
||||
Female => Fem
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user