Files
gf-rgl/src/slovenian/VerbSlv.gf
T
2026-09-29 16:28:48 +02:00

110 lines
3.2 KiB
Plaintext

concrete VerbSlv of Verb = CatSlv ** open ResSlv, ParamX, ParadigmsSlv, Prelude in {
lin
UseV v =
{ s = \\p,vform => ne ! p ++ v.s ! vform ;
s2 = \\a => v.p ; ----AR: +p particle
isCop = False ;
refl = v.refl
} ;
ComplVV v vp = {
s = \\p,vf => ne ! p ++ v.s ! vf;
s2 = \\a => vp.s ! Pos ! VInf ++ vp.refl ++ vp.s2 ! a;
isCop=False; refl=[]
} ;
ComplVS v s = {
s = \\p,vf => ne ! p ++ v.s ! vf;
s2 = \\_ => v.p ++ "da" ++ s.s; isCop=False; refl=v.refl
} ;
ComplVQ v q = {
s = \\p,vf => ne ! p ++ v.s ! vf;
s2 = \\_ => q.s; isCop=False; refl=[]
} ;
ComplVA v ap = {
s = \\p,vf => ne ! p ++ v.s ! vf;
s2 = \\a => v.p ++ ap.s ! Indef ! inanimateGender a.g ! Nom ! a.n;
isCop=False; refl=v.refl
} ;
SlashV2a v =
{ s = \\p,vform => ne ! p ++ v.s ! vform ;
s2 = \\a => v.p ; ----AR: +p particle
c2 = v.c2 ;
isCop = False ;
refl = v.refl
} ;
SlashV2V v vp = {
s=\\p,vf => ne ! p ++ v.s ! vf;
s2=\\a => v.p ++ vp.s ! Pos ! VInf ++ vp.refl ++ vp.s2 ! a;
c2=mkPrep [] accusative; isCop=False; refl=v.refl
} ;
SlashV2S v s = {
s=\\p,vf => ne ! p ++ v.s ! vf; s2=\\_ => v.p ++ "da" ++ s.s;
c2=mkPrep [] accusative; isCop=False; refl=v.refl
} ;
SlashV2Q v q = {
s=\\p,vf => ne ! p ++ v.s ! vf; s2=\\_ => v.p ++ q.s;
c2=mkPrep [] accusative; isCop=False; refl=v.refl
} ;
SlashV2A v ap = {
s=\\p,vf => ne ! p ++ v.s ! vf;
s2=\\a => v.p ++ ap.s ! Indef ! inanimateGender a.g ! Acc ! a.n;
c2=mkPrep [] accusative; isCop=False; refl=v.refl
} ;
--Check these V3-slashes AE
Slash2V3 v np =
{ s = \\p,vform => ne ! p ++ v.s ! vform ;
s2 = \\_ => v.p ++ v.c2.s ++ np.s ! v.c2.c ;
c2 = v.c3 ;
isCop = False ;
refl = v.refl
} ;
Slash3V3 v np =
{ s = \\p,vform => ne ! p ++ v.s ! vform ;
s2 = \\_ => v.p ++ v.c3.s ++ np.s ! v.c3.c ;
c2 = v.c2 ;
isCop = False ;
refl = v.refl
} ;
ComplSlash vp np =
insertObj (\\_ => vp.c2.s ++ np.s ! vp.c2.c) vp;
ReflVP vp = {
s = \\vform => vp.s ! vform ; --? the compiler told me to cut the polarity from this function?
--s = \\p,vform => ne ! p ++ vp.s ! vform ;
s2 = \\a => vp.s2 ! a ;
isCop = False ;
refl = reflexive ! vp.c2.c
} ;
UseComp comp = {
s = copula ;
s2 = comp.s ;
isCop = True ;
refl = []
} ;
AdvVP vp adv = insertObj (\\_ => adv.s) vp ;
ExtAdvVP vp adv = AdvVP vp adv ;
AdVVP adv vp = vp ** {s2 = \\a => adv.s ++ vp.s2 ! a} ;
AdvVPSlash vp adv = vp ** {s2 = \\a => vp.s2 ! a ++ adv.s} ;
AdVVPSlash adv vp = vp ** {s2 = \\a => adv.s ++ vp.s2 ! a} ;
VPSlashPrep vp prep = vp ** {c2=prep} ;
CompAP ap = {
s = \\agr => ap.s ! Indef ! inanimateGender agr.g ! Nom ! agr.n
} ;
CompAdv adv = {s = \\agr => adv.s} ; ----AR
CompNP np = {s = \\agr => np.s ! Nom} ; ----AR
CompCN cn = {s = \\agr => cn.s ! Indef ! Nom ! agr.n} ;
UseCopula = {s=copula;s2=\\_=>[];isCop=True;refl=[]} ;
}