mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 17:08:54 -06:00
Merge pull request #230 from inariksit/persian
Persian: imperatives, word order
This commit is contained in:
@@ -40,7 +40,7 @@ lin
|
||||
AdvIsNP adv np = mkClause (indeclNP adv.s ** {a = np.a}) (UseComp (CompNP np)) ;
|
||||
|
||||
-- : VP -> Adv ; -- by publishing the document
|
||||
ByVP vp = lin Adv {s = with_Prep.s ++ showVPH Inf defaultAgr vp} ;
|
||||
ByVP vp = lin Adv {s = with_Prep.s ++ showVPH' VO False VVPres Inf defaultAgr vp } ;
|
||||
|
||||
-- : VP -> Adv ; -- (in order) to publish the document
|
||||
InOrderToVP vp = lin Adv {s = for_Prep.s ++ showVPH PerfStem defaultAgr vp} ;
|
||||
|
||||
@@ -207,9 +207,9 @@ oper
|
||||
VSubj Pos agr => addBh (imperfectSuffixD agr kon) ;
|
||||
VSubj Neg agr => addN (imperfectSuffixD agr kon) ;
|
||||
VImp Pos Sg => addBh imp ;
|
||||
VImp Pos Pl => addBh imp + "ید" ;
|
||||
VImp Pos Pl => addBh kon + "ید" ;
|
||||
VImp Neg Sg => addN imp ;
|
||||
VImp Neg Pl => addN imp + "ید" } ;
|
||||
VImp Neg Pl => addN kon + "ید" } ;
|
||||
prefix = [] ;-- For compound verbs
|
||||
passive = Add ;
|
||||
} where {
|
||||
@@ -338,7 +338,15 @@ oper
|
||||
vf => beRegV.s ! vf }
|
||||
} where { beRegV = mkVerb "بودن" "باش" } ;
|
||||
|
||||
doVerb = mkVerb "کردن" "کن" ** {passive=Replace} ;
|
||||
doVerb : Verb = doRegV ** {s = table {
|
||||
VSubj pol agr => addN pol (imperfectSuffixD agr "کن") ;
|
||||
VImp Pos Sg => "کن" ;
|
||||
VImp Pos Pl => "کنید" ;
|
||||
VImp Neg Sg => "نکن" ;
|
||||
VImp Neg Pl => "نکنید" ;
|
||||
vf => doRegV.s ! vf } ;
|
||||
passive = Replace
|
||||
} where { doRegV = mkVerb "کردن" "کن" } ;
|
||||
|
||||
becomeVerb : Verb = mkVerb "شدن" "شو" ;
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ resource ResPes = MorphoPes ** open Prelude,Predef in {
|
||||
CardOrd = NCard | NOrd ;
|
||||
RAgr = RNoAg | RAg Agr ;
|
||||
RelPron = Ance | Ke ; -- https://en.wiktionary.org/wiki/%D8%A2%D9%86%DA%86%D9%87
|
||||
WordOrder = OV | VO ; -- for showVPH
|
||||
|
||||
oper
|
||||
CN : Type = Noun ** {
|
||||
@@ -102,18 +103,22 @@ oper
|
||||
} ;
|
||||
|
||||
showVPH = overload {
|
||||
showVPH : VerbForm -> Agr -> VPH -> Str = showVPH' False VVPres ;
|
||||
showVPH : VVTense -> VerbForm -> Agr -> VPH -> Str = showVPH' False
|
||||
showVPH : VerbForm -> Agr -> VPH -> Str = showVPH' OV False VVPres ;
|
||||
showVPH : VVTense -> VerbForm -> Agr -> VPH -> Str = showVPH' OV False
|
||||
} ;
|
||||
|
||||
showVPH' : Bool -> VVTense -> VerbForm -> Agr -> VPH -> Str =
|
||||
\showImpPref,ant,vf,agr,vp ->
|
||||
showVPH' : WordOrder -> Bool -> VVTense -> VerbForm -> Agr -> VPH -> Str =
|
||||
\wo,showImpPref,ant,vf,agr,vp ->
|
||||
let impPref = case showImpPref of {
|
||||
True => vp.s ! ImpPrefix Pos ;
|
||||
False => [] }
|
||||
in vp.ad ++ vp.comp ! agr ++ vp.obj
|
||||
++ vp.prefix ++ impPref ++ vp.s ! vf
|
||||
++ vp.vComp ! agr ! ant ++ vp.embComp ;
|
||||
in case wo of {
|
||||
OV => vp.ad ++ vp.comp ! agr ++ vp.obj
|
||||
++ vp.prefix ++ impPref ++ vp.s ! vf
|
||||
++ vp.vComp ! agr ! ant ++ vp.embComp ;
|
||||
VO => vp.prefix ++ vp.s ! vf ++ vp.ad
|
||||
++ vp.comp ! agr ++ vp.obj ++ impPref
|
||||
++ vp.vComp ! agr ! ant ++ vp.embComp } ;
|
||||
|
||||
Compl : Type = {s : Str ; ra : Str ; mod : Mod} ;
|
||||
|
||||
@@ -189,7 +194,7 @@ oper
|
||||
\\agr,ant => if_then_Str vv.isAux conjThat [] ++
|
||||
case <ant,vv.isDef,vv.compl> of {
|
||||
-- Auxiliaries with defective inflection: complement inflects in tense
|
||||
<VVPast Indic,True,> => showVPH' True VVPres (VPast Pos agr) agr vp ;
|
||||
<VVPast Indic,True,> => showVPH' OV True VVPres (VPast Pos agr) agr vp ;
|
||||
<VVPast Indic,_,_> => showVPH (VPast Pos agr) agr vp ;
|
||||
<VVPast Subj> => showVPH PerfStem agr vp ++ subjAux Pos agr ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user