Fixed direct object negation cases

This commit is contained in:
Roman Suzi
2020-08-09 17:20:03 +03:00
parent f9467bffd3
commit 13ee63e25d
19 changed files with 386 additions and 106 deletions
+30 -11
View File
@@ -8,7 +8,11 @@ lin
-- : Temp -> Pol -> Cl -> S ; -- she had not slept - она не спала
UseCl temp pol cl = {
s : Mood => Str = \\m => temp.s ++ (R.verbEnvAgr cl.subj cl.adv cl.verb m temp.t cl.a pol) ++ cl.dep ++ cl.compl ;
s : Mood => Str = \\m =>
temp.s
++ (R.verbEnvAgr cl.subj cl.adv cl.verb m temp.t cl.a pol)
++ cl.dep
++ cl.compl ! pol.p ;
} ;
-- : Temp -> Pol -> RCl -> RS ; -- that had not slept
@@ -17,23 +21,27 @@ lin
let a : Agr = fromMaybe Agr (genNumAgrP3 gn) rcl.a in
temp.s
++ (R.verbEnvAgr (rcl.subj ! gn ! anim ! Nom) (rcl.adv ! (genNumAgrP3 gn)) rcl.verb Ind temp.t a pol)
++ rcl.dep ++ rcl.compl ! (genNumAgrP3 gn)
++ rcl.dep
++ rcl.compl ! pol.p ! (genNumAgrP3 gn)
} ;
-- : Temp -> Pol -> ClSlash -> SSlash ; -- (that) she had not seen
UseSlash temp pol cls = {
s : Mood => Str = \\m => temp.s
++ (R.verbEnvAgr cls.subj cls.adv cls.verb m temp.t cls.a pol) ++ cls.dep ++ cls.compl ;
s : Mood => Str = \\m =>
temp.s
++ (R.verbEnvAgr cls.subj cls.adv cls.verb m temp.t cls.a pol)
++ cls.dep
++ cls.compl ! pol.p ;
c=cls.c
} ;
-- : NP -> VPSlash -> ClSlash ; -- (whom) he sees
SlashVP np vps = {
subj=np.s ! Nom ; -- ????????
compl=vps.compl ! np.a ; -- ??
adv=vps.adv ! np.a ; -- ??
verb=vps.verb ;
dep=vps.dep ;
compl=\\p => vps.compl ! p ! np.a ; -- ??
a=np.a ;
c=vps.c
} ;
@@ -52,7 +60,7 @@ lin
-- NP -> VS -> SSlash -> ClSlash ; -- (whom) she says that he loves
SlashVS np vs ss = {
subj=np.s ! Nom ; -- ????????
compl=embedInCommas ("что" ++ ss.s ! Ind) ; -- ?? that?
compl=\\_ => embedInCommas ("что" ++ ss.s ! Ind) ; -- ?? that?
adv=[]; -- ??
verb=vs ;
dep=[] ;
@@ -75,7 +83,9 @@ lin
s = \\polarity, gn =>
let pol = case polarity of {Neg => PNeg; Pos => PPos} in
let a = Ag gn P2 in
(R.verbEnvAgr "" "" vp.verb Imperative Pres a pol) ++ vp.adv ! a ++ vp.compl ! a
(R.verbEnvAgr "" "" vp.verb Imperative Pres a pol)
++ vp.adv ! a
++ vp.compl ! pol.p ! a
} ;
-- : NP -> VP -> Cl ; -- John walks - Иван гуляет
@@ -84,7 +94,7 @@ lin
adv=vp.adv ! np.a ;
verb=vp.verb ;
dep=vp.dep ;
compl=vp.compl ! np.a ;
compl=\\p => vp.compl ! p ! np.a ;
a=np.a
} ;
@@ -94,7 +104,7 @@ lin
adv=vp.adv ! (Ag (GSg Neut) P3) ; -- ???
verb=vp.verb ;
dep=vp.dep ;
compl=vp.compl ! Ag (GSg Neut) P3 ; -- ???
compl=\\p => vp.compl ! p ! Ag (GSg Neut) P3 ; -- ???
a=Ag (GSg Neut) P3 -- ???
} ;
@@ -103,14 +113,23 @@ lin
-- : Temp -> Pol -> QCl -> QS ; -- who had not slept
UseQCl temp pol cl = {
s = \\qf => temp.s ++ (R.verbEnvAgr cl.subj cl.adv cl.verb Ind temp.t cl.a pol) ++ cl.dep ++ cl.compl
s = \\qf =>
temp.s
++ (R.verbEnvAgr cl.subj cl.adv cl.verb Ind temp.t cl.a pol)
++ cl.dep
++ cl.compl ! pol.p
} ;
-- : QS -> SC ; -- who goes
EmbedQS qs = {s = qs.s ! QIndir} ;
-- : VP -> SC ; -- to go
EmbedVP vp = {s=vp.adv ! Ag (GSg Neut) P3 ++ (R.verbInf vp.verb) ++ vp.dep ++ vp.compl ! Ag (GSg Neut) P3} ;
EmbedVP vp = {
s=vp.adv ! Ag (GSg Neut) P3
++ (R.verbInf vp.verb)
++ vp.dep
++ vp.compl ! Pos ! Ag (GSg Neut) P3 -- ???
} ;
-- : S -> RS -> S ; -- she sleeps, which is good
RelS s rs = {