mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
lindef and linref in the Bulgarian grammar
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user