added NamesLav.gf

This commit is contained in:
Krasimir Angelov
2025-08-29 12:54:59 +02:00
parent 2ff33ea968
commit 1cd582a322
5 changed files with 61 additions and 10 deletions

View File

@@ -112,7 +112,7 @@ lincat
PN,LN = ProperNoun ;
GN = {s : Case => Str ; gend : Gender} ;
SN = {s : Sex => Case => Str; pl : Case => Str} ;
SN = {s : Gender => Case => Str; pl : Case => Str} ;
-- Overriden from CommonX

View File

@@ -93,12 +93,12 @@ lin InflectionSN = \pn -> {
t = "ln" ;
s1 = heading1 "Family Name" ;
s2 = frameTable (
tr (th "Nom" ++ td (pn.s ! Male ! Nom)) ++
tr (th "Acc" ++ td (pn.s ! Male ! Acc)) ++
tr (th "Dat" ++ td (pn.s ! Male ! Dat)) ++
tr (th "Gen" ++ td (pn.s ! Male ! Gen)) ++
tr (th "Loc" ++ td (pn.s ! Male ! Loc)) ++
tr (th "Voc" ++ td (pn.s ! Male ! Voc))) ;
tr (th "Nom" ++ td (pn.s ! Masc ! Nom)) ++
tr (th "Acc" ++ td (pn.s ! Masc ! Acc)) ++
tr (th "Dat" ++ td (pn.s ! Masc ! Dat)) ++
tr (th "Gen" ++ td (pn.s ! Masc ! Gen)) ++
tr (th "Loc" ++ td (pn.s ! Masc ! Loc)) ++
tr (th "Voc" ++ td (pn.s ! Masc ! Voc))) ;
s3=[]
} ;

View File

@@ -14,7 +14,9 @@ concrete GrammarLav of Grammar =
TextX - [Adv,CAdv],
StructuralLav,
IdiomLav,
TenseX - [Adv,CAdv]
TenseX - [Adv,CAdv],
NamesLav
** {
flags

49
src/latvian/NamesLav.gf Normal file
View File

@@ -0,0 +1,49 @@
concrete NamesLav of Names = CatLav ** open Prelude, ResLav in {
lin
GivenName gn = {
s = gn.s ;
agr = AgrP3 Sg gn.gend ;
pol = Pos ;
isRel = False ;
isPron = False
} ;
MaleSurname sn = {
s = sn.s ! Masc ;
agr = AgrP3 Sg Masc ;
pol = Pos ;
isRel = False ;
isPron = False
} ;
FemaleSurname sn = {
s = sn.s ! Fem ;
agr = AgrP3 Sg Fem ;
pol = Pos ;
isRel = False ;
isPron = False
} ;
PlSurname sn = {
s = sn.pl ;
agr = AgrP3 Pl Masc ;
pol = Pos ;
isRel = False ;
isPron = False
} ;
FullName gn sn = {
s = \\c => gn.s ! c ++ sn.s ! gn.gend ! c ;
agr = AgrP3 Sg gn.gend ;
pol = Pos ;
isRel = False ;
isPron = False
} ;
lin
UseLN, PlainLN = \ln -> {
s = ln.s ;
agr = AgrP3 ln.num ln.gend ;
pol = Pos ;
isRel = False ;
isPron = False
} ;
}

View File

@@ -65,8 +65,8 @@ oper
mkSN = overload {
mkSN : Str -> SN = \s -> lin SN {s = \\_ => (mkProperNoun s Sg).s; pl = (mkProperNoun s Sg).s}; -- default gender utrum
mkSN : Str -> Str -> Str -> SN =
\male,female,pl -> lin SN {s = table {Male => (mkProperNoun male Sg).s;
Female => (mkProperNoun female Sg).s} ;
\male,female,pl -> lin SN {s = table {Masc => (mkProperNoun male Sg).s;
Fem => (mkProperNoun female Sg).s} ;
pl = (mkProperNoun pl Sg).s
} ;
} ;