File tree Expand file tree Collapse file tree 2 files changed +15
-1
lines changed Expand file tree Collapse file tree 2 files changed +15
-1
lines changed Original file line number Diff line number Diff line change 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" ) ;
Original file line number Diff line number Diff line change 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
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
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 = <>} ;
You can’t perform that action at this time.
0 commit comments