mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
add two new parameters in Estonian verb: passive conditional and imperfect. Change bunch of other files to reflect the change.
This commit is contained in:
@@ -58,7 +58,7 @@ concrete ExtraEst of ExtraEstAbs = CatEst **
|
||||
t.s ++ p.s ++
|
||||
vps.fin ++ vps.inf ++
|
||||
vp.s2 ! True ! p.p ! a ++
|
||||
vp.adv ! p.p ++
|
||||
vp.adv ++
|
||||
vp.ext ;
|
||||
sc = vp.sc ;
|
||||
} ;
|
||||
@@ -248,14 +248,6 @@ concrete ExtraEst of ExtraEstAbs = CatEst **
|
||||
ClPlusWithObj c = c ;
|
||||
ClPlusWithAdv c = c ;
|
||||
|
||||
noPart = {s = []} ;
|
||||
{-han_Part = mkPart "han" "hän" ;
|
||||
pa_Part = mkPart "pa" "pä" ;
|
||||
pas_Part = mkPart "pas" "päs" ;
|
||||
ko_Part = mkPart "ko" "kö" ;
|
||||
kos_Part = mkPart "kos" "kös" ;
|
||||
kohan_Part = mkPart "kohan" "köhän" ;
|
||||
pahan_Part = mkPart "pahan" "pähän" ;
|
||||
-}
|
||||
gi_Part = ss "gi" | ss "ki" ;
|
||||
|
||||
}
|
||||
|
||||
@@ -63,7 +63,5 @@ abstract ExtraEstAbs = Extra [
|
||||
ClPlusWithObj : ClPlusObj -> ClPlus ; -- to make non-fronted obj focusable
|
||||
ClPlusWithAdv : ClPlusAdv -> ClPlus ; -- to make non-fronted adv focusable
|
||||
|
||||
noPart, han_Part, pa_Part, pas_Part, ko_Part, kos_Part,
|
||||
kohan_Part, pahan_Part : Part ;
|
||||
|
||||
gi_Part : Part ;
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ concrete IdiomEst of Idiom = CatEst **
|
||||
ImpersCl vp = mkClause noSubj (agrP3 Sg) vp ;
|
||||
|
||||
GenericCl vp = mkClause noSubj (agrP3 Sg) {
|
||||
s = \\_ => vp.s ! VIPass ;
|
||||
s = \\_ => vp.s ! VIPass Pres ;
|
||||
s2 = vp.s2 ;
|
||||
adv = vp.adv ;
|
||||
p = vp.p ;
|
||||
@@ -65,7 +65,7 @@ concrete IdiomEst of Idiom = CatEst **
|
||||
-- The imperative is not available in a $VP$.
|
||||
|
||||
ImpPl1 vp =
|
||||
let vps = vp.s ! VIPass ! Simul ! Pos ! Ag Pl P1
|
||||
let vps = vp.s ! VIPass Pres ! Simul ! Pos ! Ag Pl P1
|
||||
in
|
||||
{s = vps.fin ++ vps.inf ++
|
||||
vp.s2 ! True ! Pos ! Ag Pl P1 ++ vp.p ++ vp.ext
|
||||
|
||||
@@ -85,10 +85,11 @@ param
|
||||
| Presn Number Person
|
||||
| Impf Number Person
|
||||
| Condit Number Person
|
||||
| ConditPass --loetagu
|
||||
| Imper Number
|
||||
| ImperP3
|
||||
| ImperP1Pl
|
||||
| ImpNegPl
|
||||
| ImperPass
|
||||
| PassPresn Bool
|
||||
| PassImpf Bool
|
||||
| Quotative Voice
|
||||
@@ -173,15 +174,15 @@ param
|
||||
VIForm =
|
||||
VIFin Tense
|
||||
| VIInf InfForm
|
||||
| VIPass
|
||||
| VIPass Tense
|
||||
| VIImper
|
||||
;
|
||||
|
||||
oper
|
||||
VP = {
|
||||
VP : Type = {
|
||||
s : VIForm => Anteriority => Polarity => Agr => {fin, inf : Str} ;
|
||||
s2 : Bool => Polarity => Agr => Str ; -- raamat/raamatu/raamatut
|
||||
adv : Polarity => Str ; -- ainakin/ainakaan --TODO relevant for Est?
|
||||
adv : Str ;
|
||||
p : Str ; --uninflecting component in multi-word verbs
|
||||
ext : Str ;
|
||||
sc : NPForm ;
|
||||
@@ -193,23 +194,21 @@ oper
|
||||
agr = verbAgr agr0 ;
|
||||
verbs = verb.s ;
|
||||
part : Str = case vi of {
|
||||
VIPass => verbs ! (PastPart Pass) ;
|
||||
VIPass _ => verbs ! (PastPart Pass) ;
|
||||
_ => verbs ! (PastPart Act)
|
||||
} ;
|
||||
|
||||
eiv : Str = case agr of {
|
||||
_ => "ei"
|
||||
} ;
|
||||
|
||||
einegole : Str * Str * Str = case <vi,agr.n> of {
|
||||
<VIFin Pres, _> => <eiv, verbs ! Imper Sg, "ole"> ;
|
||||
<VIFin Fut, _> => <eiv, verbs ! Imper Sg, "ole"> ;
|
||||
<VIFin Cond, _> => <eiv, verbs ! Condit Sg P3, "oleks"> ;
|
||||
<VIFin Past, Sg> => <eiv, part, "olnud"> ;
|
||||
<VIFin Past, Pl> => <eiv, part, "olnud"> ;
|
||||
<VIFin Pres, _> => <"ei", verbs ! Imper Sg, "ole"> ;
|
||||
<VIFin Fut, _> => <"ei", verbs ! Imper Sg, "ole"> ;
|
||||
<VIFin Cond, _> => <"ei", verbs ! Condit Sg P3, "oleks"> ;
|
||||
<VIFin Past, _> => <"ei", part, "olnud"> ;
|
||||
<VIImper, Sg> => <"ära", verbs ! Imper Sg, "ole"> ;
|
||||
<VIImper, Pl> => <"ärge", verbs ! ImpNegPl, "olge"> ;
|
||||
<VIPass, _> => <"ei", verbs ! PassPresn False, "ole"> ;
|
||||
<VIImper, Pl> => <"ärge", verbs ! Imper Pl, "olge"> ;
|
||||
<VIPass Pres, _> => <"ei", verbs ! PassPresn False, "ole"> ;
|
||||
<VIPass Fut, _> => <"ei", verbs ! PassPresn False, "ole"> ; --# notpresent
|
||||
<VIPass Cond, _> => <"ei", verbs ! ConditPass, "oleks"> ; --# notpresent
|
||||
<VIPass Past, _> => <"ei", verbs ! PassImpf False, "olnud"> ; --# notpresent
|
||||
<VIInf i, _> => <"ei", verbs ! Inf i, "olla">
|
||||
} ;
|
||||
|
||||
@@ -224,23 +223,27 @@ oper
|
||||
mkvf : VForm -> {fin, inf : Str} = \p -> case <ant,b> of {
|
||||
<Simul,Pos> => vf (verbs ! p) [] ;
|
||||
<Anter,Pos> => vf (olema ! p) part ;
|
||||
-- <Anter,Neg> => vf ei (ole ++ part) ;
|
||||
-- <Simul,Neg> => vf ei neg
|
||||
<Simul,Neg> => vf (ei ++ neg) [] ; --changed grouping from Fin
|
||||
<Simul,Neg> => vf (ei ++ neg) [] ;
|
||||
<Anter,Neg> => vf (ei ++ ole) part
|
||||
}
|
||||
} ;
|
||||
|
||||
passPol = case b of {Pos => True ; Neg => False} ;
|
||||
|
||||
in case vi of {
|
||||
VIFin Past => mkvf (Impf agr.n agr.p) ;
|
||||
VIFin Cond => mkvf (Condit agr.n agr.p) ;
|
||||
VIFin Fut => mkvf (Presn agr.n agr.p) ;
|
||||
VIFin Pres => mkvf (Presn agr.n agr.p) ;
|
||||
VIImper => mkvf (Imper agr.n) ;
|
||||
VIPass => mkvf (PassPresn True) ;
|
||||
VIFin Past => mkvf (Impf agr.n agr.p) ; --# notpresent
|
||||
VIFin Cond => mkvf (Condit agr.n agr.p) ; --# notpresent
|
||||
VIFin Fut => mkvf (Presn agr.n agr.p) ; --# notpresent
|
||||
VIFin Pres => mkvf (Presn agr.n agr.p) ;
|
||||
VIImper => mkvf (Imper agr.n) ;
|
||||
VIPass Pres => mkvf (PassPresn passPol) ;
|
||||
VIPass Past => mkvf (PassImpf passPol) ; --# notpresent
|
||||
VIPass Cond => mkvf (ConditPass) ; --# notpresent
|
||||
VIPass Fut => mkvf (PassPresn passPol) ; --# notpresent
|
||||
VIInf i => mkvf (Inf i)
|
||||
} ;
|
||||
|
||||
s2 = \\_,_,_ => [] ;
|
||||
adv = \\_ => [] ;
|
||||
adv = [] ;
|
||||
ext = [] ; --relative clause
|
||||
p = verb.p ; --particle verbs
|
||||
sc = verb.sc
|
||||
@@ -264,12 +267,12 @@ oper
|
||||
sc = vp.sc ;
|
||||
} ;
|
||||
|
||||
insertAdv : (Polarity => Str) -> VP -> VP = \adv,vp -> {
|
||||
insertAdv : Str -> VP -> VP = \adv,vp -> {
|
||||
s = vp.s ;
|
||||
s2 = vp.s2 ;
|
||||
p = vp.p ;
|
||||
ext = vp.ext ;
|
||||
adv = \\b => vp.adv ! b ++ adv ! b ;
|
||||
adv = vp.adv ++ adv ;
|
||||
sc = vp.sc ;
|
||||
} ;
|
||||
|
||||
@@ -334,7 +337,7 @@ oper
|
||||
inf = verb.inf ;
|
||||
compl = vp.s2 ! agrfin.p2 ! b ! agr ;
|
||||
p = vp.p ;
|
||||
adv = vp.adv ! b ;
|
||||
adv = vp.adv ;
|
||||
ext = vp.ext ;
|
||||
}
|
||||
} ;
|
||||
@@ -390,7 +393,7 @@ oper
|
||||
} ;
|
||||
verb = vp.s ! VIInf vi ! Simul ! Pos ! agr ; -- no "ei"
|
||||
compl = vp.s2 ! fin ! pol ! agr ; -- but compl. case propagated
|
||||
adv = vp.adv ! pol
|
||||
adv = vp.adv
|
||||
in
|
||||
-- inverted word order; e.g.
|
||||
--sinust kunagi aru saada tahtnud rel. clause
|
||||
@@ -506,11 +509,12 @@ oper
|
||||
Condit Pl P1 => tule_ + "ksime" ; --# notpresent
|
||||
Condit Pl P2 => tule_ + "ksite" ; --# notpresent
|
||||
Condit Pl P3 => tule_ + "ksid" ; --# notpresent
|
||||
Imper Sg => tule_ ; -- tule
|
||||
Imper Pl => tulge ; -- tulge
|
||||
ConditPass => tuld_ + "aks" ; --# notpresent
|
||||
Imper Sg => tule_ ; -- tule / ära tule
|
||||
Imper Pl => tulge ; -- tulge / ärge tulge
|
||||
ImperP3 => tulgu ; -- tulgu (ta/nad)
|
||||
ImperP1Pl => tulge + "m" ; -- tulgem
|
||||
ImpNegPl => tulge ; -- ärge tulge
|
||||
ImperPass => tuld_ + "agu" ; --tuldagu
|
||||
PassPresn True => tullakse ;
|
||||
PassPresn False => tuld_ + "a" ; --da or ta
|
||||
PassImpf True => tuld_ + "i" ; --di or ti
|
||||
|
||||
@@ -73,9 +73,9 @@ concrete VerbEst of Verb = CatEst ** open Prelude, ResEst in {
|
||||
infVP v.sc b a vp v.vi)
|
||||
(predV v) ** {c2 = vp.c2} ;
|
||||
|
||||
AdvVP vp adv = insertAdv (\\_ => adv.s) vp ;
|
||||
AdvVP vp adv = insertAdv adv.s vp ;
|
||||
|
||||
AdVVP adv vp = insertAdv (\\_ => adv.s) vp ;
|
||||
AdVVP adv vp = insertAdv adv.s vp ;
|
||||
|
||||
ReflVP v = insertObjPre (\\fin,b,agr => appCompl fin b v.c2 (reflPron agr)) v ;
|
||||
|
||||
@@ -87,9 +87,9 @@ concrete VerbEst of Verb = CatEst ** open Prelude, ResEst in {
|
||||
_ => v.c2.c --rääkisin koerale -> koerale räägitakse
|
||||
}
|
||||
in {
|
||||
s = \\_ => vp.s ! VIPass ;
|
||||
s = \\_ => vp.s ! VIPass Pres ;
|
||||
s2 = \\_,_,_ => [] ;
|
||||
adv = \\_ => [] ;
|
||||
adv = [] ;
|
||||
p = vp.p ;
|
||||
ext = vp.ext ;
|
||||
sc = subjCase -- koer valitakse ; koerale räägitakse
|
||||
|
||||
Reference in New Issue
Block a user