From ae3ada90e911f9cf781e36341f200cba4d3854e7 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Tue, 30 Apr 2019 18:42:03 +0200 Subject: [PATCH] (Pes) Fix bug in creating subjunctive form in S --- src/persian/ResPes.gf | 26 +++++++++++++------------- src/persian/SentencePes.gf | 12 ++++++------ 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/persian/ResPes.gf b/src/persian/ResPes.gf index ad425a2f2..adec61dae 100644 --- a/src/persian/ResPes.gf +++ b/src/persian/ResPes.gf @@ -70,7 +70,7 @@ param VVType = NoVV | FullVV | DefVV ; VVForm = Indic | Subj ; ---| SubjPast ; -- TODO extend this to VV, VS and Subj VVTense = VVPres | VVPast VVForm ; - TAnt = TA Tense Anteriority ; + TAnt = Ind Tense Anteriority | Sub Anteriority ; oper @@ -78,10 +78,10 @@ oper -- قاتل نمی توانسته آنجا بوده باشد، چون او آن زمان در پاریس بوده -- The form is created in complVV, but not currently used in other functions. /IL ta2vvt : TAnt -> VVType -> VVTense = \ta,vvtype -> case ta of { - TA Pres Anter | - TA Past _ => VVPast Indic ; - TA Cond Simul => VVPres ; - TA Cond Anter => + Ind Pres Anter | + Ind Past _ => VVPast Indic ; + Ind Cond Simul => VVPres ; + Ind Cond Anter => case vvtype of { DefVV => VVPast Indic ; _ => VVPres } ; @@ -224,23 +224,23 @@ oper clTable : VPH -> (Agr => TAnt => Polarity => Str) = \vp -> \\agr,vt,pol => vp.prefix ++ case vt of { - TA Pres Simul => vp.s ! ImpPrefix pol ++ vp.s ! VAor pol agr ; -- for reg. verbs, VAor pol is invariant and negation comes in ImpPrefix. - TA Pres Anter => vp.s ! VPerf pol agr ; - TA Past Simul => vp.s ! VPast pol agr ; -- Past Simul: simple past - TA Past Anter | TA Cond _ => -- Past Anter & Cond _: continuous past + Ind Pres Simul => vp.s ! ImpPrefix pol ++ vp.s ! VAor pol agr ; -- for reg. verbs, VAor pol is invariant and negation comes in ImpPrefix. + Ind Pres Anter => vp.s ! VPerf pol agr ; + Ind Past Simul => vp.s ! VPast pol agr ; -- Past Simul: simple past + Ind Past Anter | Ind Cond _ => -- Past Anter & Cond _: continuous past case vp.vvtype of { DefVV => vp.s ! VPast pol agr ; _ => vp.s ! ImpPrefix pol ++ vp.s ! VPast Pos agr } ; - TA Fut Simul => + Ind Fut Simul => case vp.vvtype of { DefVV => vp.s ! ImpPrefix pol ++ vp.s ! VAor pol agr ; _ => futAux pol agr ++ vp.s ! PastStem } ; -- PastStem is, despite the name, used for future too. /IL - TA Fut Anter => + Ind Fut Anter => case vp.vvtype of { DefVV => vp.s ! VPerf pol agr ; - _ => futAux pol agr ++ vp.s ! PastStem - } + _ => futAux pol agr ++ vp.s ! PastStem } ; + Sub _ => vp.s ! VSubj pol agr -- TODO: anterior subjunctive ? } ; mkClause : NP -> VPH -> Clause = \np,vp -> diff --git a/src/persian/SentencePes.gf b/src/persian/SentencePes.gf index 7d667886b..91765aeea 100644 --- a/src/persian/SentencePes.gf +++ b/src/persian/SentencePes.gf @@ -43,22 +43,22 @@ concrete SentencePes of Sentence = CatPes ** open Prelude, ResPes,Predef in { UseCl temp p cl = { s = \\vvf => temp.s ++ p.s ++ case vvf of { - Indic => cl.s ! TA temp.t temp.a ! p.p ! ODir ; - Subj => cl.s ! TA Cond temp.a ! p.p ! ODir } + Indic => cl.s ! Ind temp.t temp.a ! p.p ! ODir ; + Subj => cl.s ! Sub temp.a ! p.p ! ODir } } ; - UseQCl temp p qcl = let vt = TA temp.t temp.a in { + UseQCl temp p qcl = let vt = Ind temp.t temp.a in { s = temp.s ++ p.s ++ qcl.s ! vt ! p.p ; } ; - UseRCl temp p rcl = let vt = TA temp.t temp.a in rcl ** { + UseRCl temp p rcl = let vt = Ind temp.t temp.a in rcl ** { s = \\a => temp.s ++ p.s ++ rcl.s ! vt ! p.p ! a } ; UseSlash temp p cls = cls ** { s = \\vvf => temp.s ++ p.s ++ cls.subj ++ case vvf of { - Indic => cls.vp ! TA temp.t temp.a ! p.p ! ODir ; - Subj => cls.vp ! TA Cond temp.a ! p.p ! ODir } + Indic => cls.vp ! Ind temp.t temp.a ! p.p ! ODir ; + Subj => cls.vp ! Sub temp.a ! p.p ! ODir } } ; AdvS a s = {s = \\vvf => a.s ++ s.s ! vvf} ;