mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 01:18:57 -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
|
pastSub = mforms ! Subjunctive ! DPast
|
||||||
in {
|
in {
|
||||||
s = table {
|
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 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;
|
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;
|
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
|
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 --
|
-- Noun Auxiliaries --
|
||||||
|
|||||||
@@ -403,7 +403,11 @@ resource ParadigmsIce = open
|
|||||||
mkV = overload {
|
mkV = overload {
|
||||||
|
|
||||||
-- Given the infinitive
|
-- 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
|
-- Given also the first person singular present tense indicative mood
|
||||||
mkV : (_,_ : Str) -> V = \telja,tel -> mk2V telja tel ;
|
mkV : (_,_ : Str) -> V = \telja,tel -> mk2V telja tel ;
|
||||||
@@ -434,6 +438,8 @@ resource ParadigmsIce = open
|
|||||||
weakSgMascNom weakSgMascAccDatGen weakSgFemNom weakSgFemAccDatGen weakSgNeut weakPl flogið) ;
|
weakSgMascNom weakSgMascAccDatGen weakSgFemNom weakSgFemAccDatGen weakSgNeut weakPl flogið) ;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
depV : V -> V = \verb -> lin V (deponentVerb verb) ;
|
||||||
|
|
||||||
mk1V : Str -> V = \inf ->
|
mk1V : Str -> V = \inf ->
|
||||||
lin V (vForms2Verb inf (indsub1 inf) (impSg inf) (impPl inf) (presPart inf) (sup inf) (weakPP inf) (strongPP 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 ;
|
PForm = PWeak Number Gender Case | PStrong Number Gender Case | PPres ;
|
||||||
|
|
||||||
VForm =
|
VForm =
|
||||||
VInf
|
VInf Voice -- AR 2019-08-02 added voice to enable Middle infinitives
|
||||||
| VPres Voice Mood Number Person
|
| VPres Voice Mood Number Person
|
||||||
| VPast Voice Mood Number Person
|
| VPast Voice Mood Number Person
|
||||||
| VImp Voice Number
|
| VImp Voice Number
|
||||||
;
|
;
|
||||||
|
oper vInf = VInf Active ; -- AR 2019-08-02
|
||||||
|
|
||||||
|
param
|
||||||
VPForm = VPInf
|
VPForm = VPInf
|
||||||
| VPImp
|
| VPImp
|
||||||
| VPMood Tense Anteriority -- is this a describing name ?
|
| 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,
|
plFemNom,plFemAcc,plFemDat,plFemGen,plNeutNom,plNeutAcc,plNeutDat,plNeutGen,
|
||||||
weakSgMascNom,weakSgMascAccDatGen,weakSgFemNom,weakSgFemAccDatGen,weakSgNeut,weakPl,flogið -> {
|
weakSgMascNom,weakSgMascAccDatGen,weakSgFemNom,weakSgFemAccDatGen,weakSgNeut,weakPl,flogið -> {
|
||||||
s = table {
|
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 P1 => mkVoice v flýg ;
|
||||||
VPres v Indicative Sg P2 => mkVoice v flýgur2 ;
|
VPres v Indicative Sg P2 => mkVoice v flýgur2 ;
|
||||||
VPres v Indicative Sg P3 => mkVoice v flýgur3 ;
|
VPres v Indicative Sg P3 => mkVoice v flýgur3 ;
|
||||||
@@ -227,7 +229,7 @@ resource ResIce = ParamX ** open Prelude in {
|
|||||||
|
|
||||||
predV : Verb -> VP = \v -> {
|
predV : Verb -> VP = \v -> {
|
||||||
s = \\vpform,pol,agr => case vpform of {
|
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 ;
|
VPImp => vf (v.s ! VImp Active agr.n) [] (negation pol) False ;
|
||||||
VPMood ten ant => vff v ten ant pol agr
|
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
|
-- 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 ;
|
<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
|
-- 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'
|
-- 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'
|
-- 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'
|
-- 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 --
|
-- Auxilary verbs --
|
||||||
|
|||||||
Reference in New Issue
Block a user