lindef and linref in the Bulgarian grammar

This commit is contained in:
kr.angelov
2013-11-01 09:02:20 +00:00
parent b05f61e6c6
commit 1bd9778953
2 changed files with 58 additions and 0 deletions

View File

@@ -87,4 +87,50 @@ concrete CatBul of Cat = CommonX - [IAdv,CAdv] ** open ResBul, Prelude, Predef,
N2 = {s : NForm => Str; g : AGender} ** {c2 : Preposition} ;
N3 = {s : NForm => Str; g : AGender} ** {c2,c3 : Preposition} ;
PN = {s : Str; g : Gender} ;
lindef
SSlash = \s -> {s = \\_ => s; c2 = {s=""; c=Acc}};
ClSlash = \s -> {s = \\_,_,_,_,_ => s; c2 = {s=""; c=Acc}};
VP = \s -> predV {s = \\_,_ => s; vtype = VNormal};
VPSlash = \s -> slashV {s = \\_,_ => s; vtype = VNormal} {s=""; c=Acc};
V, VS, VQ, VA = \s -> {s = \\_,_ => s; vtype = VNormal};
V2, V2A = \s -> {s = \\_,_ => s; vtype = VNormal; c2 = {s=""; c=Acc}};
V2V, V2S, V2Q = \s -> {s = \\_,_ => s; vtype = VNormal; c2,c3 = {s=""; c=Acc}};
V3 = \s -> {s = \\_,_ => s; vtype = VNormal; c2,c3 = {s=""; c=Acc}};
VV = \s -> {s = \\_,_ => s; vtype = VNormal; typ = VVInf};
A = \s -> {s = \\_ => s; adv = s};
A2 = \s -> {s = \\_ => s; adv = s; c2 = ""};
N = \s -> {s = \\_ => s; rel = \\_ => s; g = AMasc NonHuman};
N2 = \s -> {s = \\_ => s; g = AMasc NonHuman; c2 = {s=""; c=Acc}};
N3 = \s -> {s = \\_ => s; g = AMasc NonHuman; c2,c3 = {s=""; c=Acc}};
linref
SSlash = \ss -> ss.s ! agrP3 (GSg Masc) ++ ss.c2.s;
ClSlash = \cl -> cl.s ! agrP3 (GSg Masc) ! Pres ! Simul ! Pos ! Main ++ cl.c2.s;
VP = \vp -> linrefVP vp;
VPSlash = \vps -> let vp : ResBul.VP
= {s = vps.s ;
ad = vps.ad ;
compl = \\a => vps.compl1 ! a ++ vps.c2.s ++ vps.compl2 ! a ;
vtype = vps.vtype
}
in linrefVP vp;
V, VS, VQ, VA = \v -> linrefVP (predV v);
V2, V2A = \v -> linrefVP (predV v) ++ v.c2.s;
V2V, V2S, V2Q = \v -> linrefVP (predV v) ++ v.c2.s ++ v.c3.s;
V3 = \v -> linrefVP (predV v) ++ v.c2.s ++ v.c3.s;
VV = \v -> linrefVP (predV v);
A = \a -> a.s ! ASg Masc Indef;
A2 = \a -> a.s ! ASg Masc Indef ++ a.c2;
N = \n -> n.s ! NF Sg Indef;
N2 = \n -> n.s ! NF Sg Indef ++ n.c2.s;
N3 = \n -> n.s ! NF Sg Indef ++ n.c2.s ++ n.c3.s;
}

View File

@@ -494,6 +494,18 @@ resource ResBul = ParamX ** open Prelude, Predef in {
} ++
vp.compl ! agr ;
linrefVP : VP -> Str =
\vp ->
let agr = {gn = GSg Neut; p = P1};
clitic = case vp.vtype of {
VNormal => {s=[]; agr=agr} ;
VMedial c => {s=reflClitics ! c; agr=agr} ;
VPhrasal c => {s=personalClitics ! c ! agr.gn ! agr.p; agr={gn=GSg Neut; p=P3}}
} ;
in vp.ad.s ++
vp.s ! Imperf ! VPres (numGenNum clitic.agr.gn) clitic.agr.p ++ clitic.s ++
vp.compl ! agr ;
gerund : VP -> Aspect => Agr => Str =
\vp -> \\asp,agr =>
let clitic = case vp.vtype of {