From b4d288419e64477a1cdccd4b3e1137205f5d90ee Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 5 Oct 2026 13:57:54 +0200 Subject: [PATCH] added NamesLat, IdiomLat --- src/latin/GrammarLat.gf | 5 +++-- src/latin/NamesLat.gf | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 src/latin/NamesLat.gf diff --git a/src/latin/GrammarLat.gf b/src/latin/GrammarLat.gf index 1d1eac74e..e3b3d734c 100644 --- a/src/latin/GrammarLat.gf +++ b/src/latin/GrammarLat.gf @@ -13,7 +13,8 @@ concrete GrammarLat of Grammar = PhraseLat, TextX-[Adv], TenseX-[Adv], - StructuralLat --- IdiomLat + StructuralLat, + NamesLat, + IdiomLat ** { } ; diff --git a/src/latin/NamesLat.gf b/src/latin/NamesLat.gf new file mode 100644 index 000000000..117e9ab56 --- /dev/null +++ b/src/latin/NamesLat.gf @@ -0,0 +1,27 @@ +concrete NamesLat of Names = CatLat ** open Prelude, ResLat in { + + lin + GivenName name = dummyNP name.s ** { + g = case name.g of {Male => Masc; Female => Fem}; n = Sg + } ; + MaleSurname name = dummyNP (name.s ! Male) ** {g = Masc; n = Sg} ; + FemaleSurname name = dummyNP (name.s ! Female) ** {g = Fem; n = Sg} ; + PlSurname name = dummyNP name.pl ** {g = Masc; n = Pl} ; + FullName first last = dummyNP (first.s ++ last.s ! first.g) ** { + g = case first.g of {Male => Masc; Female => Fem}; n = Sg + } ; + + UseLN name = { + s = \\_,c => name.s ! c; n = name.n; g = name.g; p = P3; adv = ""; + preap, postap = {s = \\_ => ""}; det = {s,sp = \\_ => ""; n = name.n} + } ; + PlainLN name = { + s = \\_,c => name.s ! c; n = name.n; g = name.g; p = P3; adv = ""; + preap, postap = {s = \\_ => ""}; det = {s,sp = \\_ => ""; n = name.n} + } ; + InLN name = mkAdverb ("in" ++ name.s ! Abl) ; + AdjLN ap name = name ** { + s = \\c => name.s ! c ++ ap.s ! Ag name.g name.n c + } ; + +}