diff --git a/src/persian/CatPes.gf b/src/persian/CatPes.gf index 014b1c651..cf475fe51 100644 --- a/src/persian/CatPes.gf +++ b/src/persian/CatPes.gf @@ -18,7 +18,7 @@ concrete CatPes of Cat = CommonX - [Adv] ** open ResPes, Prelude in { vp : ResPes.VPHTense => Polarity => Order => Str ; c2 : ResPes.Compl } ; - Imp = {s : CPolarity => ImpForm => Str} ; + Imp = {s : Polarity => ImpForm => Str} ; ---- Question QCl = {s : ResPes.VPHTense => Polarity => QForm => Str} ; diff --git a/src/persian/PhrasePes.gf b/src/persian/PhrasePes.gf index 7e63d6c6b..e1edfc71a 100644 --- a/src/persian/PhrasePes.gf +++ b/src/persian/PhrasePes.gf @@ -4,9 +4,9 @@ concrete PhrasePes of Phrase = CatPes ** open Prelude, ResPes in { PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; UttQS qs = {s = qs.s ! QDir} ; - UttImpSg pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Sg False} ; - UttImpPl pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Pl False} ; - UttImpPol pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Sg True} ; + UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg False} ; + UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Pl False} ; + UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg True} ; UttS, UttIP, --- Acc also diff --git a/src/persian/ResPes.gf b/src/persian/ResPes.gf index 14fc1539f..671d12436 100644 --- a/src/persian/ResPes.gf +++ b/src/persian/ResPes.gf @@ -16,16 +16,12 @@ resource ResPes = MorphoPes ** open Prelude,Predef in { CardOrd = NCard | NOrd ; RAgr = RNoAg | RAg Agr ; - -- RCase = RC Number Case ; - - CPolarity = CPos - | CNeg Bool; -- contracted or not oper CN : Type = Noun ** { hasAdj : Bool ; -- to get the right form when CN is a predicate compl : Number => Str -- to make possessive suffix attach to the right word - -- dep. on Agr because of RelCN + -- dep. on Number because of RelCN } ; NP : Type = { @@ -56,16 +52,6 @@ resource ResPes = MorphoPes ** open Prelude,Predef in { cn2str : CN -> Str = \cn -> cn.s ! Sg ! Bare ++ cn.compl ! Sg ; - contrNeg : Bool -> Polarity -> CPolarity = \b,p -> case p of { - Pos => CPos ; - Neg => CNeg b - } ; - - cpol2pol : CPolarity -> Polarity = \cp -> case cp of { - CPos => Pos ; - _ => Neg - } ; - ----------------------- --- Verb Phrase ----------------------- diff --git a/src/persian/SentencePes.gf b/src/persian/SentencePes.gf index ade5cb56e..0938da99f 100644 --- a/src/persian/SentencePes.gf +++ b/src/persian/SentencePes.gf @@ -7,12 +7,11 @@ concrete SentencePes of Sentence = CatPes ** open Prelude, ResPes,Predef in { PredVP np vp = mkClause np vp ; - PredSCVP sc vp = mkSClause ("این" ++ sc.s) (defaultAgr) vp ; + PredSCVP sc vp = mkSClause ("این" ++ sc.s) defaultAgr vp ; ImpVP vp = { - s = \\cpol,n => + s = \\pol,n => let agr = Ag (numImp n) P2 ; - pol = cpol2pol cpol ; in case vp.wish of { True => vp.s ! VPImp pol (numImp n) ++ vp.ad ++ vp.comp ! agr ++ vp.obj.s ++ vp.vComp ! agr ++ vp.embComp; False => vp.ad ++ vp.comp ! agr ++ vp.obj.s ++ vp.vComp ! agr ++ vp.s ! VPImp pol (numImp n) ++ vp.embComp }