mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 17:08:54 -06:00
added ParadigmsFin.foreignN and ParadigmsSwe.geoPN
This commit is contained in:
@@ -159,6 +159,8 @@ oper
|
|||||||
s = \\c => (StemFin.snoun2nounBind veri).s ! NCase n Gen + paine.s ! c
|
s = \\c => (StemFin.snoun2nounBind veri).s ! NCase n Gen + paine.s ! c
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
foreignN : Str -> N ; -- foreign word without Finnish alternations, e.g. sake/saken/sakeja
|
||||||
|
|
||||||
-- Nouns used as functions need a case, of which the default is
|
-- Nouns used as functions need a case, of which the default is
|
||||||
-- the genitive.
|
-- the genitive.
|
||||||
|
|
||||||
@@ -667,7 +669,8 @@ mkVS = overload {
|
|||||||
|
|
||||||
mkPN_1 : Str -> PN = \s -> lin PN (snoun2spn (mk1N s)) ;
|
mkPN_1 : Str -> PN = \s -> lin PN (snoun2spn (mk1N s)) ;
|
||||||
|
|
||||||
foreignPN : Str -> PN = \s -> (lin PN (snoun2spn (nforms2snoun (noun s)))) where {
|
foreignPN : Str -> PN = \s -> mkPN (foreignN s) ;
|
||||||
|
foreignN : Str -> N = \s -> (lin N (nforms2snoun (noun s))) where {
|
||||||
noun : Str -> NForms = \s -> case s of {
|
noun : Str -> NForms = \s -> case s of {
|
||||||
_ + "i" => dPaatti s (s + "n") ;
|
_ + "i" => dPaatti s (s + "n") ;
|
||||||
_ + "e" => dNukke s (s + "n") ;
|
_ + "e" => dNukke s (s + "n") ;
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ oper
|
|||||||
|
|
||||||
utrum : Gender ; -- the "en" gender
|
utrum : Gender ; -- the "en" gender
|
||||||
neutrum : Gender ; -- the "ett" gender
|
neutrum : Gender ; -- the "ett" gender
|
||||||
|
neuter : Gender ; -- synonym of neutrum
|
||||||
|
|
||||||
-- To abstract over number names, we define the following.
|
-- To abstract over number names, we define the following.
|
||||||
|
|
||||||
@@ -151,6 +152,7 @@ oper
|
|||||||
mkPN : (jesus,jesu : Str) -> Gender -> PN -- irregular genitive
|
mkPN : (jesus,jesu : Str) -> Gender -> PN -- irregular genitive
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
geoPN : Str -> PN ; -- neuter, with identical genitive if ends in a vowel
|
||||||
|
|
||||||
--2 Adjectives
|
--2 Adjectives
|
||||||
|
|
||||||
@@ -348,6 +350,7 @@ oper
|
|||||||
Case = CommonScand.Case ;
|
Case = CommonScand.Case ;
|
||||||
utrum = Utr ;
|
utrum = Utr ;
|
||||||
neutrum = Neutr ;
|
neutrum = Neutr ;
|
||||||
|
neuter = Neutr ;
|
||||||
singular = Sg ;
|
singular = Sg ;
|
||||||
plural = Pl ;
|
plural = Pl ;
|
||||||
nominative = Nom ;
|
nominative = Nom ;
|
||||||
@@ -525,6 +528,14 @@ oper
|
|||||||
{s = table {Nom => jesus ; Gen => jesu} ; g = g ; lock_PN = <>} ;
|
{s = table {Nom => jesus ; Gen => jesu} ; g = g ; lock_PN = <>} ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
geoPN name =
|
||||||
|
let names : Str = case name of {
|
||||||
|
_ + ("a"|"e"|"i"|"o"|"u"|"y"|"å"|"ä"|"ö") => name ;
|
||||||
|
_ + "s" => name ;
|
||||||
|
_ => name + "s"
|
||||||
|
} in
|
||||||
|
mkPN name names neutrum ;
|
||||||
|
|
||||||
regPN n = regGenPN n utrum ;
|
regPN n = regGenPN n utrum ;
|
||||||
regGenPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ;
|
regGenPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ;
|
||||||
nounPN n = {s = n.s ! singular ! Indef ; g = n.g ; lock_PN = <>} ;
|
nounPN n = {s = n.s ! singular ! Indef ; g = n.g ; lock_PN = <>} ;
|
||||||
|
|||||||
Reference in New Issue
Block a user