From 1e436d84a1d5a458fb29a42106e4c2943e6c39d3 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Wed, 1 Apr 2026 16:26:14 +0200 Subject: [PATCH] (Ice) handle PNs that consist of multiple words --- src/icelandic/ParadigmsIce.gf | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/icelandic/ParadigmsIce.gf b/src/icelandic/ParadigmsIce.gf index fd3cad68..ad0711d7 100644 --- a/src/icelandic/ParadigmsIce.gf +++ b/src/icelandic/ParadigmsIce.gf @@ -249,11 +249,23 @@ resource ParadigmsIce = open in lin N (nForms2Noun nfs (nForms2Suffix nfs gend) gend) ; mkPN = overload { - -- this should be merged or swithced with N -> Gender - mkPN : Str -> Gender -> PN = - \name,g -> regPN name g ; + mkPN : Str -> Gender -> PN + = \name,g -> case name of { + head + " " + suf => suffixPN (regPN head g) suf ; -- fallback: use explicit constructors for more precision + _ => regPN name g } ; + mkPN : PN -> Str -> PN -- mkPN (mkPN "Annar" ) "í jólum" + = suffixPN ; + mkPN : Str -> PN -> PN -- mkPN "Sameinuðu" (mkPN "þjóðirnar") + = prefixPN + } ; + foreignPN : Str -> PN = \name -> lin PN {s = \\_ => name ; g = Masc} ; + prefixPN : Str -> PN -> PN = \prefix,pn -> pn ** { + s = \\c => prefix ++ pn.s ! c + } ; + suffixPN : PN -> Str -> PN = \pn,suffix -> pn ** { + s = \\c => pn.s ! c ++ suffix } ; oper mkLN : Str -> LN = \s -> lin LN {s=s} ;