concrete StructuralPes of Structural = CatPes ** open MorphoPes, ParadigmsPes, Prelude, NounPes, (R=ResPes) in { flags optimize=all ; coding = utf8; lin above_Prep = ss "بالای" ; after_Prep = ss ["بعد از"] ; all_Predet = ss ["همه ی"] ; almost_AdA, almost_AdN = ss "تقریباً" ; although_Subj = ss ["با وجود این"] ; always_AdV = ss "همیشه" ; and_Conj = sd2 [] "و" ** {n = Pl} ; because_Subj = ss ["برای این"] ; before_Prep = ss ["قبل از"] ; behind_Prep = ss "پشت" ; between_Prep = ss "بین" ; both7and_DConj = sd2 "هم" ["و هم"] ** {n = Pl} ; but_PConj = ss "اما" ; by8agent_Prep = ss "توسط" ; by8means_Prep = ss "با" ; -- can8know_VV,can_VV = mkV "سکن" ** { isAux = True} ; can_VV = mkV_1 " توانستن " ** { isAux = True} ; ---- AR during_Prep = ss ["در طول"] ; either7or_DConj = sd2 "یا" "یا" ** {n = Sg} ; -- everybody_NP = MassNP (UseN (MorphoPnb.mkN11 ["هر کwی"])); -- not a good way coz need to include NounPnb every_Det = mkDet "هر" Sg ; -- everything_NP = MassNP (UseN (MorphoPnb.mkN11 ["هر XE"])); everywhere_Adv = ss ["هر جا"] ; few_Det = mkDet ["تعداد کمی"] Pl True; -- check -- first_Ord = {s = "اولین" ; n = Sg} ; --DEPRECATED for_Prep = ss "برای" ; from_Prep = ss "از" ; he_Pron = personalPN "او" Sg PPers3 ; here_Adv = ss "اینجا" ; here7to_Adv = ss "اینجا" ; here7from_Adv = ss "اینجا" ; how_IAdv = ss "چطور" ; how8many_IDet = {s = "چند" ; n = Pl ; isNum = True} ; how8much_IAdv = ss "چقدر" ; if_Subj = ss "اگر" ; in8front_Prep = ss "جلوی" ; i_Pron = personalPN "من" Sg PPers1; in_Prep = ss "در" ; it_Pron = personalPN "آن" Sg PPers3; less_CAdv = {s = "کمتر" ; p = ""} ; many_Det = mkDet ["تعداد زیادی"] Pl True; -- check more_CAdv = {s = "بیشتر" ; p = "" } ; most_Predet = ss "اکثر"; much_Det = mkDet ["مقدار زیادی"] Pl ; must_VV = invarV " بایستن " ** {isAux = True} ; ---- AR -- must_VV = { -- s = table { -- VVF VInf => ["هوe تْ"] ; -- VVF VPres => "مست" ; -- VVF VPPart => ["هد تْ"] ; -- VVF VPresPart => ["هونگ تْ"] ; -- VVF VPast => ["هد تْ"] ; --# notpresent -- VVPastNeg => ["هدn'ت تْ"] ; --# notpresent -- VVPresNeg => "مستn'ت" -- } ; -- isAux = True -- } ; -----b no_Phr = ss "نْ" ; no_Utt = ss "نه" ; on_Prep = ss "روی" ; -- one_Quant = demoPN "یک" ; -- DEPRECATED only_Predet = ss "فقط" ; or_Conj = sd2 [] "یا" ** {n = Sg} ; otherwise_PConj = ss ["درغیراین صورت"] ; part_Prep = ss "از" ; -- the object following it should be in Ezafa form please_Voc = ss "لطفاً" ; possess_Prep = ss "" ; -- will be handeled in Ezafeh quite_Adv = ss "کاملاً" ; she_Pron = personalPN "او" Sg PPers3 ; so_AdA = ss "بسیار" ; -- somebody_NP = MassNP (UseN (MorphoPnb.mkN11 "کwی" )); someSg_Det = mkDet "مقداری" Sg True ; somePl_Det = mkDet "چند" Pl True ; -- something_NP = MassNP (UseN (MorphoPnb.mkN11 "چیزی")); somewhere_Adv = ss "جایی" ; that_Quant = mkQuant "آن" "آن"; that_Subj = ss "آن"; there_Adv = ss "آنجا" ; there7to_Adv = ss "آنجا" ; there7from_Adv = ss "آنجا" ; therefore_PConj = ss ["به همین دلیل"] ; they_Pron = personalPN ["آن ها"] Pl PPers3 ; this_Quant = mkQuant "این" "این" ; through_Prep = ss ["از طریق"] ; too_AdA = ss "خیلی" ; to_Prep = ss "به" ** {lock_Prep = <>}; under_Prep = ss "زیر" ** {lock_Prep = <>}; very_AdA = ss "خیلی" ; want_VV = mkV "خواستن" "خواه" ** { isAux = False} ; we_Pron = personalPN "ما" Pl PPers1 ; whatSg_IP = {s = ["چه چیزی"] ; n = Sg } ; whatPl_IP = {s = ["چه چیزهایی"] ; n = Pl } ; when_IAdv = ss "کی" ; when_Subj = ss "وقتی" ; where_IAdv = ss "کجا" ; which_IQuant = {s = "کدام" ; n = Sg} ; whichPl_IDet = {s = "کدام" ; n = Pl ; isNum = False} ; whichSg_IDet = { s = "کدام" ; n = Sg ; isNum = False} ; whoSg_IP = {s = ["چه کسی"] ; n = Sg} ; whoPl_IP = {s = ["چه کسانی"] ;n = Pl} ; why_IAdv = ss "چرا" ; without_Prep = ss "بدون" ; with_Prep = ss "با"; -- yes_Phr = ss "بله" ; yes_Utt = ss "بله" ; youSg_Pron = personalPN "تو" Sg PPers2 ; youPl_Pron = personalPN "شما" Pl PPers2 ; youPol_Pron = personalPN "شما" Pl PPers2 ; -- no_Quant = demoPN "هیچ" ; not_Predet = {s="نه"} ; if_then_Conj = sd2 "اگر" "آنگاه" ** {n = Sg} ; at_least_AdN = ss "حداقل" ; at_most_AdN = ss "حداکثر"; -- nothing_NP = MassNP (UseN (MorphoPnb.mkN11 "هیچ چیز" )); except_Prep = ss ["به جز"] ; -- nobody_NP = MassNP (UseN (MorphoPnb.mkN11 "هیچ کس")); as_CAdv = {s = ["به اندازه ی"] ; p = ""} ; ---- have_V2 = mkV2 (mkV "داشتن" "دار") "را" ; language_title_Utt = ss "پeرسن" ; ---- AR from Nasrin have_V2 = { s = table { (VF Pos (PPresent2 PrPerf) PPers1 Sg) => "داشته ام" ; (VF Pos (PPresent2 PrPerf) PPers1 Pl) => "داشته ایم" ; (VF Pos (PPresent2 PrPerf) PPers2 Sg) => "داشته ای" ; (VF Pos (PPresent2 PrPerf) PPers2 Pl) => "داشته اید" ; (VF Pos (PPresent2 PrPerf) PPers3 Sg) => "داشته است" ; (VF Pos (PPresent2 PrPerf) PPers3 Pl) => "داشته اند" ; (VF Pos (PPresent2 PrImperf) PPers1 Sg) => "دارم" ; (VF Pos (PPresent2 PrImperf) PPers1 Pl) => "داریم" ; (VF Pos (PPresent2 PrImperf) PPers2 Sg) => " داری" ; (VF Pos (PPresent2 PrImperf) PPers2 Pl) => "دارید" ; (VF Pos (PPresent2 PrImperf) PPers3 Sg) => "دارد" ; (VF Pos (PPresent2 PrImperf) PPers3 Pl) => "دارند" ; (VF Pos (PPast2 PstPerf) PPers1 Sg) => "داشته بودم" ; (VF Pos (PPast2 PstPerf) PPers1 Pl) => "داشته بودیم" ; (VF Pos (PPast2 PstPerf) PPers2 Sg) => "داشته بودی" ; (VF Pos (PPast2 PstPerf) PPers2 Pl) => "داشته بودید" ; (VF Pos (PPast2 PstPerf) PPers3 Sg) => "داشته بود" ; (VF Pos (PPast2 PstPerf) PPers3 Pl) => "داشته بودند" ; (VF Pos (PPast2 PstImperf) PPers1 Sg) => "می داشتم" ; (VF Pos (PPast2 PstImperf) PPers1 Pl) => "می داشتیم" ; (VF Pos (PPast2 PstImperf) PPers2 Sg) => "می داشتی" ; (VF Pos (PPast2 PstImperf) PPers2 Pl) => "می داشتید" ; (VF Pos (PPast2 PstImperf) PPers3 Sg) => "می داشت" ; (VF Pos (PPast2 PstImperf) PPers3 Pl) => "می داشتند" ; (VF Pos (PPast2 PstAorist) PPers1 Sg) => "داشتم" ; (VF Pos (PPast2 PstAorist) PPers1 Pl) => "داشتیم" ; (VF Pos (PPast2 PstAorist) PPers2 Sg) => "داشتی" ; (VF Pos (PPast2 PstAorist) PPers2 Pl) => "داشتید" ; (VF Pos (PPast2 PstAorist) PPers3 Sg) => "داشت" ; (VF Pos (PPast2 PstAorist) PPers3 Pl) => "داشتند" ; (VF Pos (PFut2 FtAorist) PPers1 Sg) => "خواهم داشت" ; (VF Pos (PFut2 FtAorist) PPers1 Pl) => "خواهیم داشت" ; (VF Pos (PFut2 FtAorist) PPers2 Sg) => "خواهی داشت" ; (VF Pos (PFut2 FtAorist) PPers2 Pl) => "خواهید داشت" ; (VF Pos (PFut2 FtAorist) PPers3 Sg) => "خواهد داشت" ; (VF Pos (PFut2 FtAorist) PPers3 Pl) => "خواهند داشت" ; (VF Pos (Infr_Past2 InfrPerf) PPers1 Sg) => "داشته بوده ام" ; (VF Pos (Infr_Past2 InfrPerf) PPers1 Pl) => "داشته بوده ایم" ; (VF Pos (Infr_Past2 InfrPerf) PPers2 Sg) => "داشته بوده ای" ; (VF Pos (Infr_Past2 InfrPerf) PPers2 Pl) => "داشته بوده اید" ; (VF Pos (Infr_Past2 InfrPerf) PPers3 Sg) => "داشته بوده است" ; (VF Pos (Infr_Past2 InfrPerf) PPers3 Pl) => "داشته بوده اند" ; (VF Pos (Infr_Past2 InfrImperf) PPers1 Sg) => "می داشته ام" ; (VF Pos (Infr_Past2 InfrImperf) PPers1 Pl) => "می داشته ایم" ; (VF Pos (Infr_Past2 InfrImperf) PPers2 Sg) => "می داشته ای" ; (VF Pos (Infr_Past2 InfrImperf) PPers2 Pl) => "می داشته اید" ; (VF Pos (Infr_Past2 InfrImperf) PPers3 Sg) => "می داشته است" ; (VF Pos (Infr_Past2 InfrImperf) PPers3 Pl) => "می داشته اند" ; (VF Neg (PPresent2 PrPerf) PPers1 Sg) => "نداشته ام" ; (VF Neg (PPresent2 PrPerf) PPers1 Pl) => "نداشته ایم" ; (VF Neg (PPresent2 PrPerf) PPers2 Sg) => "نداشته ای" ; (VF Neg (PPresent2 PrPerf) PPers2 Pl) => "نداشته اید" ; (VF Neg (PPresent2 PrPerf) PPers3 Sg) => "نداشته است" ; (VF Neg (PPresent2 PrPerf) PPers3 Pl) => "نداشته اند" ; (VF Neg (PPresent2 PrImperf) PPers1 Sg) => "ندارم" ; (VF Neg (PPresent2 PrImperf) PPers1 Pl) => "نداریم" ; (VF Neg (PPresent2 PrImperf) PPers2 Sg) => "نداری" ; (VF Neg (PPresent2 PrImperf) PPers2 Pl) => "ندارید" ; (VF Neg (PPresent2 PrImperf) PPers3 Sg) => "ندارد" ; (VF Neg (PPresent2 PrImperf) PPers3 Pl) => "ندارند" ; (VF Neg (PPast2 PstPerf) PPers1 Sg) => "نداشته بودم" ; (VF Neg (PPast2 PstPerf) PPers1 Pl) => "نداشته بودیم" ; (VF Neg (PPast2 PstPerf) PPers2 Sg) => "نداشته بودی" ; (VF Neg (PPast2 PstPerf) PPers2 Pl) => "نداشته بودید" ; (VF Neg (PPast2 PstPerf) PPers3 Sg) => "نداشته بود" ; (VF Neg (PPast2 PstPerf) PPers3 Pl) => "نداشته بودند" ; (VF Neg (PPast2 PstImperf) PPers1 Sg) => "نمی داشتم" ; (VF Neg (PPast2 PstImperf) PPers1 Pl) => "نمی داشتیم" ; (VF Neg (PPast2 PstImperf) PPers2 Sg) => "نمی داشتی" ; (VF Neg (PPast2 PstImperf) PPers2 Pl) => "نمی داشتید" ; (VF Neg (PPast2 PstImperf) PPers3 Sg) => "نمی داشت" ; (VF Neg (PPast2 PstImperf) PPers3 Pl) => "نمی داشتند" ; (VF Neg (PPast2 PstAorist) PPers1 Sg) => "نداشتم" ; (VF Neg (PPast2 PstAorist) PPers1 Pl) => "نداشتیم" ; (VF Neg (PPast2 PstAorist) PPers2 Sg) => "نداشتی" ; (VF Neg (PPast2 PstAorist) PPers2 Pl) => "نداشتید" ; (VF Neg (PPast2 PstAorist) PPers3 Sg) => "نداشت" ; (VF Neg (PPast2 PstAorist) PPers3 Pl) => "نداشتند" ; (VF Neg (PFut2 FtAorist) PPers1 Sg) => "نخواهم داشت" ; (VF Neg (PFut2 FtAorist) PPers1 Pl) => "نخواهیم داشت" ; (VF Neg (PFut2 FtAorist) PPers2 Sg) => "نخواهی داشت" ; (VF Neg (PFut2 FtAorist) PPers2 Pl) => "نخواهید داشت" ; (VF Neg (PFut2 FtAorist) PPers3 Sg) => "نخواهد داشت" ; (VF Neg (PFut2 FtAorist) PPers3 Pl) => "نخواهند داشت" ; (VF Neg (Infr_Past2 InfrPerf) PPers1 Sg) => "نداشته بوده ام" ; (VF Neg (Infr_Past2 InfrPerf) PPers1 Pl) => "نداشته بوده ایم" ; (VF Neg (Infr_Past2 InfrPerf) PPers2 Sg) => "نداشته بوده ای" ; (VF Neg (Infr_Past2 InfrPerf) PPers2 Pl) => "نداشته بوده اید" ; (VF Neg (Infr_Past2 InfrPerf) PPers3 Sg) => "نداشته بوده است" ; (VF Neg (Infr_Past2 InfrPerf) PPers3 Pl) => "نداشته بوده اند" ; (VF Neg (Infr_Past2 InfrImperf) PPers1 Sg) => "نمی داشته ام" ; (VF Neg (Infr_Past2 InfrImperf) PPers1 Pl) => "نمی داشته ایم" ; (VF Neg (Infr_Past2 InfrImperf) PPers2 Sg) => "نمی داشته ای" ; (VF Neg (Infr_Past2 InfrImperf) PPers2 Pl) => "نمی داشته اید" ; (VF Neg (Infr_Past2 InfrImperf) PPers3 Sg) => "نمی داشته است" ; (VF Neg (Infr_Past2 InfrImperf) PPers3 Pl) => "نمی داشته اند" ; (Vvform (AgPes Sg PPers1)) => "بدارم" ; (Vvform (AgPes Sg PPers2)) => "بداری" ; (Vvform (AgPes Sg PPers3)) => "بدارد" ; (Vvform (AgPes Pl PPers1)) => "بداریم" ; (Vvform (AgPes Pl PPers2)) => "بدارید" ; (Vvform (AgPes Pl PPers3)) => "بدارند" ; (R.Imp Pos Sg) => "بدار" ; (R.Imp Pos Pl) => "بدارید" ; (R.Imp Neg Sg) => "ندار" ; (R.Imp Neg Pl) => "ندارید" ; Inf => "داشتن" ; Root1 => "داشت" ; Root2 => "دار" } ; c2 = { s = [] ; ra = [] ; --- "را" ; ---- AR 18/9/2017: usually no ra acc. to Nasrin, but this is tricky c = R.VTrans } } ; }