mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 08:58:55 -06:00
fix imperatives
This commit is contained in:
@@ -46,5 +46,6 @@ lincat IP = {s : Str; g : GenNum} ;
|
|||||||
lincat IQuant = {s : GenNum => Str} ;
|
lincat IQuant = {s : GenNum => Str} ;
|
||||||
lincat IDet = {s : Gender => Str; n : Number} ;
|
lincat IDet = {s : Gender => Str; n : Number} ;
|
||||||
lincat Subj = {s : Str} ;
|
lincat Subj = {s : Str} ;
|
||||||
|
lincat Imp = {s : Polarity => GenNum => Str} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ concrete PhraseMkd of Phrase = CatMkd ** open Prelude, ResMkd in {
|
|||||||
lin UttCard c = {s = c.s} ;
|
lin UttCard c = {s = c.s} ;
|
||||||
lin UttIAdv i = {s = i.s} ;
|
lin UttIAdv i = {s = i.s} ;
|
||||||
lin UttIP ip = {s = ip.s} ;
|
lin UttIP ip = {s = ip.s} ;
|
||||||
lin UttImpPl 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} ;
|
lin UttImpPol p i = {s = p.s ++ i.s ! p.p ! GPl} ;
|
||||||
lin UttImpSg p i = {s = p.s ++ i.s} ;
|
lin UttImpSg p i = {s = p.s ++ i.s ! p.p ! GSg Masc} ;
|
||||||
lin UttInterj i = i ;
|
lin UttInterj i = i ;
|
||||||
lin UttNP np = {s = np.s ! RSubj} ;
|
lin UttNP np = {s = np.s ! RSubj} ;
|
||||||
lin UttQS s = s ;
|
lin UttQS s = s ;
|
||||||
|
|||||||
@@ -187,6 +187,12 @@ nnum2num : NNumber -> Number = \n ->
|
|||||||
NCountable => Pl
|
NCountable => Pl
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
genNum2num : GenNum -> Number = \gn ->
|
||||||
|
case gn of {
|
||||||
|
GSg _ => Sg ;
|
||||||
|
GPl => Pl
|
||||||
|
} ;
|
||||||
|
|
||||||
auxBe = {
|
auxBe = {
|
||||||
present : Number => Person => Str
|
present : Number => Person => Str
|
||||||
= table {
|
= table {
|
||||||
|
|||||||
@@ -1,12 +1,18 @@
|
|||||||
concrete SentenceMkd of Sentence = CatMkd ** open Prelude,ResMkd in {
|
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 AdvS a s = {s = a.s ++ s.s} ;
|
||||||
lin AdvSlash c a = {s = c.s ++ a.s} ;
|
lin AdvSlash c a = {s = c.s ++ a.s} ;
|
||||||
lin EmbedQS qs = {s = qs.s} ;
|
lin EmbedQS qs = {s = qs.s} ;
|
||||||
lin EmbedS s = {s = s.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 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
|
lin PredSCVP sc vp = {s = \\t,a,p,o => sc.s
|
||||||
++ vp.present ! Imperfective ! Sg ! P1} ;
|
++ vp.present ! Imperfective ! Sg ! P1} ;
|
||||||
lin PredVP np vp = {s = mkClause (np.s ! RSubj) np.a vp} ;
|
lin PredVP np vp = {s = mkClause (np.s ! RSubj) np.a vp} ;
|
||||||
|
|||||||
Reference in New Issue
Block a user