forked from GitHub/gf-core
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 ++
|
t.s ++ p.s ++
|
||||||
vps.fin ++ vps.inf ++
|
vps.fin ++ vps.inf ++
|
||||||
vp.s2 ! True ! p.p ! a ++
|
vp.s2 ! True ! p.p ! a ++
|
||||||
vp.adv ! p.p ++
|
vp.adv ++
|
||||||
vp.ext ;
|
vp.ext ;
|
||||||
sc = vp.sc ;
|
sc = vp.sc ;
|
||||||
} ;
|
} ;
|
||||||
@@ -248,14 +248,6 @@ concrete ExtraEst of ExtraEstAbs = CatEst **
|
|||||||
ClPlusWithObj c = c ;
|
ClPlusWithObj c = c ;
|
||||||
ClPlusWithAdv c = c ;
|
ClPlusWithAdv c = c ;
|
||||||
|
|
||||||
noPart = {s = []} ;
|
gi_Part = ss "gi" | ss "ki" ;
|
||||||
{-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" ;
|
|
||||||
-}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,5 @@ abstract ExtraEstAbs = Extra [
|
|||||||
ClPlusWithObj : ClPlusObj -> ClPlus ; -- to make non-fronted obj focusable
|
ClPlusWithObj : ClPlusObj -> ClPlus ; -- to make non-fronted obj focusable
|
||||||
ClPlusWithAdv : ClPlusAdv -> ClPlus ; -- to make non-fronted adv focusable
|
ClPlusWithAdv : ClPlusAdv -> ClPlus ; -- to make non-fronted adv focusable
|
||||||
|
|
||||||
noPart, han_Part, pa_Part, pas_Part, ko_Part, kos_Part,
|
gi_Part : Part ;
|
||||||
kohan_Part, pahan_Part : Part ;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ concrete IdiomEst of Idiom = CatEst **
|
|||||||
ImpersCl vp = mkClause noSubj (agrP3 Sg) vp ;
|
ImpersCl vp = mkClause noSubj (agrP3 Sg) vp ;
|
||||||
|
|
||||||
GenericCl vp = mkClause noSubj (agrP3 Sg) {
|
GenericCl vp = mkClause noSubj (agrP3 Sg) {
|
||||||
s = \\_ => vp.s ! VIPass ;
|
s = \\_ => vp.s ! VIPass Pres ;
|
||||||
s2 = vp.s2 ;
|
s2 = vp.s2 ;
|
||||||
adv = vp.adv ;
|
adv = vp.adv ;
|
||||||
p = vp.p ;
|
p = vp.p ;
|
||||||
@@ -65,7 +65,7 @@ concrete IdiomEst of Idiom = CatEst **
|
|||||||
-- The imperative is not available in a $VP$.
|
-- The imperative is not available in a $VP$.
|
||||||
|
|
||||||
ImpPl1 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
|
in
|
||||||
{s = vps.fin ++ vps.inf ++
|
{s = vps.fin ++ vps.inf ++
|
||||||
vp.s2 ! True ! Pos ! Ag Pl P1 ++ vp.p ++ vp.ext
|
vp.s2 ! True ! Pos ! Ag Pl P1 ++ vp.p ++ vp.ext
|
||||||
|
|||||||
@@ -85,10 +85,11 @@ param
|
|||||||
| Presn Number Person
|
| Presn Number Person
|
||||||
| Impf Number Person
|
| Impf Number Person
|
||||||
| Condit Number Person
|
| Condit Number Person
|
||||||
|
| ConditPass --loetagu
|
||||||
| Imper Number
|
| Imper Number
|
||||||
| ImperP3
|
| ImperP3
|
||||||
| ImperP1Pl
|
| ImperP1Pl
|
||||||
| ImpNegPl
|
| ImperPass
|
||||||
| PassPresn Bool
|
| PassPresn Bool
|
||||||
| PassImpf Bool
|
| PassImpf Bool
|
||||||
| Quotative Voice
|
| Quotative Voice
|
||||||
@@ -173,15 +174,15 @@ param
|
|||||||
VIForm =
|
VIForm =
|
||||||
VIFin Tense
|
VIFin Tense
|
||||||
| VIInf InfForm
|
| VIInf InfForm
|
||||||
| VIPass
|
| VIPass Tense
|
||||||
| VIImper
|
| VIImper
|
||||||
;
|
;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
VP = {
|
VP : Type = {
|
||||||
s : VIForm => Anteriority => Polarity => Agr => {fin, inf : Str} ;
|
s : VIForm => Anteriority => Polarity => Agr => {fin, inf : Str} ;
|
||||||
s2 : Bool => Polarity => Agr => Str ; -- raamat/raamatu/raamatut
|
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
|
p : Str ; --uninflecting component in multi-word verbs
|
||||||
ext : Str ;
|
ext : Str ;
|
||||||
sc : NPForm ;
|
sc : NPForm ;
|
||||||
@@ -193,23 +194,21 @@ oper
|
|||||||
agr = verbAgr agr0 ;
|
agr = verbAgr agr0 ;
|
||||||
verbs = verb.s ;
|
verbs = verb.s ;
|
||||||
part : Str = case vi of {
|
part : Str = case vi of {
|
||||||
VIPass => verbs ! (PastPart Pass) ;
|
VIPass _ => verbs ! (PastPart Pass) ;
|
||||||
_ => verbs ! (PastPart Act)
|
_ => verbs ! (PastPart Act)
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
eiv : Str = case agr of {
|
|
||||||
_ => "ei"
|
|
||||||
} ;
|
|
||||||
|
|
||||||
einegole : Str * Str * Str = case <vi,agr.n> of {
|
einegole : Str * Str * Str = case <vi,agr.n> of {
|
||||||
<VIFin Pres, _> => <eiv, verbs ! Imper Sg, "ole"> ;
|
<VIFin Pres, _> => <"ei", verbs ! Imper Sg, "ole"> ;
|
||||||
<VIFin Fut, _> => <eiv, verbs ! Imper Sg, "ole"> ;
|
<VIFin Fut, _> => <"ei", verbs ! Imper Sg, "ole"> ;
|
||||||
<VIFin Cond, _> => <eiv, verbs ! Condit Sg P3, "oleks"> ;
|
<VIFin Cond, _> => <"ei", verbs ! Condit Sg P3, "oleks"> ;
|
||||||
<VIFin Past, Sg> => <eiv, part, "olnud"> ;
|
<VIFin Past, _> => <"ei", part, "olnud"> ;
|
||||||
<VIFin Past, Pl> => <eiv, part, "olnud"> ;
|
|
||||||
<VIImper, Sg> => <"ära", verbs ! Imper Sg, "ole"> ;
|
<VIImper, Sg> => <"ära", verbs ! Imper Sg, "ole"> ;
|
||||||
<VIImper, Pl> => <"ärge", verbs ! ImpNegPl, "olge"> ;
|
<VIImper, Pl> => <"ärge", verbs ! Imper Pl, "olge"> ;
|
||||||
<VIPass, _> => <"ei", verbs ! PassPresn False, "ole"> ;
|
<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">
|
<VIInf i, _> => <"ei", verbs ! Inf i, "olla">
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -224,23 +223,27 @@ oper
|
|||||||
mkvf : VForm -> {fin, inf : Str} = \p -> case <ant,b> of {
|
mkvf : VForm -> {fin, inf : Str} = \p -> case <ant,b> of {
|
||||||
<Simul,Pos> => vf (verbs ! p) [] ;
|
<Simul,Pos> => vf (verbs ! p) [] ;
|
||||||
<Anter,Pos> => vf (olema ! p) part ;
|
<Anter,Pos> => vf (olema ! p) part ;
|
||||||
-- <Anter,Neg> => vf ei (ole ++ part) ;
|
<Simul,Neg> => vf (ei ++ neg) [] ;
|
||||||
-- <Simul,Neg> => vf ei neg
|
|
||||||
<Simul,Neg> => vf (ei ++ neg) [] ; --changed grouping from Fin
|
|
||||||
<Anter,Neg> => vf (ei ++ ole) part
|
<Anter,Neg> => vf (ei ++ ole) part
|
||||||
}
|
} ;
|
||||||
|
|
||||||
|
passPol = case b of {Pos => True ; Neg => False} ;
|
||||||
|
|
||||||
in case vi of {
|
in case vi of {
|
||||||
VIFin Past => mkvf (Impf agr.n agr.p) ;
|
VIFin Past => mkvf (Impf agr.n agr.p) ; --# notpresent
|
||||||
VIFin Cond => mkvf (Condit agr.n agr.p) ;
|
VIFin Cond => mkvf (Condit agr.n agr.p) ; --# notpresent
|
||||||
VIFin Fut => mkvf (Presn agr.n agr.p) ;
|
VIFin Fut => mkvf (Presn agr.n agr.p) ; --# notpresent
|
||||||
VIFin Pres => mkvf (Presn agr.n agr.p) ;
|
VIFin Pres => mkvf (Presn agr.n agr.p) ;
|
||||||
VIImper => mkvf (Imper agr.n) ;
|
VIImper => mkvf (Imper agr.n) ;
|
||||||
VIPass => mkvf (PassPresn True) ;
|
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)
|
VIInf i => mkvf (Inf i)
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
s2 = \\_,_,_ => [] ;
|
s2 = \\_,_,_ => [] ;
|
||||||
adv = \\_ => [] ;
|
adv = [] ;
|
||||||
ext = [] ; --relative clause
|
ext = [] ; --relative clause
|
||||||
p = verb.p ; --particle verbs
|
p = verb.p ; --particle verbs
|
||||||
sc = verb.sc
|
sc = verb.sc
|
||||||
@@ -264,12 +267,12 @@ oper
|
|||||||
sc = vp.sc ;
|
sc = vp.sc ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
insertAdv : (Polarity => Str) -> VP -> VP = \adv,vp -> {
|
insertAdv : Str -> VP -> VP = \adv,vp -> {
|
||||||
s = vp.s ;
|
s = vp.s ;
|
||||||
s2 = vp.s2 ;
|
s2 = vp.s2 ;
|
||||||
p = vp.p ;
|
p = vp.p ;
|
||||||
ext = vp.ext ;
|
ext = vp.ext ;
|
||||||
adv = \\b => vp.adv ! b ++ adv ! b ;
|
adv = vp.adv ++ adv ;
|
||||||
sc = vp.sc ;
|
sc = vp.sc ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -334,7 +337,7 @@ oper
|
|||||||
inf = verb.inf ;
|
inf = verb.inf ;
|
||||||
compl = vp.s2 ! agrfin.p2 ! b ! agr ;
|
compl = vp.s2 ! agrfin.p2 ! b ! agr ;
|
||||||
p = vp.p ;
|
p = vp.p ;
|
||||||
adv = vp.adv ! b ;
|
adv = vp.adv ;
|
||||||
ext = vp.ext ;
|
ext = vp.ext ;
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
@@ -390,7 +393,7 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
verb = vp.s ! VIInf vi ! Simul ! Pos ! agr ; -- no "ei"
|
verb = vp.s ! VIInf vi ! Simul ! Pos ! agr ; -- no "ei"
|
||||||
compl = vp.s2 ! fin ! pol ! agr ; -- but compl. case propagated
|
compl = vp.s2 ! fin ! pol ! agr ; -- but compl. case propagated
|
||||||
adv = vp.adv ! pol
|
adv = vp.adv
|
||||||
in
|
in
|
||||||
-- inverted word order; e.g.
|
-- inverted word order; e.g.
|
||||||
--sinust kunagi aru saada tahtnud rel. clause
|
--sinust kunagi aru saada tahtnud rel. clause
|
||||||
@@ -506,11 +509,12 @@ oper
|
|||||||
Condit Pl P1 => tule_ + "ksime" ; --# notpresent
|
Condit Pl P1 => tule_ + "ksime" ; --# notpresent
|
||||||
Condit Pl P2 => tule_ + "ksite" ; --# notpresent
|
Condit Pl P2 => tule_ + "ksite" ; --# notpresent
|
||||||
Condit Pl P3 => tule_ + "ksid" ; --# notpresent
|
Condit Pl P3 => tule_ + "ksid" ; --# notpresent
|
||||||
Imper Sg => tule_ ; -- tule
|
ConditPass => tuld_ + "aks" ; --# notpresent
|
||||||
Imper Pl => tulge ; -- tulge
|
Imper Sg => tule_ ; -- tule / ära tule
|
||||||
|
Imper Pl => tulge ; -- tulge / ärge tulge
|
||||||
ImperP3 => tulgu ; -- tulgu (ta/nad)
|
ImperP3 => tulgu ; -- tulgu (ta/nad)
|
||||||
ImperP1Pl => tulge + "m" ; -- tulgem
|
ImperP1Pl => tulge + "m" ; -- tulgem
|
||||||
ImpNegPl => tulge ; -- ärge tulge
|
ImperPass => tuld_ + "agu" ; --tuldagu
|
||||||
PassPresn True => tullakse ;
|
PassPresn True => tullakse ;
|
||||||
PassPresn False => tuld_ + "a" ; --da or ta
|
PassPresn False => tuld_ + "a" ; --da or ta
|
||||||
PassImpf True => tuld_ + "i" ; --di or ti
|
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)
|
infVP v.sc b a vp v.vi)
|
||||||
(predV v) ** {c2 = vp.c2} ;
|
(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 ;
|
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
|
_ => v.c2.c --rääkisin koerale -> koerale räägitakse
|
||||||
}
|
}
|
||||||
in {
|
in {
|
||||||
s = \\_ => vp.s ! VIPass ;
|
s = \\_ => vp.s ! VIPass Pres ;
|
||||||
s2 = \\_,_,_ => [] ;
|
s2 = \\_,_,_ => [] ;
|
||||||
adv = \\_ => [] ;
|
adv = [] ;
|
||||||
p = vp.p ;
|
p = vp.p ;
|
||||||
ext = vp.ext ;
|
ext = vp.ext ;
|
||||||
sc = subjCase -- koer valitakse ; koerale räägitakse
|
sc = subjCase -- koer valitakse ; koerale räägitakse
|
||||||
|
|||||||
Reference in New Issue
Block a user