mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 08:58:55 -06:00
extend the names API
This commit is contained in:
@@ -293,7 +293,9 @@ fun
|
||||
CardCNCard : Card -> CN -> Card ; -- three million, four lakh, six dozen etc
|
||||
|
||||
GivenName : GN -> PN ;
|
||||
Surname : SN -> PN ;
|
||||
MaleSurname : SN -> PN ;
|
||||
FemaleSurname : SN -> PN ;
|
||||
PlSurname : SN -> PN ;
|
||||
FullName : GN -> SN -> PN ;
|
||||
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ concrete ExtendAfr of Extend =
|
||||
open
|
||||
ResAfr in {
|
||||
|
||||
lin GivenName, Surname = \n -> n ;
|
||||
lin GivenName, MaleSurname, FemaleSurname = \n -> n ;
|
||||
lin FullName gn sn = {
|
||||
s = \\c => gn.s ! NPNom ++ sn.s ! c ;
|
||||
} ;
|
||||
|
||||
@@ -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,6 +47,7 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
||||
|
||||
param
|
||||
Gender = Masc | Fem | Neut ;
|
||||
Sex = Male | Female ;
|
||||
|
||||
Species = Indef | Def ;
|
||||
|
||||
@@ -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
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ concrete ExtendCat of Extend = CatCat ** ExtendRomanceFunctor-- -
|
||||
ParadigmsCat in {
|
||||
-- put your own definitions here
|
||||
|
||||
lin GivenName, Surname = \n -> n ;
|
||||
lin GivenName, MaleSurname, FemaleSurname = \n -> n ;
|
||||
lin FullName gn sn = {
|
||||
s = gn.s ++ sn.s ;
|
||||
g = gn.g
|
||||
|
||||
@@ -17,7 +17,7 @@ concrete ExtendChi of Extend = CatChi **
|
||||
mkAdv : Str -> Adv ;
|
||||
mkAdv str = lin Adv {s = str ; advType = ATManner ; hasDe = False} ;
|
||||
|
||||
lin GivenName, Surname = \n -> n ;
|
||||
lin GivenName, MaleSurname, FemaleSurname, PlSurname = \n -> n ;
|
||||
lin FullName gn sn = {
|
||||
s = gn.s ++ sn.s
|
||||
} ;
|
||||
|
||||
@@ -115,7 +115,7 @@ lin
|
||||
isPron = False
|
||||
} ;
|
||||
|
||||
lin GivenName, Surname = \n -> n ;
|
||||
lin GivenName, MaleSurname, FemaleSurname = \n -> n ;
|
||||
lin FullName gn sn = {
|
||||
s = \\c => gn.s ! NPNom ++ sn.s ! c
|
||||
} ;
|
||||
|
||||
@@ -472,7 +472,7 @@ lin CardCNCard card cn =
|
||||
{s,sp = \\d,c => card.s ! d ! Nom ++ cn.s ! card.n ! c ; n = Pl} ;
|
||||
|
||||
lin GivenName gn = gn ;
|
||||
lin Surname sn = sn ;
|
||||
lin MaleSurname, FemaleSurname = \sn -> sn ;
|
||||
lin FullName gn sn = {
|
||||
s = \\c => gn.s ! Nom ++ sn.s ! c ;
|
||||
g = gn.g
|
||||
|
||||
@@ -437,7 +437,7 @@ concrete ExtendEst of Extend =
|
||||
WithoutVP vp = {s = "ilma" ++ infVPdefault vp InfMata} ;
|
||||
|
||||
|
||||
lin GivenName, Surname = \n -> n ;
|
||||
lin GivenName, MaleSurname, FemaleSurname = \n -> n ;
|
||||
lin FullName gn sn = {
|
||||
s = \\c => gn.s ! Nom ++ sn.s ! c
|
||||
} ;
|
||||
|
||||
@@ -241,7 +241,7 @@ lin UttAccNP np = {s = P.addNegation np.isNeg ++ np.s ! NPAcc} ;
|
||||
lin AdjAsCN ap = {s = ap.s ! True ; postmod = \\_ => ap.p ; h = Back} ; ---- Harmony just a guess
|
||||
lin AdjAsNP ap = MassNP (AdjAsCN ap) ;
|
||||
|
||||
lin GivenName, Surname = \n -> n ;
|
||||
lin GivenName, MaleSurname, FemaleSurname = \n -> n ;
|
||||
lin FullName gn sn = {
|
||||
s = \\c => gn.s ! Nom ++ sn.s ! c
|
||||
} ;
|
||||
|
||||
@@ -38,7 +38,7 @@ lin
|
||||
oper
|
||||
de_Quant : Quant = IndefArt ** {s = \\_,_,_,_ => elisDe} ;
|
||||
|
||||
lin GivenName, Surname = \n -> n ;
|
||||
lin GivenName, MaleSurname, FemaleSurname = \n -> n ;
|
||||
lin FullName gn sn = {
|
||||
s = gn.s ++ sn.s ;
|
||||
g = gn.g
|
||||
|
||||
@@ -100,7 +100,8 @@ concrete CatGer of Cat =
|
||||
N = ResGer.Noun ;
|
||||
N2 = ResGer.Noun ** {c2 : Preposition} ;
|
||||
N3 = ResGer.Noun ** {c2,c3 : Preposition} ;
|
||||
GN, SN = {s : Case => Str; g : Gender} ;
|
||||
GN = {s : Case => Str; g : Sex} ;
|
||||
SN = {s : Sex => Case => Str} ;
|
||||
PN = {s : Case => Str; g : Gender; n : Number} ;
|
||||
|
||||
-- tense with possibility to choose conjunctive forms
|
||||
|
||||
@@ -141,10 +141,13 @@ lin
|
||||
n = Pl
|
||||
} ;
|
||||
|
||||
lin GivenName, Surname = \n -> n ** { n = Sg } ;
|
||||
lin GivenName = \n -> { s = n.s; g = sex2gender n.g; n = Sg } ;
|
||||
lin MaleSurname = \n -> { s = n.s ! Male ; g = Masc; n = Sg } ;
|
||||
lin FemaleSurname = \n -> { s = n.s ! Female ; g = Fem; n = Sg } ;
|
||||
lin PlSurname = \n -> { s = n.s ! Male ; g = Masc; n = Pl } ;
|
||||
lin FullName gn sn = {
|
||||
s = \\c => gn.s ! Nom ++ sn.s ! c ;
|
||||
g = gn.g ;
|
||||
s = \\c => gn.s ! Nom ++ sn.s ! gn.g ! c ;
|
||||
g = sex2gender gn.g ;
|
||||
n = Sg
|
||||
} ;
|
||||
}
|
||||
|
||||
@@ -39,6 +39,9 @@ oper
|
||||
feminine : Gender ;
|
||||
neuter : Gender ;
|
||||
|
||||
male : Sex ;
|
||||
female : Sex ;
|
||||
|
||||
-- To abstract over case names, we define the following.
|
||||
|
||||
Case : Type ;
|
||||
@@ -144,6 +147,24 @@ mkN : overload {
|
||||
|
||||
} ;
|
||||
|
||||
mkGN : overload {
|
||||
mkGN : Str -> Sex -> GN ; -- regular name with genitive in "s"
|
||||
mkGN : (nom,gen : Str) -> Sex -> GN ; -- name with other genitive
|
||||
mkGN : (nom,acc,dat,gen : Str) -> Sex -> GN ; -- name with all case forms
|
||||
} ;
|
||||
|
||||
mkSN : overload {
|
||||
mkSN : Str -> GN ; -- regular name with genitive in "s", masculine
|
||||
|
||||
-- If only the genitive differs, two strings are needed.
|
||||
|
||||
mkSN : (nom,gen : Str) -> GN ; -- name with other genitive
|
||||
|
||||
-- In the worst case, all four forms are needed.
|
||||
|
||||
mkSN : (nom,acc,dat,gen : Str) -> GN ; -- name with all case forms
|
||||
} ;
|
||||
|
||||
-- To extract the number of a noun phrase
|
||||
|
||||
ifPluralNP : NP -> Bool
|
||||
@@ -370,6 +391,8 @@ mkV2 : overload {
|
||||
masculine = Masc ;
|
||||
feminine = Fem ;
|
||||
neuter = Neutr ;
|
||||
male = Male ;
|
||||
female = Female ;
|
||||
nominative = NPC Nom ;
|
||||
accusative = NPC Acc ;
|
||||
dative = NPC Dat ;
|
||||
@@ -484,6 +507,27 @@ mkV2 : overload {
|
||||
regPN : (Johann : Str) -> Gender -> PN ;
|
||||
-- Johann, Johanns ; Johannes, Johannes
|
||||
|
||||
mkGN = overload {
|
||||
mkGN : Str -> Sex -> GN = \nom,g -> lin GN {s = (regPN nom (sex2gender g)).s; g = g} ; -- regular name with genitive in "s"
|
||||
mkGN : (nom,gen : Str) -> Sex -> GN = \nom,gen,g -> lin GN {s = (mk2PN nom gen (sex2gender g)).s; g = g} ; -- name with other genitive
|
||||
mkGN : (nom,acc,dat,gen : Str) -> Sex -> GN = \nom,acc,dat,gen,g ->
|
||||
{s = table {Nom => nom ; Acc => acc ; Dat => dat ; Gen => gen} ;
|
||||
g = g ; lock_GN = <>}
|
||||
} ;
|
||||
|
||||
mkSN = overload {
|
||||
mkSN : Str -> SN = \s -> lin SN {s = \\_ => (regPN s Masc).s} ; -- regular name with genitive in "s", masculine
|
||||
|
||||
-- If only the genitive differs, two strings are needed.
|
||||
|
||||
mkSN : (nom,gen : Str) -> SN = \nom,gen -> lin SN {s = \\_ => (mk2PN nom gen Masc).s} ; -- name with other genitive
|
||||
|
||||
-- In the worst case, all four forms are needed.
|
||||
|
||||
mkSN : (nom,acc,dat,gen : Str) -> SN = \nom,acc,dat,gen ->
|
||||
{s = \\_ => table {Nom => nom ; Acc => acc ; Dat => dat ; Gen => gen} ;
|
||||
lock_SN = <>}
|
||||
} ;
|
||||
|
||||
mk3A : (gut,besser,beste : Str) -> A = \a,b,c ->
|
||||
let aa : Str = case a of {
|
||||
|
||||
@@ -25,6 +25,7 @@ resource ResGer = ParamX ** open Prelude in {
|
||||
param
|
||||
Case = Nom | Acc | Dat | Gen ;
|
||||
Gender = Masc | Fem | Neutr ;
|
||||
Sex = Male | Female ;
|
||||
|
||||
-- Complex $CN$s, like adjectives, have strong and weak forms.
|
||||
|
||||
@@ -1009,4 +1010,10 @@ resource ResGer = ParamX ** open Prelude in {
|
||||
subj = appPrepNP prep np
|
||||
in <subj , agr> ;
|
||||
|
||||
sex2gender : Sex -> Gender = \g ->
|
||||
case g of {
|
||||
Male => Masc ;
|
||||
Female => Fem
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ concrete ExtendIta of Extend = CatIta ** ExtendRomanceFunctor-- -
|
||||
ParadigmsIta in {
|
||||
-- put your own definitions here
|
||||
|
||||
lin GivenName, Surname = \n -> n ;
|
||||
lin GivenName, MaleSurname, FemaleSurname, PlSurname = \n -> n ;
|
||||
lin FullName gn sn = {
|
||||
s = gn.s ++ sn.s ;
|
||||
g = gn.g
|
||||
|
||||
@@ -9,7 +9,7 @@ concrete ExtendKor of Extend = CatKor
|
||||
-- : NP -> NP -> NP
|
||||
ApposNP np1 np2 = np1 ** {s = \\nf => np1.s ! nf ++ np2.s ! nf} ;
|
||||
|
||||
lin GivenName, Surname = \n -> n ;
|
||||
lin GivenName, MaleSurname, FemaleSurname = \n -> n ;
|
||||
lin FullName gn sn = {
|
||||
s = \\nf => gn.s ! nf ++ sn.s ! nf ;
|
||||
p = gn.p
|
||||
|
||||
@@ -24,7 +24,7 @@ concrete ExtraMlt of ExtraMltAbs = CatMlt **
|
||||
a = p.a ;
|
||||
} ;
|
||||
|
||||
lin GivenName, Surname = \n -> n ;
|
||||
lin GivenName, MaleSurname, FemaleSurname, PlSurname = \n -> n ;
|
||||
lin FullName gn sn = {
|
||||
s = gn.s ++ sn.s ;
|
||||
a = gn.a
|
||||
|
||||
@@ -37,7 +37,7 @@ oper
|
||||
p = P3
|
||||
};
|
||||
|
||||
lin GivenName, Surname = \n -> n ;
|
||||
lin GivenName, MaleSurname, FemaleSurname = \n -> n ;
|
||||
lin FullName gn sn = {
|
||||
nom = gn.nom ++ sn.nom ;
|
||||
voc = gn.nom ++ sn.voc ;
|
||||
|
||||
@@ -116,7 +116,7 @@ concrete ExtendPor of Extend = CatPor ** ExtendRomanceFunctor -
|
||||
youPolPlFem_Pron = pronAgr youPolPl_Pron Fem Pl P2 ;
|
||||
theyFem_Pron = mkPronFrom S.they_Pron "elas" "as" "lhes" "elas" Fem Pl P3 ;
|
||||
|
||||
lin GivenName, Surname = \n -> n ;
|
||||
lin GivenName, MaleSurname, FemaleSurname = \n -> n ;
|
||||
lin FullName gn sn = {
|
||||
s = gn.s ++ sn.s ;
|
||||
g = gn.g
|
||||
|
||||
@@ -217,7 +217,7 @@ lin
|
||||
oper
|
||||
rus_quoted : Str -> Str = \s -> "«" ++ s ++ "»" ; ---- TODO bind ; move to Prelude?
|
||||
|
||||
lin GivenName, Surname = \n -> n ;
|
||||
lin GivenName, MaleSurname, FemaleSurname, PlSurname = \n -> n ;
|
||||
lin FullName gn sn = {
|
||||
snom = gn.snom ++ sn.snom ;
|
||||
sgen = gn.snom ++ sn.sgen ;
|
||||
|
||||
@@ -56,7 +56,8 @@ lincat
|
||||
N2 = {s : Case => Number => Str; g : AGender; c : Prep} ;
|
||||
N3 = {s : Case => Number => Str; g : AGender; c : Prep} ;
|
||||
|
||||
GN, SN = {s : Case => Str; g : AGender};
|
||||
GN = {s : Case => Str; g : Sex};
|
||||
SN = {s : Sex => Case => Str};
|
||||
PN = {s : Case => Str; g : AGender; n : Number};
|
||||
|
||||
linref
|
||||
|
||||
@@ -57,10 +57,12 @@ lin
|
||||
youPolPl_Pron = youPol_Pron ;
|
||||
youPolPlFem_Pron = youPlFem_Pron ;
|
||||
|
||||
lin GivenName, Surname = \n -> n ** {n = Sg} ;
|
||||
lin GivenName = \n -> {s = n.s; g = sex2agender n.g; n = Sg} ;
|
||||
lin MaleSurname = \n -> {s = n.s ! Male; g = AMasc Animate; n = Sg} ;
|
||||
lin FemaleSurname = \n -> {s = n.s ! Female; g = AFem; n = Sg} ;
|
||||
lin FullName gn sn = {
|
||||
s = \\c => gn.s ! Nom ++ sn.s ! c ;
|
||||
g = gn.g ;
|
||||
s = \\c => gn.s ! Nom ++ sn.s ! gn.g ! c ;
|
||||
g = sex2agender gn.g ;
|
||||
n = Sg
|
||||
} ;
|
||||
|
||||
|
||||
@@ -16,6 +16,9 @@ oper
|
||||
feminine = AFem;
|
||||
neuter = ANeut;
|
||||
|
||||
male = Male ;
|
||||
female = Female ;
|
||||
|
||||
singular : Number = Sg ;
|
||||
dual : Number = Dl ;
|
||||
plural : Number = Pl ;
|
||||
@@ -200,6 +203,44 @@ oper
|
||||
};
|
||||
} ;
|
||||
|
||||
mkGN = overload {
|
||||
mkGN : Str -> Sex -> GN =
|
||||
\s,g -> lin GN {
|
||||
s = \\_ => s ;
|
||||
g = g
|
||||
};
|
||||
mkGN : (_,_,_,_,_,_ : Str) -> Sex -> GN =
|
||||
\nom,gen,dat,acc,loc,instr,g -> lin GN {
|
||||
s = table {
|
||||
Nom => nom;
|
||||
Gen => gen;
|
||||
Dat => dat;
|
||||
Acc => acc;
|
||||
Loc => loc;
|
||||
Instr => instr
|
||||
};
|
||||
g = g
|
||||
};
|
||||
} ;
|
||||
|
||||
mkSN = overload {
|
||||
mkSN : Str -> SN =
|
||||
\s -> lin SN {
|
||||
s = \\_,_ => s
|
||||
};
|
||||
mkPN : (_,_,_,_,_,_ : Str) -> SN =
|
||||
\nom,gen,dat,acc,loc,instr -> lin SN {
|
||||
s = \\_ => table {
|
||||
Nom => nom;
|
||||
Gen => gen;
|
||||
Dat => dat;
|
||||
Acc => acc;
|
||||
Loc => loc;
|
||||
Instr => instr
|
||||
}
|
||||
};
|
||||
} ;
|
||||
|
||||
mkV = overload {
|
||||
mkV : (inf : Str) -> V = \v -> regV v (dp 2 v) ;
|
||||
mkV : (inf,stem : Str) -> V = regV ;
|
||||
|
||||
@@ -4,6 +4,7 @@ param
|
||||
Case = Nom | Gen | Dat | Acc | Loc | Instr;
|
||||
Number = Sg | Dl | Pl ;
|
||||
Gender = Masc | Fem | Neut ;
|
||||
Sex = Male | Female ;
|
||||
Person = P1 | P2 | P3 ;
|
||||
Species = Indef | Def ;
|
||||
Animacy = Animate | Inanimate ;
|
||||
@@ -180,4 +181,10 @@ oper
|
||||
Neut => ANeut
|
||||
} ;
|
||||
|
||||
sex2agender : Sex -> AGender = \g ->
|
||||
case g of {
|
||||
Male => AMasc Animate ;
|
||||
Female => AFem
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ lin
|
||||
-- FocusAdV : AdV -> S -> Utt ; -- never will I sleep
|
||||
-- FocusAP : AP -> NP -> Utt ; -- green was the tree
|
||||
|
||||
lin GivenName, Surname = \n -> n ;
|
||||
lin GivenName, MaleSurname, FemaleSurname = \n -> n ;
|
||||
lin FullName gn sn = {
|
||||
s = gn.s ++ sn.s ;
|
||||
a = gn.a
|
||||
|
||||
@@ -100,7 +100,7 @@ concrete ExtendSpa of Extend = CatSpa ** ExtendRomanceFunctor -
|
||||
cop = serCopula
|
||||
} ;
|
||||
|
||||
lin GivenName, Surname = \n -> n ;
|
||||
lin GivenName, MaleSurname, FemaleSurname = \n -> n ;
|
||||
lin FullName gn sn = {
|
||||
s = gn.s ++ sn.s ;
|
||||
g = gn.g
|
||||
|
||||
@@ -393,7 +393,7 @@ lin UseDAPMasc, UseDAPFem = \dap ->
|
||||
lin CardCNCard card cn =
|
||||
{s = \\g => card.s ! cn.g ++ cn.s ! card.n ! DIndef ! Nom ; n = Pl} ;
|
||||
|
||||
lin GivenName, Surname = \n -> n ;
|
||||
lin GivenName, MaleSurname, FemaleSurname = \n -> n ;
|
||||
lin FullName gn sn = {
|
||||
s = \\c => gn.s ! Nom ++ sn.s ! c ;
|
||||
g = gn.g
|
||||
|
||||
@@ -49,11 +49,7 @@ concrete CatTur of Cat = CommonX - [CAdv,AdN] ** open ResTur, HarmonyTur, Prelud
|
||||
N = Noun ;
|
||||
N2 = Noun ** {c : Prep} ;
|
||||
N3 = Noun ** {c1,c2 : Prep} ;
|
||||
GN, SN = {
|
||||
s : Case => Str ;
|
||||
h : Harmony
|
||||
} ;
|
||||
PN = {
|
||||
GN, SN, PN = {
|
||||
s : Case => Str ;
|
||||
h : Harmony ;
|
||||
n : Number
|
||||
|
||||
@@ -7,7 +7,8 @@ concrete ExtendTur of Extend = CatTur ** open ResTur in {
|
||||
a = {n=num.n; p=P3} ;
|
||||
} ;
|
||||
|
||||
lin GivenName, Surname = \n -> n ** {n = Sg};
|
||||
lin GivenName, MaleSurname, FemaleSurname = \n -> n ** {n = Sg};
|
||||
lin PlSurname = \n -> n ** {n = Pl};
|
||||
lin FullName gn sn = {
|
||||
s = \\c => gn.s ! Nom ++ sn.s ! c ;
|
||||
h = sn.h ;
|
||||
|
||||
Reference in New Issue
Block a user