diff --git a/src/finnish/ParadigmsFin.gf b/src/finnish/ParadigmsFin.gf index 54f5ec2e..87e9ccd2 100644 --- a/src/finnish/ParadigmsFin.gf +++ b/src/finnish/ParadigmsFin.gf @@ -137,6 +137,10 @@ oper exceptNomN : N -> Str -> N ; +-- Some nouns have special, or variant, plural genitives (e.g. "valta" - "valtojen"|"valtain"). + + exceptPlGenN : N -> Str -> N ; + -- Nouns where the parts are separate (should perhaps be treated as CN) separateN = overload { @@ -489,6 +493,7 @@ mkVS = overload { } ; exceptNomN : N -> Str -> N = \noun,nom -> lin N (exceptNomSNoun noun nom) ; + exceptPlGenN : N -> Str -> N = \noun,nom -> lin N (exceptPlGenSNoun noun nom) ; ---- mk1A : Str -> A = \jalo -> aForms2A (nforms2aforms (nForms1 jalo)) ; ---- mkNA : N -> A = snoun2sadj ; diff --git a/src/finnish/StemFin.gf b/src/finnish/StemFin.gf index fa2e0b51..f0de1ec1 100644 --- a/src/finnish/StemFin.gf +++ b/src/finnish/StemFin.gf @@ -47,6 +47,13 @@ oper } ; h = noun.h } ; + exceptPlGenSNoun : SNoun -> Str -> SNoun = \noun,plgen -> { + s = table { + NCase Pl Gen => plgen ; + f => noun.s ! f + } ; + h = noun.h + } ; diff --git a/src/finnish/stemmed/StemFin.gf b/src/finnish/stemmed/StemFin.gf index d412114f..466bb797 100644 --- a/src/finnish/stemmed/StemFin.gf +++ b/src/finnish/stemmed/StemFin.gf @@ -117,7 +117,14 @@ oper exceptNomSNoun : SNoun -> Str -> SNoun = \noun,nom -> { s = table { - 0 => nom ; + 5 => nom ; + f => noun.s ! f + } ; + h = noun.h + } ; + exceptPlGenSNoun : SNoun -> Str -> SNoun = \noun,plgen -> { + s = table { + 5 => init plgen ; f => noun.s ! f } ; h = noun.h diff --git a/src/finnish/tagged/StemFin.gf b/src/finnish/tagged/StemFin.gf index 4f56f44d..d452eb1d 100644 --- a/src/finnish/tagged/StemFin.gf +++ b/src/finnish/tagged/StemFin.gf @@ -47,6 +47,7 @@ oper snoun2spn : SNoun -> SPN = \n -> {s = \\c => n.s ! 0 ++ tagCase c} ; exceptNomSNoun : SNoun -> Str -> SNoun = \noun,nom -> mkSNoun nom ; + exceptPlGenSNoun : SNoun -> Str -> SNoun = \noun,nom -> mkSNoun nom ; --- is this what is meant? AR 1/8/2021