fix imperatives

This commit is contained in:
Krasimir Angelov
2026-04-11 16:28:55 +02:00
parent ae9b7d4d45
commit 6aeda22ed6
4 changed files with 19 additions and 6 deletions

View File

@@ -46,5 +46,6 @@ lincat IP = {s : Str; g : GenNum} ;
lincat IQuant = {s : GenNum => Str} ;
lincat IDet = {s : Gender => Str; n : Number} ;
lincat Subj = {s : Str} ;
lincat Imp = {s : Polarity => GenNum => Str} ;
}

View File

@@ -9,9 +9,9 @@ concrete PhraseMkd of Phrase = CatMkd ** open Prelude, ResMkd in {
lin UttCard c = {s = c.s} ;
lin UttIAdv i = {s = i.s} ;
lin UttIP ip = {s = ip.s} ;
lin UttImpPl p i = {s = p.s ++ i.s} ;
lin UttImpPol p i = {s = p.s ++ i.s} ;
lin UttImpSg p i = {s = p.s ++ i.s} ;
lin UttImpPl p i = {s = p.s ++ i.s ! p.p ! GPl} ;
lin UttImpPol p i = {s = p.s ++ i.s ! p.p ! GPl} ;
lin UttImpSg p i = {s = p.s ++ i.s ! p.p ! GSg Masc} ;
lin UttInterj i = i ;
lin UttNP np = {s = np.s ! RSubj} ;
lin UttQS s = s ;

View File

@@ -187,6 +187,12 @@ nnum2num : NNumber -> Number = \n ->
NCountable => Pl
} ;
genNum2num : GenNum -> Number = \gn ->
case gn of {
GSg _ => Sg ;
GPl => Pl
} ;
auxBe = {
present : Number => Person => Str
= table {

View File

@@ -1,12 +1,18 @@
concrete SentenceMkd of Sentence = CatMkd ** open Prelude,ResMkd in {
lin AdvImp a i = {s = a.s ++ i.s} ;
lin AdvImp a i = {s = \\p,gn => a.s ++ i.s ! p ! gn} ;
lin AdvS a s = {s = a.s ++ s.s} ;
lin AdvSlash c a = {s = c.s ++ a.s} ;
lin EmbedQS qs = {s = qs.s} ;
lin EmbedS s = {s = s.s} ;
lin EmbedVP vp = {s = vp.present ! Imperfective ! Sg ! P1} ;
lin EmbedVP vp = {s = vp.present ! Perfective ! Sg ! P1} ;
lin ExtAdvS a s = {s = a.s ++ s.s} ;
lin ImpVP vp = {s = vp.present ! Imperfective ! Sg ! P1} ;
lin ImpVP vp = {
s = \\p,gn=>case p of {
Pos => vp.imperative ! Perfective ! genNum2num gn ;
Neg => "не" ++ vp.imperative ! Imperfective ! genNum2num gn
} ++
vp.compl ! {g=gn; p=P2}
} ;
lin PredSCVP sc vp = {s = \\t,a,p,o => sc.s
++ vp.present ! Imperfective ! Sg ! P1} ;
lin PredVP np vp = {s = mkClause (np.s ! RSubj) np.a vp} ;