Skip to content

Commit ace36f7

Browse files
committed
added ParadigmsFin.foreignN and ParadigmsSwe.geoPN
1 parent 4f70384 commit ace36f7

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/finnish/ParadigmsFin.gf

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,8 @@ oper
159159
s = \\c => (StemFin.snoun2nounBind veri).s ! NCase n Gen + paine.s ! c
160160
} ;
161161

162+
foreignN : Str -> N ; -- foreign word without Finnish alternations, e.g. sake/saken/sakeja
163+
162164
-- Nouns used as functions need a case, of which the default is
163165
-- the genitive.
164166

@@ -667,7 +669,8 @@ mkVS = overload {
667669

668670
mkPN_1 : Str -> PN = \s -> lin PN (snoun2spn (mk1N s)) ;
669671

670-
foreignPN : Str -> PN = \s -> (lin PN (snoun2spn (nforms2snoun (noun s)))) where {
672+
foreignPN : Str -> PN = \s -> mkPN (foreignN s) ;
673+
foreignN : Str -> N = \s -> (lin N (nforms2snoun (noun s))) where {
671674
noun : Str -> NForms = \s -> case s of {
672675
_ + "i" => dPaatti s (s + "n") ;
673676
_ + "e" => dNukke s (s + "n") ;

src/swedish/ParadigmsSwe.gf

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ oper
4444

4545
utrum : Gender ; -- the "en" gender
4646
neutrum : Gender ; -- the "ett" gender
47+
neuter : Gender ; -- synonym of neutrum
4748

4849
-- To abstract over number names, we define the following.
4950

@@ -151,6 +152,7 @@ oper
151152
mkPN : (jesus,jesu : Str) -> Gender -> PN -- irregular genitive
152153
} ;
153154

155+
geoPN : Str -> PN ; -- neuter, with identical genitive if ends in a vowel
154156

155157
--2 Adjectives
156158

@@ -348,6 +350,7 @@ oper
348350
Case = CommonScand.Case ;
349351
utrum = Utr ;
350352
neutrum = Neutr ;
353+
neuter = Neutr ;
351354
singular = Sg ;
352355
plural = Pl ;
353356
nominative = Nom ;
@@ -525,6 +528,14 @@ oper
525528
{s = table {Nom => jesus ; Gen => jesu} ; g = g ; lock_PN = <>} ;
526529
} ;
527530

531+
geoPN name =
532+
let names : Str = case name of {
533+
_ + ("a"|"e"|"i"|"o"|"u"|"y"|"å"|"ä"|"ö") => name ;
534+
_ + "s" => name ;
535+
_ => name + "s"
536+
} in
537+
mkPN name names neutrum ;
538+
528539
regPN n = regGenPN n utrum ;
529540
regGenPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ;
530541
nounPN n = {s = n.s ! singular ! Indef ; g = n.g ; lock_PN = <>} ;

0 commit comments

Comments
 (0)