mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-20 00:22:51 -06:00
Swedish paradigm fixes
This commit is contained in:
@@ -52,7 +52,7 @@ lin
|
|||||||
close_V2 = dirV2 (mk2V "stänga" "stängde") ;
|
close_V2 = dirV2 (mk2V "stänga" "stängde") ;
|
||||||
coat_N = regN "rock" utrum ;
|
coat_N = regN "rock" utrum ;
|
||||||
cold_A = regA "kall" ;
|
cold_A = regA "kall" ;
|
||||||
come_V = (mkV "komma" "kommer" "kom" "kom" "kommit" "kommen") ;
|
come_V = komma_V ;
|
||||||
computer_N = mk2N "dator" "datorer" ;
|
computer_N = mk2N "dator" "datorer" ;
|
||||||
country_N = mkN "land" "landet" "länder" "länderna" ;
|
country_N = mkN "land" "landet" "länder" "länderna" ;
|
||||||
cousin_N = mk2N "kusin" "kusiner" ;
|
cousin_N = mk2N "kusin" "kusiner" ;
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ resource MorphoSwe = CommonScand, ResSwe ** open Prelude, (Predef=Predef) in {
|
|||||||
oper
|
oper
|
||||||
ptPretAll : Str -> Str * Str = \funnen ->
|
ptPretAll : Str -> Str * Str = \funnen ->
|
||||||
case funnen of {
|
case funnen of {
|
||||||
|
ko +"mmen" => <ko +"mmet", ko + "mna"> ;
|
||||||
vun +"nen" => <vun +"net", vun + "na"> ;
|
vun +"nen" => <vun +"net", vun + "na"> ;
|
||||||
bjud + "en" => <bjud + "et", bjud + "na"> ;
|
bjud + "en" => <bjud + "et", bjud + "na"> ;
|
||||||
se + "dd" => <se + "tt", se +"dda"> ;
|
se + "dd" => <se + "tt", se +"dda"> ;
|
||||||
|
|||||||
@@ -318,7 +318,7 @@ oper
|
|||||||
_ => mkN bil (bil + "en") bilar (bilar + "na") -- ros,rosor
|
_ => mkN bil (bil + "en") bilar (bilar + "na") -- ros,rosor
|
||||||
} ;
|
} ;
|
||||||
"ar" => decl2Noun bil ;
|
"ar" => decl2Noun bil ;
|
||||||
"er" => decl3Noun bil ; --
|
"er" => decl3gNoun bil bilar ; -- fot, fötter
|
||||||
"en" => decl4Noun bil ; -- rike, riken
|
"en" => decl4Noun bil ; -- rike, riken
|
||||||
_ => mkN bil (bil + "et") bilar (bilar + "n") -- centrum, centra
|
_ => mkN bil (bil + "et") bilar (bilar + "n") -- centrum, centra
|
||||||
}) ;
|
}) ;
|
||||||
@@ -332,10 +332,12 @@ oper
|
|||||||
decl2Noun : Str -> N = \bil ->
|
decl2Noun : Str -> N = \bil ->
|
||||||
let
|
let
|
||||||
bb : Str * Str = case bil of {
|
bb : Str * Str = case bil of {
|
||||||
pojk + "e" => <pojk + "ar", bil + "n"> ;
|
br + ("o" | "u" | "ö" | "å") => <bil + "ar", bil + "n"> ;
|
||||||
nyck + "e" + l@("l" | "r") => <nyck + l + "ar",bil + "n"> ;
|
pojk + "e" => <pojk + "ar", bil + "n"> ;
|
||||||
sock + "e" + "n" => <sock + "nar", sock + "nen"> ;
|
hi + "mme" + l@("l" | "r") => <hi + "m" + l + "ar",hi + "m" + l + "en"> ;
|
||||||
_ => <bil + "ar", bil + "en">
|
nyck + "e" + l@("l" | "r") => <nyck + l + "ar",bil + "n"> ;
|
||||||
|
sock + "e" + "n" => <sock + "nar", sock + "nen"> ;
|
||||||
|
_ => <bil + "ar", bil + "en">
|
||||||
} ;
|
} ;
|
||||||
in mkN bil bb.p2 bb.p1 (bb.p1 + "na") ;
|
in mkN bil bb.p2 bb.p1 (bb.p1 + "na") ;
|
||||||
|
|
||||||
@@ -345,6 +347,12 @@ oper
|
|||||||
"y" | "å" | "é" | "y" => mkN sak (sak + "n") (sak +"er") (sak + "erna") ;
|
"y" | "å" | "é" | "y" => mkN sak (sak + "n") (sak +"er") (sak + "erna") ;
|
||||||
_ => mkN sak (sak + "en") (sak + "er") (sak + "erna")
|
_ => mkN sak (sak + "en") (sak + "er") (sak + "erna")
|
||||||
} ;
|
} ;
|
||||||
|
decl3gNoun : Str -> Str -> N = \sak,saker ->
|
||||||
|
case last sak of {
|
||||||
|
"e" => mkN sak (sak + "n") saker (saker + "na") ;
|
||||||
|
"y" | "å" | "é" | "y" => mkN sak (sak + "n") saker (saker + "na") ;
|
||||||
|
_ => mkN sak (sak + "en") saker (saker + "na")
|
||||||
|
} ;
|
||||||
|
|
||||||
decl4Noun : Str -> N = \rike ->
|
decl4Noun : Str -> N = \rike ->
|
||||||
mkN rike (rike + "t") (rike + "n") (rike + "na") ;
|
mkN rike (rike + "t") (rike + "n") (rike + "na") ;
|
||||||
@@ -367,7 +375,16 @@ oper
|
|||||||
lock_NP = <>} ;
|
lock_NP = <>} ;
|
||||||
|
|
||||||
mkA a b c d e f g = mkAdjective a b c d e f g ** {lock_A = <>} ;
|
mkA a b c d e f g = mkAdjective a b c d e f g ** {lock_A = <>} ;
|
||||||
regA fin = mk3A fin (fin + "t") (fin + "a") ** {lock_A = <>} ;
|
regA fin =
|
||||||
|
let fint : Str = case fin of {
|
||||||
|
ru + "nd" => ru + "nt" ;
|
||||||
|
se + "dd" => se + "tt" ;
|
||||||
|
pla + "tt" => pla + "tt" ;
|
||||||
|
gla + "d" => gla + "tt" ;
|
||||||
|
_ => fin + "t"
|
||||||
|
}
|
||||||
|
in
|
||||||
|
mk3A fin fint (fin + "a") ** {lock_A = <>} ;
|
||||||
irregA ung yngre yngst =
|
irregA ung yngre yngst =
|
||||||
mkA ung (ung + "t") (ung + "a") (ung + "a") yngre yngst (yngst+"a") ;
|
mkA ung (ung + "t") (ung + "a") (ung + "a") yngre yngst (yngst+"a") ;
|
||||||
|
|
||||||
@@ -442,17 +459,14 @@ oper
|
|||||||
"a" => init sälja ;
|
"a" => init sälja ;
|
||||||
_ => sälja
|
_ => sälja
|
||||||
} ;
|
} ;
|
||||||
er = case a of {
|
säljer = conj2 sälja ;
|
||||||
"a" => "er" ;
|
|
||||||
_ => "r"
|
|
||||||
} ;
|
|
||||||
såld = case Predef.dp 2 sålt of {
|
såld = case Predef.dp 2 sålt of {
|
||||||
"it" => Predef.tk 2 sålt + "en" ;
|
"it" => Predef.tk 2 sålt + "en" ;
|
||||||
"tt" => Predef.tk 2 sålt + "dd" ;
|
"tt" => Predef.tk 2 sålt + "dd" ;
|
||||||
_ => init sålt + "d"
|
_ => init sålt + "d"
|
||||||
}
|
}
|
||||||
in
|
in
|
||||||
mkV sälja (sälj + er) sälj sålde sålt såld
|
mkV sälja (säljer.s ! VF (VPres Act)) (säljer.s ! (VF (VImper Act))) sålde sålt såld
|
||||||
** {s1 = [] ; lock_V = <>} ;
|
** {s1 = [] ; lock_V = <>} ;
|
||||||
|
|
||||||
partV v p = {s = \\f => v.s ! f ++ p ; vtype = v.vtype ; lock_V = <>} ;
|
partV v p = {s = \\f => v.s ! f ++ p ; vtype = v.vtype ; lock_V = <>} ;
|
||||||
|
|||||||
Reference in New Issue
Block a user