From a0eb5378c73334d03f120cbaa2fba7ef15294bf8 Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 28 Feb 2006 17:53:00 +0000 Subject: [PATCH] Swedish paradigm fixes --- lib/resource-1.0/swedish/LexiconSwe.gf | 2 +- lib/resource-1.0/swedish/MorphoSwe.gf | 1 + lib/resource-1.0/swedish/ParadigmsSwe.gf | 36 ++++++++++++++++-------- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/lib/resource-1.0/swedish/LexiconSwe.gf b/lib/resource-1.0/swedish/LexiconSwe.gf index a7a4a5fef..cf96d0f4f 100644 --- a/lib/resource-1.0/swedish/LexiconSwe.gf +++ b/lib/resource-1.0/swedish/LexiconSwe.gf @@ -52,7 +52,7 @@ lin close_V2 = dirV2 (mk2V "stänga" "stängde") ; coat_N = regN "rock" utrum ; cold_A = regA "kall" ; - come_V = (mkV "komma" "kommer" "kom" "kom" "kommit" "kommen") ; + come_V = komma_V ; computer_N = mk2N "dator" "datorer" ; country_N = mkN "land" "landet" "länder" "länderna" ; cousin_N = mk2N "kusin" "kusiner" ; diff --git a/lib/resource-1.0/swedish/MorphoSwe.gf b/lib/resource-1.0/swedish/MorphoSwe.gf index 851005831..48180b781 100644 --- a/lib/resource-1.0/swedish/MorphoSwe.gf +++ b/lib/resource-1.0/swedish/MorphoSwe.gf @@ -18,6 +18,7 @@ resource MorphoSwe = CommonScand, ResSwe ** open Prelude, (Predef=Predef) in { oper ptPretAll : Str -> Str * Str = \funnen -> case funnen of { + ko +"mmen" => ; vun +"nen" => ; bjud + "en" => ; se + "dd" => ; diff --git a/lib/resource-1.0/swedish/ParadigmsSwe.gf b/lib/resource-1.0/swedish/ParadigmsSwe.gf index 518954ff7..75258e623 100644 --- a/lib/resource-1.0/swedish/ParadigmsSwe.gf +++ b/lib/resource-1.0/swedish/ParadigmsSwe.gf @@ -318,7 +318,7 @@ oper _ => mkN bil (bil + "en") bilar (bilar + "na") -- ros,rosor } ; "ar" => decl2Noun bil ; - "er" => decl3Noun bil ; -- + "er" => decl3gNoun bil bilar ; -- fot, fötter "en" => decl4Noun bil ; -- rike, riken _ => mkN bil (bil + "et") bilar (bilar + "n") -- centrum, centra }) ; @@ -332,10 +332,12 @@ oper decl2Noun : Str -> N = \bil -> let bb : Str * Str = case bil of { - pojk + "e" => ; - nyck + "e" + l@("l" | "r") => ; - sock + "e" + "n" => ; - _ => + br + ("o" | "u" | "ö" | "å") => ; + pojk + "e" => ; + hi + "mme" + l@("l" | "r") => ; + nyck + "e" + l@("l" | "r") => ; + sock + "e" + "n" => ; + _ => } ; 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") ; _ => 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 -> mkN rike (rike + "t") (rike + "n") (rike + "na") ; @@ -367,7 +375,16 @@ oper lock_NP = <>} ; 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 = mkA ung (ung + "t") (ung + "a") (ung + "a") yngre yngst (yngst+"a") ; @@ -442,17 +459,14 @@ oper "a" => init sälja ; _ => sälja } ; - er = case a of { - "a" => "er" ; - _ => "r" - } ; + säljer = conj2 sälja ; såld = case Predef.dp 2 sålt of { "it" => Predef.tk 2 sålt + "en" ; "tt" => Predef.tk 2 sålt + "dd" ; _ => init sålt + "d" } 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 = <>} ; partV v p = {s = \\f => v.s ! f ++ p ; vtype = v.vtype ; lock_V = <>} ;