diff --git a/lib/src/danish/DiffDan.gf b/lib/src/danish/DiffDan.gf index 233cc5fb5..47584fd55 100644 --- a/lib/src/danish/DiffDan.gf +++ b/lib/src/danish/DiffDan.gf @@ -36,14 +36,14 @@ instance DiffDan of DiffScand = open CommonScand, Prelude in { detIndefPl = "nogle" ; verbHave = - mkVerb "have" "har" "hav" "havde" "haft" "haven" "havet" "havne" ** + mkVerb9 "have" "har" "hav" "havde" "haft" "haven" "havet" "havne" "havende" ** {part = [] ; isVaere = False} ; verbBe = - mkVerb "være" "er" "var" "var" "været" "væren" "været" "værne" ** + mkVerb9 "være" "er" "var" "var" "været" "væren" "været" "værne" "værende" ** {part = [] ; isVaere = False} ; verbBecome = - mkVerb "blive" "bliver" "bliv" "blev" "blevet" - "bliven" "blivet" "blivne" ** + mkVerb9 "blive" "bliver" "bliv" "blev" "blevet" + "bliven" "blivet" "blivne" "blivende" ** {part = [] ; isVaere = True} ; auxFut = "vil" ; -- "skal" in ExtDan diff --git a/lib/src/danish/MorphoDan.gf b/lib/src/danish/MorphoDan.gf index a6b3fa302..c9d3df5c6 100644 --- a/lib/src/danish/MorphoDan.gf +++ b/lib/src/danish/MorphoDan.gf @@ -80,6 +80,11 @@ oper VI (VSupin v) => mkVoice v spist ; --# notpresent VI (VPtPret (Strong (GSg _)) c) => mkCase c spist ; VI (VPtPret _ c) => mkCase c (spist + "e") ; + VI (VPtPres c) => case last spise of { + "e" => mkCase c (spise + "nde") ; + "i" => mkCase c (spise + "vende") ; --- gi, bli + _ => mkCase c (spise + "ende") + } ; VF (VImper v) => mkVoice v spis } } ; diff --git a/lib/src/norwegian/DiffNor.gf b/lib/src/norwegian/DiffNor.gf index 913286176..e1a26c657 100644 --- a/lib/src/norwegian/DiffNor.gf +++ b/lib/src/norwegian/DiffNor.gf @@ -44,13 +44,13 @@ instance DiffNor of DiffScand = open CommonScand, Prelude in { detIndefPl = "noen" ; verbHave = - mkVerb "ha" "har" "ha" "hadde" "hatt" "haven" "havet" "havne" + mkVerb9 "ha" "har" "ha" "hadde" "hatt" "haven" "havet" "havne" "havende" ** {part = [] ; isVaere = False} ; verbBe = - mkVerb "være" "er" "var" "var" "vært" "væren" "været" "værne" + mkVerb9 "være" "er" "var" "var" "vært" "væren" "været" "værne" "værende" ** {part = [] ; isVaere = False} ; verbBecome = - mkVerb "bli" "blir" "bli" "ble" "blitt" "bliven" "blivet" "blivne" + mkVerb9 "bli" "blir" "bli" "ble" "blitt" "bliven" "blivet" "blivne" "blivende" ** {part = [] ; isVaere = True} ; -- auxiliary diff --git a/lib/src/norwegian/MorphoNor.gf b/lib/src/norwegian/MorphoNor.gf index f7f37d7ae..782a28931 100644 --- a/lib/src/norwegian/MorphoNor.gf +++ b/lib/src/norwegian/MorphoNor.gf @@ -94,6 +94,11 @@ oper "a" => mkCase c spist ; _ => mkCase c (spist + "e") } ; + VI (VPtPres c) => case last spise of { + "e" => mkCase c (spise + "nde") ; + "i" => mkCase c (spise + "vende") ; --- gi, bli + _ => mkCase c (spise + "ende") + } ; VF (VImper v) => mkVoice v spis } } ; diff --git a/lib/src/scandinavian/CommonScand.gf b/lib/src/scandinavian/CommonScand.gf index ccf95aba0..c71b17061 100644 --- a/lib/src/scandinavian/CommonScand.gf +++ b/lib/src/scandinavian/CommonScand.gf @@ -56,6 +56,7 @@ param VInfin Voice | VSupin Voice --# notpresent | VPtPret AFormPos Case + | VPtPres Case ; VPForm = @@ -181,8 +182,8 @@ oper } } ; - mkVerb : (x1,_,_,_,_,_,_,x8 : Str) -> {s : VForm => Str ; vtype : VType} = - \finna,finner,finn,fann,funnit,funnen,funnet,funna -> { + mkVerb9 : (x1,_,_,_,_,_,_,_,x9 : Str) -> {s : VForm => Str ; vtype : VType} = + \finna,finner,finn,fann,funnit,funnen,funnet,funna, finnande -> { s = table { VF (VPres Act) => finner ; VF (VPres Pass) => mkVoice Pass finn ; @@ -190,7 +191,8 @@ oper VF (VImper v) => mkVoice v finn ; VI (VInfin v) => mkVoice v finna ; VI (VSupin v) => mkVoice v funnit ; --# notpresent - VI (VPtPret a c)=> mkCase c (mkAdjPos a funnen funnet funna funna) + VI (VPtPret a c)=> mkCase c (mkAdjPos a funnen funnet funna funna) ; + VI (VPtPres c) => mkCase c finnande } ; vtype = VAct } ; diff --git a/lib/src/swedish/DiffSwe.gf b/lib/src/swedish/DiffSwe.gf index 582b683fd..3fe2b9123 100644 --- a/lib/src/swedish/DiffSwe.gf +++ b/lib/src/swedish/DiffSwe.gf @@ -37,12 +37,12 @@ instance DiffSwe of DiffScand = open CommonScand, Prelude in { detIndefPl = "några" ; verbHave = - mkVerb "ha" "har" "ha" "hade" "haft" "havd" "havt" "havda" ** noPart ; + mkVerb9 "ha" "har" "ha" "hade" "haft" "havd" "havt" "havda" "havande" ** noPart ; verbBe = - mkVerb "vara" "är" "var" "var" "varit" "varen" "varet" "varna" + mkVerb9 "vara" "är" "var" "var" "varit" "varen" "varet" "varna" "varande" ** noPart ; verbBecome = - mkVerb "bli" "blir" "bli" "blev" "blivit" "bliven" "blivet" "blivna" + mkVerb9 "bli" "blir" "bli" "blev" "blivit" "bliven" "blivet" "blivna" "blivande" ** noPart ; -- auxiliary diff --git a/lib/src/swedish/LexiconSwe.gf b/lib/src/swedish/LexiconSwe.gf index 89805fe9b..afc5c3f25 100644 --- a/lib/src/swedish/LexiconSwe.gf +++ b/lib/src/swedish/LexiconSwe.gf @@ -17,7 +17,7 @@ lin bad_A = irregA "dålig" "sämre" "sämst"; bank_N = mk2N "bank" "banker" ; beautiful_A = mk3A "vacker" "vackert" "vackra" ; - become_VA = mkVA (mkV "bli" "blir""bli" "blev" "blivit" "bliven") ; + become_VA = mkVA (mkV "bli" "blir""bli" "blev" "blivit" "bliven" "blivande") ; beer_N = regGenN "öl" neutrum ; beg_V2V = mkV2V (mkV "be" "ber""be" "bad" "bett" "bedd") noPrep (mkPrep "att") ; big_A = irregA "stor" "större" "störst"; @@ -316,7 +316,7 @@ lin flow_V = rinna_V ; fly_V = flyga_V ; freeze_V = frysa_V ; - give_V3 = dirV3 giva_V (mkPrep "till"); + give_V3 = dirV3 (mkV "ge" "ger""ge" "gav" "givit" "given" "givande") (mkPrep "till"); hit_V2 = dirV2 (slå_V) ; hold_V2 = dirV2 (hålla_V) ; hunt_V2 = dirV2 (regV "jaga") ; diff --git a/lib/src/swedish/ParadigmsSwe.gf b/lib/src/swedish/ParadigmsSwe.gf index e78f5504c..e7aa2fb4e 100644 --- a/lib/src/swedish/ParadigmsSwe.gf +++ b/lib/src/swedish/ParadigmsSwe.gf @@ -538,16 +538,25 @@ oper mkV : (slita, slet : Str) -> V = reg2V ; mkV : (dricka,drack,druckit : Str) -> V = irregV ; mkV : (supa,super,sup,söp,supit,supen : Str) -> V = mk6V ; + mkV : (supa,super,sup,söp,supit,supen,supande : Str) -> V = mk7V ; mkV : V -> Str -> V = partV } ; mk6V = \finna,finner,finn,fann,funnit,funnen -> + let finnande : Str = case finna of { + _ + "a" => finna + "nde" ; + _ => finna + "ende" -- gående; but bli - blivande must be given separately + } + in + mk7V finna finner finn fann funnit funnen finnande ; + + mk7V = \finna,finner,finn,fann,funnit,funnen,finnande -> let funn = ptPretForms funnen ; funnet = funn ! Strong (GSg Neutr) ! Nom ; funna = funn ! Strong GPl ! Nom in - mkVerb finna finner finn fann funnit funnen funnet funna ** + mkVerb9 finna finner finn fann funnit funnen funnet funna finnande ** {part = [] ; vtype=VAct ; lock_V = <>} ; regV leker = case leker of { @@ -720,6 +729,7 @@ oper mk3cA : (galen,galet,galna : Str) -> Bool -> A = \x,y,z,b -> lin A {s = (mk3A x y z).s ; isComp = b} ; + mk7V : (supa,super,sup,söp,supit,supen,supande : Str) -> V ; mk6V : (supa,super,sup,söp,supit,supen : Str) -> V ; regV : (talar : Str) -> V ; mk2V : (leka,lekte : Str) -> V ;