From 653b8b08d60fcd56bc506a1c03162468da5bb2b5 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Tue, 29 Aug 2017 14:31:07 +0200 Subject: [PATCH] Add PresPart into VIForm --- src/estonian/ResEst.gf | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/src/estonian/ResEst.gf b/src/estonian/ResEst.gf index ea6755643..5165af8af 100644 --- a/src/estonian/ResEst.gf +++ b/src/estonian/ResEst.gf @@ -175,6 +175,7 @@ param VIFin Tense | VIInf InfForm | VIPass Tense + | VIPresPart | VIImper ; @@ -199,17 +200,18 @@ oper } ; einegole : Str * Str * Str = case of { - => <"ei", verbs ! Imper Sg, "ole"> ; - => <"ei", verbs ! Imper Sg, "ole"> ; - => <"ei", verbs ! Condit Sg P3, "oleks"> ; - => <"ei", part, "olnud"> ; - => <"ära", verbs ! Imper Sg, "ole"> ; - => <"ärge", verbs ! Imper Pl, "olge"> ; - => <"ei", verbs ! PassPresn False, "ole"> ; - => <"ei", verbs ! PassPresn False, "ole"> ; --# notpresent - => <"ei", verbs ! ConditPass, "oleks"> ; --# notpresent - => <"ei", verbs ! PassImpf False, "olnud"> ; --# notpresent - => <"ei", verbs ! Inf i, verbOlema.s ! Inf i> + => <"ei", verbs ! Imper Sg, "ole"> ; + => <"ei", verbs ! Imper Sg, "ole"> ; + => <"ei", verbs ! Condit Sg P3, "oleks"> ; + => <"ei", part, "olnud"> ; + => <"ära", verbs ! Imper Sg, "ole"> ; + => <"ärge", verbs ! Imper Pl, "olge"> ; + => <"ei", verbs ! PassPresn False, "ole"> ; + => <"ei", verbs ! PassPresn False, "ole"> ; --# notpresent + => <"ei", verbs ! ConditPass, "oleks"> ; --# notpresent + => <"ei", verbs ! PassImpf False, "olnud"> ; --# notpresent + => <"ei", verbs ! PresPart Act, "olev"> ; --# notpresent + => <"ei", verbs ! Inf i, verbOlema.s ! Inf i> } ; @@ -240,6 +242,7 @@ oper VIPass Past => mkvf (PassImpf passPol) ; --# notpresent VIPass Cond => mkvf (ConditPass) ; --# notpresent VIPass Fut => mkvf (PassPresn passPol) ; --# notpresent + VIPresPart => mkvf (PresPart Act) ; --# notpresent VIInf i => mkvf (Inf i) } ; @@ -370,14 +373,17 @@ oper subjForm : NP -> NPForm -> Polarity -> Str = \np,sc,b -> appCompl False b {s = [] ; c = sc ; isPre = True} np ; - infVP : NPForm -> Polarity -> Agr -> VP -> InfForm -> Str = - \sc,pol,agr,vp,vi -> + + infVP : NPForm -> Polarity -> Agr -> VP -> InfForm -> Str = infVPAnt Simul ; + + infVPAnt : Anteriority -> NPForm -> Polarity -> Agr -> VP -> InfForm -> Str = + \ant,sc,pol,agr,vp,vi -> let fin = case sc of { -- subject case NPCase Nom => True ; -- mina tahan joosta _ => False -- minul peab auto olema } ; - verb = vp.s ! VIInf vi ! Simul ! Pos ! agr ; -- no "ei" + verb = vp.s ! VIInf vi ! ant ! Pos ! agr ; -- no "ei" compl = vp.s2 ! fin ! pol ! agr ; -- but compl. case propagated adv = vp.adv in