From 5762461bea235c0f023aca3e79927a66627325eb Mon Sep 17 00:00:00 2001 From: Aarne Ranta Date: Fri, 2 Aug 2019 11:35:32 +0200 Subject: [PATCH] Icelandic: added VInf Middle, which was a missing form, as well as a constructor depV for deponent verbs, also matched by -st ending in one-place mkV --- src/icelandic/MorphoIce.gf | 17 ++++++++++++++++- src/icelandic/ParadigmsIce.gf | 8 +++++++- src/icelandic/ResIce.gf | 16 +++++++++------- 3 files changed, 32 insertions(+), 9 deletions(-) diff --git a/src/icelandic/MorphoIce.gf b/src/icelandic/MorphoIce.gf index cecea817..4efb5dcf 100644 --- a/src/icelandic/MorphoIce.gf +++ b/src/icelandic/MorphoIce.gf @@ -905,7 +905,7 @@ resource MorphoIce = ResIce ** open Prelude, (Predef=Predef), ResIce in { pastSub = mforms ! Subjunctive ! DPast in { s = table { - VInf => inf ; + VInf v => mkVoice v inf ; VPres v Indicative Sg p => persList (mkVoice v (presInd ! 0)) (mkVoice v (presInd ! 1)) (mkVoice v (presInd ! 2)) ! p; VPres v Indicative Pl p => persList (mkVoice v (presInd ! 3)) (mkVoice v (presInd ! 4)) (mkVoice v (presInd ! 5)) ! p; VPast v Indicative Sg p => persList (mkVoice v (pastInd ! 0)) (mkVoice v (pastInd ! 1)) (mkVoice v (pastInd ! 2)) ! p; @@ -933,6 +933,21 @@ resource MorphoIce = ResIce ** open Prelude, (Predef=Predef), ResIce in { sup =\\v => mkVoice v sup } ; +-- AR 2019-08-02: deponent verbs use the Middle voice everywhere, instead of Active +--- some forms may be inadequate, but they are in the table anyway + + deponentVerb : Verb -> Verb = \verb -> + verb ** { + s = table { + VInf _ => verb.s ! VInf Middle ; + VPres _ m n p => verb.s ! VPres Middle m n p ; + VPast _ m n p => verb.s ! VPast Middle m n p ; + VImp _ n => verb.s ! VImp Middle n ; + vf => verb.s ! vf + } ; + sup = \\v => verb.sup ! Middle ; + } ; + ---------------------- -- Noun Auxiliaries -- diff --git a/src/icelandic/ParadigmsIce.gf b/src/icelandic/ParadigmsIce.gf index cf0059b8..16e05392 100644 --- a/src/icelandic/ParadigmsIce.gf +++ b/src/icelandic/ParadigmsIce.gf @@ -403,7 +403,11 @@ resource ParadigmsIce = open mkV = overload { -- Given the infinitive - mkV : Str -> V = \telja -> mk1V telja; + mkV : Str -> V + = \telja -> case telja of { + otta + "st" => depV (mk1V otta) ; + _ => mk1V telja + } ; -- Given also the first person singular present tense indicative mood mkV : (_,_ : Str) -> V = \telja,tel -> mk2V telja tel ; @@ -434,6 +438,8 @@ resource ParadigmsIce = open weakSgMascNom weakSgMascAccDatGen weakSgFemNom weakSgFemAccDatGen weakSgNeut weakPl flogið) ; }; + depV : V -> V = \verb -> lin V (deponentVerb verb) ; + mk1V : Str -> V = \inf -> lin V (vForms2Verb inf (indsub1 inf) (impSg inf) (impPl inf) (presPart inf) (sup inf) (weakPP inf) (strongPP inf)) ; diff --git a/src/icelandic/ResIce.gf b/src/icelandic/ResIce.gf index 407e9fee..5ebe1ef4 100644 --- a/src/icelandic/ResIce.gf +++ b/src/icelandic/ResIce.gf @@ -41,12 +41,14 @@ resource ResIce = ParamX ** open Prelude in { PForm = PWeak Number Gender Case | PStrong Number Gender Case | PPres ; VForm = - VInf + VInf Voice -- AR 2019-08-02 added voice to enable Middle infinitives | VPres Voice Mood Number Person | VPast Voice Mood Number Person | VImp Voice Number ; + oper vInf = VInf Active ; -- AR 2019-08-02 +param VPForm = VPInf | VPImp | VPMood Tense Anteriority -- is this a describing name ? @@ -151,7 +153,7 @@ resource ResIce = ParamX ** open Prelude in { plFemNom,plFemAcc,plFemDat,plFemGen,plNeutNom,plNeutAcc,plNeutDat,plNeutGen, weakSgMascNom,weakSgMascAccDatGen,weakSgFemNom,weakSgFemAccDatGen,weakSgNeut,weakPl,flogið -> { s = table { - VInf => fljúga1 ; + VInf v => mkVoice v fljúga1 ; -- AR 2019-08-02 VPres v Indicative Sg P1 => mkVoice v flýg ; VPres v Indicative Sg P2 => mkVoice v flýgur2 ; VPres v Indicative Sg P3 => mkVoice v flýgur3 ; @@ -227,7 +229,7 @@ resource ResIce = ParamX ** open Prelude in { predV : Verb -> VP = \v -> { s = \\vpform,pol,agr => case vpform of { - VPInf => vf (v.s ! VInf) [] (negation pol) False ; + VPInf => vf (v.s ! vInf) [] (negation pol) False ; VPImp => vf (v.s ! VImp Active agr.n) [] (negation pol) False ; VPMood ten ant => vff v ten ant pol agr } ; @@ -268,13 +270,13 @@ resource ResIce = ParamX ** open Prelude in { -- hann hafði []/ekki sofið - he had/hadn't slept => vf (verbHave.s ! VPast Active Indicative agr.n agr.p) (v.sup ! Active) (negation pol) True ; -- hann mun []/ekki sofa - he will/won't sleep - => vf (verbWill.s ! VPres Active Indicative agr.n agr.p) (v.s ! VInf) (negation pol) True ; + => vf (verbWill.s ! VPres Active Indicative agr.n agr.p) (v.s ! vInf) (negation pol) True ; -- hann mun []/ekki hafa sofið - 'he will/won't have slept' - => vf (verbWill.s ! VPres Active Indicative agr.n agr.p) (verbHave.s ! VInf ++ v.sup ! Active) (negation pol) True ; + => vf (verbWill.s ! VPres Active Indicative agr.n agr.p) (verbHave.s ! vInf ++ v.sup ! Active) (negation pol) True ; -- hann myndi []/ekki sofa 'he would/wouldn't sleep' - => vf (verbWill.s ! VPast Active Subjunctive agr.n agr.p) (v.s ! VInf) (negation pol) True ; + => vf (verbWill.s ! VPast Active Subjunctive agr.n agr.p) (v.s ! vInf) (negation pol) True ; -- hann myndi []/ekki hafa sofið 'he would/wouldn't have slept' - => vf (verbWill.s ! VPast Active Subjunctive agr.n agr.p) (verbHave.s ! VInf ++ v.sup ! Active) (negation pol) True + => vf (verbWill.s ! VPast Active Subjunctive agr.n agr.p) (verbHave.s ! vInf ++ v.sup ! Active) (negation pol) True } ; -- Auxilary verbs --