From ebe553f4f8b57f151f0777e7417abae2c5796d18 Mon Sep 17 00:00:00 2001 From: "virk.shafqat" Date: Tue, 27 Nov 2012 14:00:14 +0000 Subject: [PATCH] ParseHinandExtraUrd --- lib/src/hindi/ExtraHin.gf | 50 +++++++++++- lib/src/hindi/ParseHin.gf | 94 +++++++++++++++------- lib/src/hindi/src/ExtraHin.gf | 50 +++++++++++- lib/src/hindustani/QuestionHindustani.gf | 2 +- lib/src/hindustani/SentenceHindustani.gf | 8 +- lib/src/urdu/DictUrd2.gf | 99 ++++++++++++------------ lib/src/urdu/ExtraUrd.gf | 51 +++++++++--- lib/src/urdu/ParseUrd.gf | 68 +++++++++++----- lib/src/urdu/src/ExtraUrd.gf | 51 +++++++++--- 9 files changed, 345 insertions(+), 128 deletions(-) diff --git a/lib/src/hindi/ExtraHin.gf b/lib/src/hindi/ExtraHin.gf index 19553190e..b00b89df2 100644 --- a/lib/src/hindi/ExtraHin.gf +++ b/lib/src/hindi/ExtraHin.gf @@ -24,4 +24,52 @@ flags coding = utf8 ; -- added for causitives make_CV = mkVerb "नoतहिनग" ** {c2 = "" }; -- for VP conjunction -} + +lincat + VPS = {s : Agr => Str} ; + [VPS] = {s1,s2 : Agr => Str} ; + + lin + BaseVPS = twoTable Agr ; + ConsVPS = consrTable Agr comma ; + + PredVPS np vpi = {s = np.s ! NPC Dir ++ vpi.s ! np.a} ; + + MkVPS t p vp = { + s = \\a => + + let + verb = vp.s ! (VPTense VPPast a) ; -- this needs to be fixed --vp.s ! t.t ! t.a ! p.p ! ODir ! a ; + verbf = verb.fin ++ verb.inf ; + in t.s ++ p.s ++ vp.ad ++ vp.cvp ++ verbf ++ vp.obj.s ++ vp.comp ! a + } ; + + ConjVPS = conjunctDistrTable Agr ; + +-- ComplVPIVV vv vpi = +-- insertObj (\\a => vpi.s ! vv.typ ! a) (predVV vv) ; + +--PassVPSlash vps = vps ; + +-- in progress +PassVPSlash vps = + let + aux = predV (mkV "जाना") + in { + -- s = be.s ; + s = table { + VPTense tense agr => {inf = (vps.s ! VPTense VPPast agr).inf ++ (aux.s ! VPTense tense agr).inf ; + fin = (aux.s ! VPTense tense agr).fin}; + vform => {inf = (vps.s ! vform).inf ++ (aux.s!vform).inf; fin = (vps.s!vform).inf} + }; + obj = vps.obj ; + subj = vps.subj ; + inf = (vps.s ! VPTense VPPast (Ag Masc Sg Pers3_Distant)).inf ++ aux.inf; --this is not correct since, in this case the infinitive form will also inflect for agr i.e. khaya jana, khai jani etc + ad = vps.ad; + embComp = vps.embComp; + prog = vps.prog ; + comp = vps.comp ; + cvp = vps.cvp + } ; + +} \ No newline at end of file diff --git a/lib/src/hindi/ParseHin.gf b/lib/src/hindi/ParseHin.gf index 2d5e466a7..0278e84fc 100644 --- a/lib/src/hindi/ParseHin.gf +++ b/lib/src/hindi/ParseHin.gf @@ -1,40 +1,43 @@ ---# -path=alltenses:../abstract:../english +--# -path=.:alltenses:../abstract:../english concrete ParseHin of ParseEngAbs = - TenseX - [AdN,Adv,SC], + TenseX - [AdN,Adv,SC,PPos,PNeg], -- TextX - [AdN,Adv,SC], CatHin, - NounHin, + NounHin - [PPartNP], AdjectiveHin, NumeralHin, --- SymbolHin, ConjunctionHin, - VerbHin - [SlashV2V, PassV2], + VerbHin - [PassV2,ComplVV], AdverbHin, PhraseHin, SentenceHin, RelativeHin, + QuestionHin, + SymbolHin [PN, Symb, String, CN, Card, NP, MkSymb, SymbPN, CNNumNP], -- StructuralHin, IdiomHin [NP, VP, Tense, Cl, ProgrVP, ExistNP], - ExtraHin [NP, Quant, VPSlash, VP, Tense, GenNP, PassVPSlash], --- DictHin ** - DictHinWSJ ** -open MorphoHin, ResHin, ParadigmsHin, ParamX, CommonHindustani, Prelude in { + ExtraHin [NP, Quant, VPSlash, VP, Tense, GenNP, PassVPSlash,Temp,Pol,Conj,VPS,ListVPS,S,Num, CN, + RP, MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS, GenRP,VPI, VPIForm, VPIInf, VPIPresPart, ListVPI, + VV, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,ClSlash, RCl, EmptyRelSlash], + DictHinMath ** +-- DictHin ** +open MorphoHin, ResHin, ParadigmsHin,CommonX, CommonHindustani, Prelude in { flags literal=Symb ; lin -{- myself_NP = regNP "myself" singular ; - yourselfSg_NP = regNP "yourself" singular ; - himself_NP = regNP "himself" singular ; - herself_NP = regNP "herself" singular ; - itself_NP = regNP "itself" singular ; - ourself_NP = regNP "ourself" plural ; - yourselfPl_NP = regNP "yourself" plural ; - themself_NP = regNP "themself" plural ; --} + myself_NP = {s = \\_ => kwd ; a = Ag Masc Sg Pers1 }; + yourselfSg_NP = {s = \\_ => kwd ; a = Ag Masc Sg Pers2_Respect }; --regNP "yourself" singular ; + himself_NP = {s = \\_ => kwd ; a = Ag Masc Sg Pers3_Distant }; --regNP "himself" singular ; + herself_NP = {s = \\_ => kwd ; a = Ag Fem Sg Pers3_Distant }; --regNP "herself" singular ; + itself_NP = {s = \\_ => kwd ; a = Ag Masc Sg Pers3_Near }; --regNP "itself" singular ; + ourself_NP = {s = \\_ => kwd ; a = Ag Masc Pl Pers1 }; --regNP "ourself" plural ; + yourselfPl_NP = {s = \\_ => kwd ; a = Ag Masc Pl Pers2_Respect }; --regNP "yourself" plural ; + themself_NP = {s = \\_ => kwd ; a = Ag Masc Pl Pers3_Distant }; --regNP "themself" plural ; + CompoundCN num noun cn = { - s = \\n,c => num.s ++ noun.s ! num.n ! Dir ++ cn.s ! n ! c ; + s = \\n,c => num.s ++ cn.s ! n ! c ++ noun.s ! num.n ! Dir; g = cn.g } ; @@ -44,16 +47,16 @@ lin } ; GerundN v = { - s = \\n,c => v.cvp ++ v.s ! Inf_Obl ; --the main verb of compound verbs + s = \\n,c => v.cvp ++ v.s ! Inf ; -- v.s ! VF Imperf Pers2_Casual n Masc ++ hwa (Ag Masc n Pers2_Casual) ; --the main verb of compound verbs g = Masc } ; GerundAP v = { - s = \\_,_,_,_ => v.cvp ++ v.s ! Inf --the main verb of compound verbs + s = \\n,g,_,_ => v.cvp ++ v.s ! VF Imperf Pers2_Casual n g ++ hwa (Ag g n Pers2_Casual) ; } ; PastPartAP v = { - s = \\_,_,_,_ => v.cvp ++ v.s ! Inf -- the main verb of compound versb needs to be attached here + s = \\n,g,_,_ => v.cvp ++ v.s ! VF Imperf Pers2_Casual n g ; -- the main verb of compound versb needs to be attached here } ; -- OrdCompar a = {s = \\c => a.s ! AAdj Compar c } ; @@ -61,10 +64,37 @@ lin PositAdVAdj a = {s = a.s ! Sg ! Masc ! Dir ! Posit} ; --------------- --SlashV2V v p vp = insertVV (infV2V v.isAux vp) (predV v) vp.embComp ** {c2 = {s = sE ; c = VTrans}}; -- changed from VTransPost +ComplVV v a p vp = insertTrans (insertVV (infVV v.isAux vp) (predV v) vp.embComp ) VTrans; -- changed from VTransPost --------------- --- UseQuantPN q pn = {s = \\c => q.s ! Sg ! Masc ! Dir ++ pn.s ! c ; a = agrP3 Sg pn.g} ; + UseQuantPN q pn = {s = \\c => q.s ! Sg ! pn.g ! Dir ++ pn.s ! Dir ; a = agrP3 pn.g Sg} ; + +PredVPosv np vp = mkClause np vp ; --{ +{- s = \\t,a,b,o => + let + verb = vp.s ! t ! a ! b ! o ! np.a ; + compl = vp.s2 ! np.a + in + case o of { + ODir => compl ++ "," ++ np.s ! npNom ++ verb.aux ++ vp.ad ++ verb.fin ++ verb.adv ++ verb.inf ; + OQuest => verb.aux ++ compl ++ "," ++ np.s ! npNom ++ verb.adv ++ vp.ad ++ verb.fin ++ verb.inf + } + } ; +-} + PredVPovs np vp = mkClause np vp ; --{ +{- s = \\t,a,b,o => + let + verb = vp.s ! t ! a ! b ! o ! np.a ; + compl = vp.s2 ! np.a + in + case o of { + ODir => compl ++ verb.aux ++ verb.adv ++ vp.ad ++ verb.fin ++ verb.inf ++ np.s ! npNom ; + OQuest => verb.aux ++ compl ++ verb.adv ++ vp.ad ++ verb.fin ++ verb.inf ++ np.s ! npNom + } + } ; +-} + {- SlashV2V v p vp = insertObjc (\\a => p.s ++ case p.p of {CPos => ""; _ => "not"} ++ v.c3 ++ @@ -83,20 +113,24 @@ lin } } ; -} +CompVP ant p vp = {s = \\a => ant.s ++ p.s ++ + infVP False vp a} ; -- check for vp.isAux + that_RP = { s = \\_,_ => "kh" ; a = RNoAg } ; - no_RP = { - s = \\_,_ => "" ; - a = RNoAg - } ; + --no_RP = { + -- s = \\_,_ => "" ; + -- a = RNoAg + -- } ; CompS s = {s = \\_ => "kh" ++ s.s} ; -- CompVP vp = {s = \\a => infVP VVInf vp a} ; ---lin --- PPos = {s = [] ; p = CPos} ; --- PNeg = {s = [] ; p = CNeg True} ; -- contracted: don't +lin + PPos = {s = [] ; p = Pos} ; + PNeg = {s = [] ; p = Neg} ; -- contracted: don't + UncNeg = {s = [] ; p = Neg} ; } diff --git a/lib/src/hindi/src/ExtraHin.gf b/lib/src/hindi/src/ExtraHin.gf index b3b9e005d..deb16ed4e 100644 --- a/lib/src/hindi/src/ExtraHin.gf +++ b/lib/src/hindi/src/ExtraHin.gf @@ -24,4 +24,52 @@ flags coding = utf8 ; -- added for causitives make_CV = mkVerb "nothing" ** {c2 = "" }; -- for VP conjunction -} + +lincat + VPS = {s : Agr => Str} ; + [VPS] = {s1,s2 : Agr => Str} ; + + lin + BaseVPS = twoTable Agr ; + ConsVPS = consrTable Agr comma ; + + PredVPS np vpi = {s = np.s ! NPC Dir ++ vpi.s ! np.a} ; + + MkVPS t p vp = { + s = \\a => + + let + verb = vp.s ! (VPTense VPPast a) ; -- this needs to be fixed --vp.s ! t.t ! t.a ! p.p ! ODir ! a ; + verbf = verb.fin ++ verb.inf ; + in t.s ++ p.s ++ vp.ad ++ vp.cvp ++ verbf ++ vp.obj.s ++ vp.comp ! a + } ; + + ConjVPS = conjunctDistrTable Agr ; + +-- ComplVPIVV vv vpi = +-- insertObj (\\a => vpi.s ! vv.typ ! a) (predVV vv) ; + +--PassVPSlash vps = vps ; + +-- in progress +PassVPSlash vps = + let + aux = predV (mkV "ja:na:") + in { + -- s = be.s ; + s = table { + VPTense tense agr => {inf = (vps.s ! VPTense VPPast agr).inf ++ (aux.s ! VPTense tense agr).inf ; + fin = (aux.s ! VPTense tense agr).fin}; + vform => {inf = (vps.s ! vform).inf ++ (aux.s!vform).inf; fin = (vps.s!vform).inf} + }; + obj = vps.obj ; + subj = vps.subj ; + inf = (vps.s ! VPTense VPPast (Ag Masc Sg Pers3_Distant)).inf ++ aux.inf; --this is not correct since, in this case the infinitive form will also inflect for agr i.e. khaya jana, khai jani etc + ad = vps.ad; + embComp = vps.embComp; + prog = vps.prog ; + comp = vps.comp ; + cvp = vps.cvp + } ; + +} \ No newline at end of file diff --git a/lib/src/hindustani/QuestionHindustani.gf b/lib/src/hindustani/QuestionHindustani.gf index e6892732e..94b745f16 100644 --- a/lib/src/hindustani/QuestionHindustani.gf +++ b/lib/src/hindustani/QuestionHindustani.gf @@ -19,7 +19,7 @@ incomplete concrete QuestionHindustani of Question = qp1 = qp.s ! Dir; qp2 = qp.s ! Obl ++ nE in { s = \\t,p,o => case t of { - VPImpPast => case vp.subj of {VIntrans => qp1 ++ cl.s ! t ! p ! ODir; _ => qp2 ++ cl.s ! t ! p ! ODir}; + VPImpPast => case vp.subj of {VIntrans => qp1 ++ cl.s ! t ! p ! ODir; _ => qp2 ++ cl.s ! t ! p ! ODir}; _ => qp1 ++ cl.s ! t ! p ! ODir } }; diff --git a/lib/src/hindustani/SentenceHindustani.gf b/lib/src/hindustani/SentenceHindustani.gf index 87e34b5c1..fcb7ad7c4 100644 --- a/lib/src/hindustani/SentenceHindustani.gf +++ b/lib/src/hindustani/SentenceHindustani.gf @@ -53,7 +53,7 @@ incomplete concrete SentenceHindustani of Sentence = => temp.s ++ p.s ++ cl.s ! VPPerfPast ! p.p ! ODir; => temp.s ++ p.s ++ cl.s ! VPFut ! p.p ! ODir; => temp.s ++ p.s ++ cl.s ! VPPerfFut ! p.p ! ODir; - => temp.s ++ p.s ++ cl.s ! VPSubj ! p.p ! ODir; + => temp.s ++ p.s ++ cl.s ! VPFut ! p.p ! ODir; --cl.s ! VPSubj ! p.p ! ODir; => temp.s ++ p.s ++ cl.s ! VPSubj ! p.p ! ODir -- this needs to be fixed by making SubjPerf in ResUrd }; @@ -66,7 +66,7 @@ incomplete concrete SentenceHindustani of Sentence = => temp.s ++ p.s ++ cl.s ! VPPerfPast ! p.p ! q; => temp.s ++ p.s ++ cl.s ! VPFut ! p.p ! q; => temp.s ++ p.s ++ cl.s ! VPPerfFut ! p.p ! q; - => temp.s ++ p.s ++ cl.s ! VPSubj ! p.p ! q; + => temp.s ++ p.s ++ cl.s ! VPFut ! p.p ! q; -- cl.s ! VPSubj ! p.p ! q; => temp.s ++ p.s ++ cl.s ! VPSubj ! p.p ! q }; @@ -79,7 +79,7 @@ incomplete concrete SentenceHindustani of Sentence = => temp.s ++ p.s ++ rcl.s ! VPPerfPast ! p.p ! ODir ! q; => temp.s ++ p.s ++ rcl.s ! VPFut ! p.p ! ODir ! q; => temp.s ++ p.s ++ rcl.s ! VPPerfFut ! p.p ! ODir ! q; - => temp.s ++ p.s ++ rcl.s ! VPSubj ! p.p ! ODir ! q; + => temp.s ++ p.s ++ rcl.s ! VPFut ! p.p ! ODir ! q; --rcl.s ! VPSubj ! p.p ! ODir ! q; => temp.s ++ p.s ++ rcl.s ! VPSubj ! p.p ! ODir ! q }; c = rcl.c @@ -92,7 +92,7 @@ incomplete concrete SentenceHindustani of Sentence = => temp.s ++ p.s ++ clslash.s ! VPPerfPast ! p.p ! ODir; => temp.s ++ p.s ++ clslash.s ! VPFut ! p.p ! ODir; => temp.s ++ p.s ++ clslash.s ! VPPerfFut ! p.p ! ODir; - => temp.s ++ p.s ++ clslash.s ! VPSubj ! p.p ! ODir; + => temp.s ++ p.s ++ clslash.s ! VPFut ! p.p ! ODir; --clslash.s ! VPSubj ! p.p ! ODir; => temp.s ++ p.s ++ clslash.s ! VPSubj ! p.p ! ODir }; c2 = clslash.c2 diff --git a/lib/src/urdu/DictUrd2.gf b/lib/src/urdu/DictUrd2.gf index 27ca61fc5..72bd3143c 100644 --- a/lib/src/urdu/DictUrd2.gf +++ b/lib/src/urdu/DictUrd2.gf @@ -207,7 +207,7 @@ lin accordingly_Adv = mkAdv "اس واسطے" ; lin accordion_N = mkN "مخصوص باجا" ; lin accost_V2 = mkV2 (compoundV "خطاب" (mkV "کرنا")) ; -- from DictUrd lin accouchement_N = mkN "زچگی" ; -lin account_N = mkN "بیان" ; -- from DictUrd +lin account_N = mkN "اکاونٹ" "اکاونٹ" "اکاونٹ" "اکاونٹس" "اکاونٹس" "اکانٹس" Masc ; -- from DictUrd --changed lin account_V = compoundV "حساب" (mkV "کتاب") ; lin account_V2 = mkV2 (compoundV "حساب" (mkV "لینا")) ; -- from DictUrd lin accountable_A = mkA "تابع احتساب" ; -- from DictUrd @@ -1239,7 +1239,7 @@ lin apoplexy_N = mkN "بے حسی کی حالت" ; -- from DictUrd lin apostasy_N = mkN "الحاد" ; -- from DictUrd lin apostate_A = mkA "مرتد" ; lin apostate_N = mkN "مرتد" ; -- from DictUrd -lin apostle_N = mkN "حواری" ; -- from DictUrd +lin apostle_N = mkN "پیغمبر" ; -- from DictUrd --changed lin apostolic_A = mkA "رسولی" ; -- from DictUrd lin apostrophe_N = mkN "خطاب" ; lin apothecary_N = mkN "عطار" ; -- from DictUrd @@ -1557,11 +1557,11 @@ lin asiatic_N = mkN "ایشیائی" ; lin aside_Adv = mkAdv "بہ کنار" ; -- from DictUrd lin aside_N = mkN "کانا پھونی" ; -- from DictUrd lin asinine_A = mkA "احمق" ; -- from DictUrd -lin ask_V = mkV "مانگنا" ; -lin ask_V2 = mkV2 (mkV "کہنا") ; -- from DictUrd ---lin ask_V2V = mkV2 (mkV "مانگنا") ; -lin ask_VS = mkVS (mkV "مانگنا") ; -lin ask_VQ = mkVQ (mkV "مانگنا" ); +lin ask_V = mkV "پوچھنا" ; +lin ask_V2 = mkV2 (mkV "پوچھنا") ; -- from DictUrd --changed +--lin ask_V2V = mkV2 (mkV "مانگنا") ; --changed +lin ask_VS = mkVS (mkV "پوچھنا") ; --changed +lin ask_VQ = mkVQ (mkV "پوچھنا" ); --changed lin askance_Adv = mkAdv "بغلی راہ سے" ; lin askew_A = mkA "کج" ; -- from DictUrd lin askew_Adv = mkAdv "ترچھی يا ٹيڑھی وضع ميں" ; @@ -2303,7 +2303,7 @@ lin beam_N = mkN "کڑی" ; -- from DictUrd lin beam_V = mkV "کرن" ; lin beam_V2 = mkV2 (mkV "کرن") ; lin bean_N = mkN "پھلی" ; -- from DictUrd -lin bear_N = mkN "سنبھالنا" ; +lin bear_N = mkN "برداشت" ; --changed lin bear_V = compoundV "صبر" (mkV "آنا") ; -- from DictUrd lin bear_V2 = mkV2 (compoundV "برداشت" (mkV "کرنا")) ; -- from DictUrd lin bearable_A = mkA "گوارا" ; -- from DictUrd @@ -2344,8 +2344,8 @@ lin beckon_V = mkV "بلانا" ; lin beckon_V2 = mkV2 (mkV "بلانا") ; lin become_V = mkV "بننا" ; -- from DictUrd lin become_V2 = mkV2 (compoundV "بن" (mkV "جانا")) ; -- from DictUrd -lin become_VA = mkV "ہوجانا" ; -lin become_VS = mkVS (mkV "ہوجانا") ; +lin become_VA = mkV "ہونا" ; --changed +lin become_VS = mkVS (mkV "ہونا") ; --changed lin becoming_A = mkA "موزوں" ; lin bed_N = mkN "بستر" ; -- from DictUrd lin bed_V2 = mkV2 (compoundV "کیاری" (mkV "بنانا")) ; @@ -2633,7 +2633,7 @@ lin bilingual_N = mkN "دو زبانیں بولنا" ; lin bilious_A = mkA "صفراوی" ; -- from DictUrd lin biliousness_N = mkN "چڑچڑا پن" ; lin bilk_V2 = mkV2 (compoundV "دھوکا" (mkV "دینا")) ; -- from DictUrd -lin bill_N = mkN "حساب" ; -- from DictUrd +lin bill_N = mkN "بل" ; -- from DictUrd --changed lin bill_PN = mkPN "چونچ" ; lin bill_V = mkV "چونچ" ; lin bill_V2 = mkV2 (mkV "چونچ") ; @@ -3023,7 +3023,7 @@ lin boob_N = mkN "چھوچی" ; -- from DictUrd lin boob_V = compoundV "سادہ" (mkV "لوح") ; lin booby_N = mkN "احمق" ; -- from DictUrd lin booby_trap_N = mkN "احمق سے مذاق" ; -lin book_N = mkN "دستاویز" ; -- from DictUrd +lin book_N = mkN "کتاب" ; -- from DictUrd --changed lin book_V2 = mkV2 (mkV "کتاب") ; lin book_keeper_N = mkN "روزنامچہ نویس" ; lin bookcase_N = mkN "کتابوں کی الماری" ; @@ -3645,7 +3645,7 @@ lin buttress_V2 = mkV2 (compoundV "پشتہ بندی" (mkV "کرنا")) ; lin buxom_A = mkA "چنچل" ; -- from DictUrd lin buy_N = mkN "خریدنا" ; lin buy_V = mkV "خریدنا" ; -lin buy_V2 = mkV2 (mkV "خریدنا") ; -- from DictUrd +lin buy_V2 = mkV2 (mkV "خریدنا") "کو"; -- from DictUrd --changed lin buyer_N = mkN "خریدار" ; -- from DictUrd lin buzz_N = mkN "بھنبھناہٹ" ; lin buzz_V = mkV "بھنبھناہٹ" ; @@ -5286,7 +5286,7 @@ lin combine_V2 = mkV2 (compoundV "ایکا" (mkV "کرنا")) ; -- from Di lin combustible_A = mkA "آتش پزیر" ; -- from DictUrd lin combustible_N = mkN "احتراق" ; lin combustion_N = mkN "آتش پزیری" ; -- from DictUrd -lin come_V = compoundV "آ" (mkV "جانا") ; -- from DictUrd +lin come_V = mkV "آنا" ; -- from DictUrd --changed lin come_V2 = mkV2 (mkV "آنا") ; lin come_VA = mkV "آنا" ; lin come_VS = mkVS (mkV "آنا") ; @@ -5404,7 +5404,7 @@ lin compact_V2 = mkV2 (mkV "گاڑی") ; lin companion_N = mkN "حاشیہ نشین" ; -- from DictUrd lin companionable_A = mkA "قابل دوستی" ; -- from DictUrd lin companionship_N = mkN "رفاقت" ; -- from DictUrd -lin company_N = mkN "انجمن" ; -- from DictUrd +lin company_N = mkN "کمپنی" ; -- from DictUrd --changed lin comparability_N = mkN "موازنہ پذیری" ; lin comparable_A = mkA "برابر کی ٹکر" ; -- from DictUrd lin comparative_A = mkA "صفت" ; @@ -6365,7 +6365,7 @@ lin countess_N = mkN "نواب کی بیوی" ; lin counting_house_N = mkN "حساب گھر" ; lin countless_A = mkA "ان گنت" ; -- from DictUrd lin countrified_A = mkA "دیہاتی طرز" ; -lin country_N = mkN "دار" ; -- from DictUrd +lin country_N = mkN "ملک" ; -- from DictUrd --changed lin countryman_N = mkN "ہم وطن" ; lin countryside_N = mkN "دیہاتی علاقہ" ; -- from DictUrd lin county_N = mkN "برطانیہ کا علاقہ" ; @@ -7425,7 +7425,7 @@ lin dejection_N = mkN "افسوس" ; -- from DictUrd lin delaware_PN = mkPN "ایک الگونکی زبان" ; lin delay_N = mkN "آہستگی" ; -- from DictUrd lin delay_V = compoundV "دیر" (mkV "ہونا") ; -- from DictUrd -lin delay_V2 = mkV2 (compoundV "دیر" (mkV "لگانا")) ; -- from DictUrd +lin delay_V2 = mkV2 (compoundV "موخر" (mkV "کرنا")) "کو"; -- from DictUrd --changed lin delay_VS = mkVS (mkV "دیر") ; lin delectable_A = mkA "خوشگوار" ; -- from DictUrd lin delectation_N = mkN "تفریح" ; @@ -8491,7 +8491,7 @@ lin distribute_V2 = mkV2 (mkV "بانٹنا") ; -- from DictUrd lin distribution_N = mkN "بانٹ" ; -- from DictUrd lin distributive_A = mkA "تقسیم کے متعلق" ; lin distributor_N = mkN "قاسم" ; -lin district_N = mkN "علاقہ" ; -- from DictUrd +lin district_N = mkN "ڈسٹرکٹ" ; -- from DictUrd --cahnged lin distrust_N = mkN "بد گمانی" ; -- from DictUrd lin distrust_V2 = mkV2 (compoundV "بھروسا نہ" (mkV "کرنا")) ; -- from DictUrd lin distrustful_A = mkA "بد گمان" ; -- from DictUrd @@ -9243,7 +9243,7 @@ lin efflorescence_N = mkN "پھول کا کھلنا" ; -- from DictUrd lin efflorescent_A = mkA "پھولوں لدا" ; lin effluent_N = mkN "رواں" ; lin efflux_N = mkN "بہاؤ" ; -- from DictUrd -lin effort_N = mkN "بھاگ دوڑ" ; -- from DictUrd +lin effort_N = mkN "کوشش" ; -- from DictUrd --changed lin effortless_A = mkA "آسان" ; -- from DictUrd lin effrontery_N = mkN "بے غیرتی" ; -- from DictUrd lin effulgence_N = mkN "درخشائی" ; @@ -10839,6 +10839,7 @@ lin find_N = mkN "معلوم کرنا" ; lin find_V = mkV "ملنا" ; -- from DictUrd lin find_V2 = mkV2 (mkV "ڈھونڈنا") ; -- from DictUrd -- lin find_V2V = mkV2 (compoundV "معلوم" (mkV "کرنا")) ; +lin find_V2A = mkV2 (mkV "پانا") ; lin find_VS = mkVS (compoundV "معلوم" (mkV "کرنا")) ; lin finder_N = mkN "یابندہ" ; -- from DictUrd lin finding_N = mkN "دريافت" ; @@ -12307,7 +12308,7 @@ lin gong_V2 = mkV2 (mkV "گھنٹا") ; lin gonorrhea_N = mkN "سوزاک" ; lin gonorrhoea_N = mkN "جریان" ; -- from DictUrd lin goo_N = mkN "جذباتیت" ; -- from DictUrd -lin good_A = mkA "بھلا" ; -- from DictUrd +lin good_A = mkA "اچھا" ; -- from DictUrd --changed lin good_N = mkN "عمدہ" ; lin good_fellowship_N = mkN "دوستی" ; lin good_for_nothing_A = mkA "بے شغل" ; @@ -13732,7 +13733,7 @@ lin horridness_N = mkN "وحشت انگیزی" ; lin horrific_A = mkA "ڈراؤنا" ; -- from DictUrd lin horrify_V2 = mkV2 (mkV "ڈرانا") ; -- from DictUrd lin horror_N = mkN "فساد" ; -- from DictUrd -lin horse_N = mkN "گوڑا" ; -- from DictUrd --changed +lin horse_N = mkN "گھوڑا" ; -- from DictUrd --changed lin horse_chestnut_N = mkN "شاہ بلوط بندی" ; lin horse_laugh_N = mkN "بدتمیزی کی ہنسی" ; lin horse_sense_N = mkN "عملی سمجھ بوجھ" ; @@ -13761,7 +13762,7 @@ lin hosier_N = mkN "موزے بننے والا" ; lin hosiery_N = mkN "موزہ بنیان وغیرہ" ; lin hosp_PN = mkPN "مہمان نواز" ; lin hospitable_A = mkA "مہمان نواز" ; -- from DictUrd -lin hospital_N = mkN "دوا خانہ" ; -- from DictUrd +lin hospital_N = mkN "ہسپتال" ; -- from DictUrd --changed lin hospitality_N = mkN "آؤ بھگت" ; -- from DictUrd lin hospitalization_N = mkN "شفاخانہ باشی" ; lin hospitalize_V2 = mkV2 (compoundV "ہسپتال میں تیمارداری کے لیے داخل" (mkV "کرنا")) ; @@ -16035,10 +16036,10 @@ lin knotty_A = mkA "گرہ دار" ; lin knout_N = mkN "درہ" ; -- from DictUrd lin know_N = mkN "آگاہ ہونا" ; lin know_V = compoundV "علم" (mkV "ہونا") ; -- from DictUrd -lin know_V2 = mkV2 (compoundV "آگاہ" (mkV "ہونا")) ; -- from DictUrd +lin know_V2 = mkV2 (mkV "جاننا") "کو"; -- from DictUrd -- lin know_V2V = mkV2 (compoundV "آگاہ" (mkV "ہونا")) ; -lin know_VS = mkVS (compoundV "آگاہ" (mkV "ہونا")) ; -lin know_VQ = mkVQ (compoundV "آگاہ" (mkV "ہونا")) ; +lin know_VS = mkVS (mkV "جاننا") ; --changed +lin know_VQ = mkVQ (mkV "جاننا") ; --changed lin know_how_N = mkN "دستگاہ" ; lin knowing_A = mkA "آگاہ" ; -- from DictUrd lin knowledge_N = mkN "آگہی" ; -- from DictUrd @@ -16997,9 +16998,9 @@ lin loneliness_N = mkN "اکیلا پن" ; -- from DictUrd lin lonely_A = mkA "اکیلا" ; -- from DictUrd lin lonesome_A = mkA "تنہا" ; lin long_A = mkA "دراز" ; -- from DictUrd -lin long_Adv = mkAdv "خواہش کرنا" ; -lin long_N = mkN "خواہش کرنا" ; -lin long_V = compoundV "خواہش" (mkV "کرنا") ; +lin long_Adv = mkAdv "لمبا" ; --changed +lin long_N = mkN "لمبا" ; --changed +lin long_V = mkV "لمبا" ; --changed lin long_distance_A = mkA "دور دراز سے متعلق" ; lin long_headed_A = mkA "دور اندیش" ; lin long_lived_A = mkA "لمبی عمر کا" ; @@ -17436,7 +17437,7 @@ lin mammal_N = mkN "پستان دار جانور" ; -- from DictUrd lin mammon_N = mkN "دولت مندی" ; -- from DictUrd lin mammoth_N = mkN "ناپید ہاتھی کی ذات" ; -- from DictUrd lin mammy_N = mkN "امی" ; -lin man_N = mkN "آدمی" ; -- from DictUrd +lin man_N = mkN "آدمی" "آدمی" "آدمی" "آدمی" "آدمی" "آدمیو" Masc; -- from DictUrd --changed lin man_V2 = mkV2 (mkV "مرد") ; lin man_at_arms_N = mkN "سپاہی" ; lin man_eater_N = mkN "آدم خور حیوان" ; @@ -17709,7 +17710,7 @@ lin mat_N = mkN "بوریا" ; -- from DictUrd lin mat_V = mkV "چٹائی" ; lin mat_V2 = mkV2 (mkV "چٹائی") ; lin matador_N = mkN "ثور افگن" ; -lin match_N = mkN "میچ" ; -- from DictUrd +lin match_N = mkN "میچ" "میچ" "میچ" "میچ" "میچ" "میچو" Masc; -- from DictUrd lin match_V = mkV "مقابلہ" ; lin match_V2 = mkV2 (compoundV "مناسب" (mkV "ہونا")) ; -- from DictUrd lin match_point_N = mkN "میچ پوائنٹ" ; @@ -18581,7 +18582,7 @@ lin monday_N = mkN "پیر" ; lin monday_PN = mkPN "پیر" ; lin monetary_A = mkA "مالیاتی" ; -- from DictUrd lin monetize_V2 = mkV2 (compoundV "سکہ" (mkV "بنانا")) ; -lin money_N = mkN "پیسے" ; -- from DictUrd --changed +lin money_N = mkN "پیسہ" ; -- from DictUrd --changed lin money_order_N = mkN "منی آرڈر" ; lin moneychanger_N = mkN "خردیا" ; -- from DictUrd lin moneyed_A = mkA "امیر" ; -- from DictUrd @@ -19285,7 +19286,7 @@ lin nigger_N = mkN "حبشی" ; lin niggle_V = compoundV "بال" (mkV "کی کھال نکالنا") ; -- from DictUrd lin niggling_A = mkA "پست" ; lin nigh_Adv = mkAdv "قریب" ; -- from DictUrd -lin night_N = mkN "لیل" ; -- from DictUrd +lin night_N = mkN "رات" Fem; -- from DictUrd lin nightfall_N = mkN "آغاز شب" ; -- from DictUrd lin nightingale_N = mkN "عندلیب" ; -- from DictUrd lin nightmare_N = mkN "ڈراؤنا خواب" ; -- from DictUrd @@ -21198,9 +21199,9 @@ lin phlox_N = mkN "گل شعلہ" ; lin phobia_N = mkN "خوف کا مرض" ; lin phoenix_N = mkN "ہما" ; -- from DictUrd lin phoenix_PN = mkPN "ایک فرضی پرندہ" ; -lin phone_N = mkN "سادہ آواز" ; -lin phone_V = compoundV "سادہ" (mkV "آواز") ; -lin phone_V2 = mkV2 (compoundV "سادہ" (mkV "آواز")) ; +lin phone_N = mkN "فون" ; --changed +lin phone_V = compoundV "فون" (mkV "کرنا") ; --changed +lin phone_V2 = mkV2 (compoundV "فون" (mkV "کرنا")) ; --changed lin phoneme_N = mkN "صوتيہ" ; lin phonemic_A = mkA "صوتی اکائيوں کے متعلق" ; lin phonetic_A = mkA "صوتی" ; -- from DictUrd @@ -22141,7 +22142,7 @@ lin prawn_N = mkN "جھینگا" ; -- from DictUrd lin prawn_V = mkV "جھینگا" ; lin pray_V = compoundV "عبادت" (mkV "کرنا") ; lin pray_V2 = mkV2 (mkV "مانگنا") ; -- from DictUrd -lin prayer_N = mkN "دعا" ; -- from DictUrd +lin prayer_N = mkN "نماز" ; -- from DictUrd lin prayer_book_N = mkN "کتاب دعا" ; lin prayer_meeting_N = mkN "با جماعت نماز" ; lin pre_eminence_N = mkN "فضلیت" ; @@ -23555,9 +23556,9 @@ lin raze_V2 = mkV2 (mkV "ڈھانا") ; -- from DictUrd lin razor_N = mkN "استرا" ; lin razor_V2 = mkV2 (mkV "استرا") ; lin re_N = mkN "پہنچنا" ; -lin reach_N = mkN "دخل" ; -- from DictUrd -lin reach_V = mkV "لگنا" ; -- from DictUrd -lin reach_V2 = mkV2 (mkV "لگانا") ; -- from DictUrd +lin reach_N = mkN "پہنچ" ; -- from DictUrd --changed +lin reach_V = mkV "پہنچنا" ; -- from DictUrd --changed +lin reach_V2 = mkV2 (mkV "پہنچنا") ; -- from DictUrd --changed --lin reach_V2V = mkV2 (mkV "پہنچنا") ; lin reach_VA = mkV "پہنچنا" ; lin react_V = compoundV "خلاف اثر" (mkV "کرنا") ; @@ -23570,7 +23571,7 @@ lin read_VS = mkVS (mkV "پڑھنا") ; lin readable_A = mkA "دلچسپ کتاب" ; lin reader_N = mkN "پڑھنے والا" ; -- from DictUrd lin readily_Adv = mkAdv "فوراً" ; -- from DictUrd -lin reading_N = mkN "خواندگی" ; -- from DictUrd +lin reading_N = mkN "پڑھائی" ; -- from DictUrd --changed lin reading_PN = mkPN "پڑھائی" ; lin ready_A = mkA "آمادہ" ; -- from DictUrd lin ready_N = mkN "تیار" ; @@ -24710,7 +24711,7 @@ lin sacrament_N = mkN "شعائرہ مقدسہ" ; lin sacred_A = mkA "دینی" ; -- from DictUrd lin sacrifice_N = mkN "چڑھاوا" ; -- from DictUrd lin sacrifice_V = mkV "قربانی" ; -lin sacrifice_V2 = mkV2 (compoundV "فدا" (mkV "کرنا")) ; -- from DictUrd +lin sacrifice_V2 = mkV2 (compoundV "قربان" (mkV "کرنا")) ; -- from DictUrd lin sacrilegious_A = mkA "گناہگار" ; -- from DictUrd lin sad_A = mkA "آب دیدہ" ; -- from DictUrd lin sadden_V = compoundV "افسردہ" (mkV "کرنا") ; @@ -24920,7 +24921,7 @@ lin scheme_V2 = mkV2 (compoundV "منصوبہ" (mkV "بنانا")) ; -- fr lin schizophrenia_N = mkN "فکر و عمل میں بے تعلقی" ; lin scholar_N = mkN "عالم" ; -- from DictUrd lin scholarship_N = mkN "وظیفہ" ; -lin school_N = mkN "درس گاہ" ; -- from DictUrd +lin school_N = mkN "سکول" "سکول" "سکول" "سکولوں" "سکولوں" "سکولو" Masc; -- from DictUrd --changed lin school_V2 = mkV2 (mkV "مدرسہ") ; lin schoolboy_N = mkN "طالب علم" ; lin schooling_N = mkN "تدریس" ; -- from DictUrd @@ -25095,7 +25096,7 @@ lin secularism_N = mkN "لادینیت" ; -- from DictUrd lin secularize_V2 = mkV2 (compoundV "دنیوی یا غیر دینیوی" (mkV "بنانا")) ; lin secure_A = mkA "مامون" ; -- from DictUrd lin secure_V2 = mkV2 (compoundV "محفوظ" (mkV "کرنا")) ; -- from DictUrd -lin security_N = mkN "عافیت" ; -- from DictUrd +lin security_N = mkN "سیکورٹی" ; -- from DictUrd lin sedative_A = mkA "مسکن" ; lin sedative_N = mkN "مسکن" ; lin sedentary_A = mkA "بیٹھے رہنے کا" ; @@ -26806,7 +26807,7 @@ lin sugar_V2 = mkV2 (mkV "شکر") ; lin suggest_V = compoundV "تجویز" (mkV "کرنا") ; lin suggest_V2 = mkV2 (compoundV "عرض" (mkV "کرنا")) ; -- from DictUrd lin suggest_VS = mkVS (compoundV "تجویز" (mkV "کرنا")) ; -lin suggestion_N = mkN "رائے" ; -- from DictUrd -- changed +lin suggestion_N = mkN "تجاویز" ; -- from DictUrd -- changed lin suicidal_A = mkA "خودکشی کے مترادف" ; lin suicide_N = mkN "خود کشی" ; -- from DictUrd lin suit_N = mkN "در خواست" ; -- from DictUrd @@ -28987,7 +28988,7 @@ lin urn_N = mkN "منقش مرتبان" ; lin us_PN = mkPN "ہمیں" ; lin usa_PN = mkPN "سلوک" ; lin usage_N = mkN "عادت" ; -- from DictUrd -lin use_N = mkN "فائدہ" ; -- from DictUrd +lin use_N = mkN "استعمال" ; -- from DictUrd lin use_V = compoundV "استعمال" (mkV "کرنا") ; lin use_V2 = mkV2 (compoundV "عادت" (mkV "ڈالنا")) ; -- from DictUrd -- lin use_V2V = mkV2 (compoundV "استعمال" (mkV "کرنا")) ; @@ -30035,7 +30036,7 @@ lin although_Subj = ss "اگرچہ" ; always_AdV = ss "ہمیشہ" ; and_Conj = sd2 [] "اور" ** {n = Pl} ; - anyone_NP = MassNP (UseN (ParadigmsUrd.mkN "کوی" "کوی" "کوی" "کوی" "کوی" "کوی" Masc )); + anyone_NP = MassNP (UseN (ParadigmsUrd.mkN "ہر کوئی" "ہر کوئی" "ہر کوئی" "ہر کوئی" "ہر کوئی" "ہر کوئی" Masc )); because_Subj = ss "كیونكہ" ; before_Prep = mkPrep ["سے پہلے"] ["سے پہلے"] ; behind_Prep = mkPrep ["كے پیچھے"] ["كے پیچھے"] ; @@ -30187,7 +30188,7 @@ lin but_Subj= ss "لیکن"; lin football_N= mkN "فٹبال"; --lin leave_V= mkV ""; lin annual_A= mkA "سالانہ"; -lin by_Prep= mkPrep "کے ذرییے" "کے ذرییے"; +lin by_Prep= mkPrep "سے" "سے"; --lin go_V= mkV "جانا"; lin about_Prep= mkPrep "کے متعلق" "کے متعلق"; --lin unless_Subj= ss ""; @@ -30209,11 +30210,13 @@ lin savagery_N = mkN "وحشیانہ پن" ; lin officialMasc_N= mkN "افسر"; lin representativeMasc_N= mkN "نمائیندہ"; lin handcart_N= mkN "صورتحال"; -lin unless_Subj= ss "جب تک"; +lin unless_Subj= ss "جب تک نہیں"; lin so_Subj= ss "اس لئے"; lin several_Num = {s = "کئی" ; n = Pl} ; lin few_Num = {s = "چند" ; n = Pl} ; lin even_AdV = ss "حتی کہ"; lin should_VV = mkV "چاہنا" ** { isAux = True} ; --this need to be fixed lin must_VV = (mkV "ضرور چاہنا") ** { isAux = True} ; -- this need to be fixed +lin half_Predet = ss "آدھا" ; +lin till_Prep = mkPrep "جب تک" "جب تک" ; } diff --git a/lib/src/urdu/ExtraUrd.gf b/lib/src/urdu/ExtraUrd.gf index e067cdab7..635d0c8f8 100644 --- a/lib/src/urdu/ExtraUrd.gf +++ b/lib/src/urdu/ExtraUrd.gf @@ -26,24 +26,51 @@ flags coding = utf8 ; -- for VP conjunction -PassVPSlash vps = vps ; -{- ---{ - -- let - -- be = predAux auxBe - -- in { +lincat + VPS = {s : Agr => Str} ; + [VPS] = {s1,s2 : Agr => Str} ; + + lin + BaseVPS = twoTable Agr ; + ConsVPS = consrTable Agr comma ; + + PredVPS np vpi = {s = np.s ! NPC Dir ++ vpi.s ! np.a} ; + + MkVPS t p vp = { + s = \\a => + + let + verb = vp.s ! (VPTense VPPast a) ; -- this needs to be fixed --vp.s ! t.t ! t.a ! p.p ! ODir ! a ; + verbf = verb.fin ++ verb.inf ; + in t.s ++ p.s ++ vp.ad ++ vp.cvp ++ verbf ++ vp.obj.s ++ vp.comp ! a + } ; + + ConjVPS = conjunctDistrTable Agr ; + +-- ComplVPIVV vv vpi = +-- insertObj (\\a => vpi.s ! vv.typ ! a) (predVV vv) ; + +--PassVPSlash vps = vps ; + +-- in progress +PassVPSlash vps = + let + aux = predV (mkV "جانا") + in { -- s = be.s ; - s = vps.s ; + s = table { + VPTense tense agr => {inf = (vps.s ! VPTense VPPast agr).inf ++ (aux.s ! VPTense tense agr).inf ; + fin = (aux.s ! VPTense tense agr).fin}; + vform => {inf = (vps.s ! vform).inf ++ (aux.s!vform).inf; fin = (vps.s!vform).inf} + }; obj = vps.obj ; - subj = vps.c2.c ; - inf = vps.inf; + subj = vps.subj ; + inf = (vps.s ! VPTense VPPast (Ag Masc Sg Pers3_Distant)).inf ++ aux.inf; --this is not correct since, in this case the infinitive form will also inflect for agr i.e. khaya jana, khai jani etc ad = vps.ad; embComp = vps.embComp; prog = vps.prog ; comp = vps.comp ; cvp = vps.cvp - -- } ; + } ; ---}; --} } \ No newline at end of file diff --git a/lib/src/urdu/ParseUrd.gf b/lib/src/urdu/ParseUrd.gf index dc8fe745a..63f0bc59e 100644 --- a/lib/src/urdu/ParseUrd.gf +++ b/lib/src/urdu/ParseUrd.gf @@ -1,9 +1,9 @@ --# -path=.:alltenses:../abstract:../english concrete ParseUrd of ParseEngAbs = - TenseX - [AdN,Adv,SC], + TenseX - [AdN,Adv,SC,PPos,PNeg], -- TextX - [AdN,Adv,SC], CatUrd, - NounUrd, + NounUrd - [PPartNP], AdjectiveUrd, NumeralUrd, ConjunctionUrd, @@ -12,10 +12,13 @@ concrete ParseUrd of ParseEngAbs = PhraseUrd, SentenceUrd, RelativeUrd, + QuestionUrd, SymbolUrd [PN, Symb, String, CN, Card, NP, MkSymb, SymbPN, CNNumNP], -- StructuralUrd, IdiomUrd [NP, VP, Tense, Cl, ProgrVP, ExistNP], - ExtraUrd [NP, Quant, VPSlash, VP, Tense, GenNP, PassVPSlash], + ExtraUrd [NP, Quant, VPSlash, VP, Tense, GenNP, PassVPSlash,Temp,Pol,Conj,VPS,ListVPS,S,Num, CN, + RP, MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS, GenRP,VPI, VPIForm, VPIInf, VPIPresPart, ListVPI, + VV, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,ClSlash, RCl, EmptyRelSlash], DictUrd2 ** -- UNDictUrd ** open MorphoUrd, ResUrd, ParadigmsUrd,CommonX, CommonHindustani, Prelude in { @@ -24,17 +27,17 @@ flags literal=Symb ; lin -{- myself_NP = regNP "myself" singular ; - yourselfSg_NP = regNP "yourself" singular ; - himself_NP = regNP "himself" singular ; - herself_NP = regNP "herself" singular ; - itself_NP = regNP "itself" singular ; - ourself_NP = regNP "ourself" plural ; - yourselfPl_NP = regNP "yourself" plural ; - themself_NP = regNP "themself" plural ; --} + myself_NP = {s = \\_ => kwd ; a = Ag Masc Sg Pers1 }; + yourselfSg_NP = {s = \\_ => kwd ; a = Ag Masc Sg Pers2_Respect }; --regNP "yourself" singular ; + himself_NP = {s = \\_ => kwd ; a = Ag Masc Sg Pers3_Distant }; --regNP "himself" singular ; + herself_NP = {s = \\_ => kwd ; a = Ag Fem Sg Pers3_Distant }; --regNP "herself" singular ; + itself_NP = {s = \\_ => kwd ; a = Ag Masc Sg Pers3_Near }; --regNP "itself" singular ; + ourself_NP = {s = \\_ => kwd ; a = Ag Masc Pl Pers1 }; --regNP "ourself" plural ; + yourselfPl_NP = {s = \\_ => kwd ; a = Ag Masc Pl Pers2_Respect }; --regNP "yourself" plural ; + themself_NP = {s = \\_ => kwd ; a = Ag Masc Pl Pers3_Distant }; --regNP "themself" plural ; + CompoundCN num noun cn = { - s = \\n,c => num.s ++ cn.s ! n ! c ++ noun.s ! num.n ! Dir; + s = \\n,c => num.s ++ cn.s ! n ! c ++ noun.s ! num.n ! Dir; g = cn.g } ; @@ -44,16 +47,16 @@ lin } ; GerundN v = { - s = \\n,c => v.cvp ++ v.s ! Inf ; --the main verb of compound verbs + s = \\n,c => v.cvp ++ v.s ! Inf ; -- v.s ! VF Imperf Pers2_Casual n Masc ++ hwa (Ag Masc n Pers2_Casual) ; --the main verb of compound verbs g = Masc } ; GerundAP v = { - s = \\_,_,_,_ => v.cvp ++ v.s ! Inf --the main verb of compound verbs + s = \\n,g,_,_ => v.cvp ++ v.s ! VF Imperf Pers2_Casual n g ++ hwa (Ag g n Pers2_Casual) ; } ; PastPartAP v = { - s = \\_,_,_,_ => v.cvp ++ v.s ! Inf -- the main verb of compound versb needs to be attached here + s = \\n,g,_,_ => v.cvp ++ v.s ! VF Imperf Pers2_Casual n g ; -- the main verb of compound versb needs to be attached here } ; -- OrdCompar a = {s = \\c => a.s ! AAdj Compar c } ; @@ -66,6 +69,32 @@ ComplVV v a p vp = insertTrans (insertVV (infVV v.isAux vp) (predV v) vp.embComp UseQuantPN q pn = {s = \\c => q.s ! Sg ! pn.g ! Dir ++ pn.s ! Dir ; a = agrP3 pn.g Sg} ; + +PredVPosv np vp = mkClause np vp ; --{ +{- s = \\t,a,b,o => + let + verb = vp.s ! t ! a ! b ! o ! np.a ; + compl = vp.s2 ! np.a + in + case o of { + ODir => compl ++ "," ++ np.s ! npNom ++ verb.aux ++ vp.ad ++ verb.fin ++ verb.adv ++ verb.inf ; + OQuest => verb.aux ++ compl ++ "," ++ np.s ! npNom ++ verb.adv ++ vp.ad ++ verb.fin ++ verb.inf + } + } ; +-} + PredVPovs np vp = mkClause np vp ; --{ +{- s = \\t,a,b,o => + let + verb = vp.s ! t ! a ! b ! o ! np.a ; + compl = vp.s2 ! np.a + in + case o of { + ODir => compl ++ verb.aux ++ verb.adv ++ vp.ad ++ verb.fin ++ verb.inf ++ np.s ! npNom ; + OQuest => verb.aux ++ compl ++ verb.adv ++ vp.ad ++ verb.fin ++ verb.inf ++ np.s ! npNom + } + } ; +-} + {- SlashV2V v p vp = insertObjc (\\a => p.s ++ case p.p of {CPos => ""; _ => "not"} ++ v.c3 ++ @@ -99,8 +128,9 @@ CompVP ant p vp = {s = \\a => ant.s ++ p.s ++ CompS s = {s = \\_ => "kh" ++ s.s} ; -- CompVP vp = {s = \\a => infVP VVInf vp a} ; ---lin --- PPos = {s = [] ; p = CPos} ; --- PNeg = {s = [] ; p = CNeg True} ; -- contracted: don't +lin + PPos = {s = [] ; p = Pos} ; + PNeg = {s = [] ; p = Neg} ; -- contracted: don't + UncNeg = {s = [] ; p = Neg} ; } diff --git a/lib/src/urdu/src/ExtraUrd.gf b/lib/src/urdu/src/ExtraUrd.gf index 93cde49ce..15c56f4de 100644 --- a/lib/src/urdu/src/ExtraUrd.gf +++ b/lib/src/urdu/src/ExtraUrd.gf @@ -26,24 +26,51 @@ flags coding = utf8 ; -- for VP conjunction -PassVPSlash vps = vps ; -{- ---{ - -- let - -- be = predAux auxBe - -- in { +lincat + VPS = {s : Agr => Str} ; + [VPS] = {s1,s2 : Agr => Str} ; + + lin + BaseVPS = twoTable Agr ; + ConsVPS = consrTable Agr comma ; + + PredVPS np vpi = {s = np.s ! NPC Dir ++ vpi.s ! np.a} ; + + MkVPS t p vp = { + s = \\a => + + let + verb = vp.s ! (VPTense VPPast a) ; -- this needs to be fixed --vp.s ! t.t ! t.a ! p.p ! ODir ! a ; + verbf = verb.fin ++ verb.inf ; + in t.s ++ p.s ++ vp.ad ++ vp.cvp ++ verbf ++ vp.obj.s ++ vp.comp ! a + } ; + + ConjVPS = conjunctDistrTable Agr ; + +-- ComplVPIVV vv vpi = +-- insertObj (\\a => vpi.s ! vv.typ ! a) (predVV vv) ; + +--PassVPSlash vps = vps ; + +-- in progress +PassVPSlash vps = + let + aux = predV (mkV "jana") + in { -- s = be.s ; - s = vps.s ; + s = table { + VPTense tense agr => {inf = (vps.s ! VPTense VPPast agr).inf ++ (aux.s ! VPTense tense agr).inf ; + fin = (aux.s ! VPTense tense agr).fin}; + vform => {inf = (vps.s ! vform).inf ++ (aux.s!vform).inf; fin = (vps.s!vform).inf} + }; obj = vps.obj ; - subj = vps.c2.c ; - inf = vps.inf; + subj = vps.subj ; + inf = (vps.s ! VPTense VPPast (Ag Masc Sg Pers3_Distant)).inf ++ aux.inf; --this is not correct since, in this case the infinitive form will also inflect for agr i.e. khaya jana, khai jani etc ad = vps.ad; embComp = vps.embComp; prog = vps.prog ; comp = vps.comp ; cvp = vps.cvp - -- } ; + } ; ---}; --} } \ No newline at end of file