use the reflexive clitic when ReflPron is used directly

This commit is contained in:
Krasimir Angelov
2023-11-04 21:16:42 +01:00
parent c5e62b1614
commit 1d5b9d49e2

View File

@@ -183,22 +183,31 @@ lin
ComplSlashPartLast = ComplSlash ; ComplSlashPartLast = ComplSlash ;
lincat lincat
RNP = {s : Role => Str; gn : GenNum} ; RNP = {s : Role => Str; gn : GenNum; isPron : Bool} ;
lin lin
ReflRNP slash rnp = { ReflRNP slash rnp = {
s = slash.s ; s = slash.s ;
ad = slash.ad ; ad = slash.ad ;
clitics = slash.clitics ; clitics = slash.clitics ;
compl = \\a => slash.compl1 ! a ++ slash.c2.s ++ rnp.s ! RObj slash.c2.c ++ slash.compl2 ! agrP3 rnp.gn ; compl = \\a => slash.compl1 ! a ++ slash.c2.s ++
vtype = slash.vtype ; case <rnp.isPron, slash.c2.c> of {
<True, Acc | Dat> => [] ;
_ => rnp.s ! RObj slash.c2.c
} ++
slash.compl2 ! agrP3 rnp.gn ;
vtype = case <rnp.isPron, slash.c2.c> of {
<True, Acc | Dat> => VMedial slash.c2.c ;
_ => slash.vtype
} ;
p = slash.p ; p = slash.p ;
isSimple = False isSimple = False
} ; } ;
ReflPron = ReflPron =
{ s = \\role => "себе си"; { s = \\role => "себе си";
gn = GSg Masc gn = GSg Masc;
isPron = True
} ; } ;
ReflPoss num cn = ReflPoss num cn =
@@ -219,15 +228,17 @@ lin
RObj c => linCase c Pos ++ s; RObj c => linCase c Pos ++ s;
_ => s _ => s
} ; } ;
gn = gennum cn.g (numnnum num.nn) gn = gennum cn.g (numnnum num.nn) ;
isPron = False
} ; } ;
PredetRNP pred rnp = { PredetRNP pred rnp = {
s = \\c => pred.s ! rnp.gn ++ rnp.s ! c ; s = \\c => pred.s ! rnp.gn ++ rnp.s ! c ;
gn = rnp.gn gn = rnp.gn ;
isPron = False
} ; } ;
AdvRNP np prep rnp = {s = \\role => np.s ! role ++ prep.s ++ rnp.s ! RObj prep.c; gn = np.gn; p = np.p} ; AdvRNP np prep rnp = {s = \\role => np.s ! role ++ prep.s ++ rnp.s ! RObj prep.c; gn = np.gn; p = np.p; isPron = False} ;
AdvRVP vp prep rnp = insertObj (\\a => prep.s ++ rnp.s ! RObj prep.c) Pos vp ; AdvRVP vp prep rnp = insertObj (\\a => prep.s ++ rnp.s ! RObj prep.c) Pos vp ;
AdvRAP ap prep rnp = { AdvRAP ap prep rnp = {
s = \\aform,p => ap.s ! aform ! p ++ prep.s ++ rnp.s ! RObj prep.c ; s = \\aform,p => ap.s ! aform ! p ++ prep.s ++ rnp.s ! RObj prep.c ;