mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 17:08:54 -06:00
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
This commit is contained in:
@@ -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 --
|
||||
|
||||
@@ -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)) ;
|
||||
|
||||
|
||||
@@ -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
|
||||
<Past,Anter> => 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
|
||||
<Fut,Simul> => vf (verbWill.s ! VPres Active Indicative agr.n agr.p) (v.s ! VInf) (negation pol) True ;
|
||||
<Fut,Simul> => 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'
|
||||
<Fut,Anter> => vf (verbWill.s ! VPres Active Indicative agr.n agr.p) (verbHave.s ! VInf ++ v.sup ! Active) (negation pol) True ;
|
||||
<Fut,Anter> => 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'
|
||||
<Cond,Simul> => vf (verbWill.s ! VPast Active Subjunctive agr.n agr.p) (v.s ! VInf) (negation pol) True ;
|
||||
<Cond,Simul> => 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'
|
||||
<Cond,Anter> => vf (verbWill.s ! VPast Active Subjunctive agr.n agr.p) (verbHave.s ! VInf ++ v.sup ! Active) (negation pol) True
|
||||
<Cond,Anter> => vf (verbWill.s ! VPast Active Subjunctive agr.n agr.p) (verbHave.s ! vInf ++ v.sup ! Active) (negation pol) True
|
||||
} ;
|
||||
|
||||
-- Auxilary verbs --
|
||||
|
||||
Reference in New Issue
Block a user