From a92fbfa8c1e46061cde5dfc6d428f96fd0e83916 Mon Sep 17 00:00:00 2001 From: aarne Date: Wed, 12 Sep 2012 12:37:48 +0000 Subject: [PATCH] added Mlt to lib/src/Make.hs ; removed spurious Hindustani files from lib/urdu --- lib/src/Make.hs | 3 +- lib/src/urdu/CommonHindustani.gf | 198 ------------------- lib/src/urdu/ExtraHindustani.gf | 25 --- lib/src/urdu/ResHindustani.gf | 306 ------------------------------ lib/src/urdu/StringsHindustani.gf | 21 -- 5 files changed, 2 insertions(+), 551 deletions(-) delete mode 100644 lib/src/urdu/CommonHindustani.gf delete mode 100644 lib/src/urdu/ExtraHindustani.gf delete mode 100644 lib/src/urdu/ResHindustani.gf delete mode 100644 lib/src/urdu/StringsHindustani.gf diff --git a/lib/src/Make.hs b/lib/src/Make.hs index 45e1662b2..fb072f14a 100644 --- a/lib/src/Make.hs +++ b/lib/src/Make.hs @@ -45,6 +45,7 @@ langsCoding = [ (("japanese", "Jpn"),""), (("latin", "Lat"),""), (("latvian", "Lav"),""), + (("maltese", "Mlt"),""), (("nepali", "Nep"),""), (("norwegian","Nor"),"Scand"), (("persian", "Pes"),""), @@ -75,7 +76,7 @@ langsLang = langs `except` langsIncomplete langsPresent = langsLang `except` ["Jpn","Nep","Pes","Snd","Tha"] -- languages for which Lang can be compiled but which are incomplete -langsIncomplete = ["Amh","Ara","Lat","Tur"] +langsIncomplete = ["Amh","Ara","Lat","Mlt","Tur"] -- languages for which to compile Try langsAPI = langsLang `except` langsIncomplete diff --git a/lib/src/urdu/CommonHindustani.gf b/lib/src/urdu/CommonHindustani.gf deleted file mode 100644 index 5bf6cf3d7..000000000 --- a/lib/src/urdu/CommonHindustani.gf +++ /dev/null @@ -1,198 +0,0 @@ ---# -path=.:../abstract:../common:../../prelude --- ---1 Hindustaniu auxiliary operations. --- --- This module contains operations that are needed to make the --- resource syntax work. -resource CommonHindustani = ParamX ** open Prelude, Predef in { ---interface CommonHindustani = ParamX ** open Prelude,Predef,StringsHindustani1 in { - flags coding = utf8 ; - - oper - - VPH = { - s : VPHForm => {fin, inf : Str} ; - obj : {s : Str ; a : Agr} ; - subj : VType ; - comp : Agr => Str; - inf : Str; - ad : Str; - embComp : Str ; - prog : Bool ; - cvp : Str ; - } ; - NP : Type = {s : NPCase => Str ; a : Agr} ; - param - VPHForm = - VPTense VPPTense Agr -- 9 * 12 - | VPReq - | VPImp - | VPReqFut - | VPInf - | VPStem - ; - VPPTense = - VPPres - |VPPast - |VPFutr - |VPPerf; - - VPHTense = - VPGenPres -- impf hum nahim "I گo" - | VPImpPast -- impf Ta nahim "I وعنت" - | VPFut -- fut na/nahim "I سہالل گo" - | VPContPres -- stem raha hum nahim "I ام گoiنگ" - | VPContPast -- stem raha Ta nahim "I واس گoiنگ" - | VPContFut - | VPPerfPres -- perf hum na/nahim "I ہاvع گoنع" - | VPPerfPast -- perf Ta na/nahim "I ہاد گoنع" - | VPPerfFut - | VPPerfPresCont - | VPPerfPastCont - | VPPerfFutCont - | VPSubj -- subj na "I مای گo" - ; - Agr = Ag Gender Number UPerson ; - Gender = Masc | Fem ; - Case = Dir | Obl | Voc ; - UPerson = Pers1 - | Pers2_Casual - | Pers2_Familiar - | Pers2_Respect - | Pers3_Near - | Pers3_Distant; - VType = VIntrans | VTrans | VTransPost ; - VerbForm = VF VTense UPerson Number Gender - | Inf - | Root - | Inf_Obl - | Inf_Fem; - VTense = Subj | Perf | Imperf; - CTense = CPresent | CPast | CFuture ; - NPCase = NPC Case | NPObj | NPErg ; - Order = ODir | OQuest ; - - - oper - - mkAdjective : (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36:Str) -> Adjective = - \y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y20,y21,y22,y23,y24,y25,y26,y27,y28,y29,y30,y31,y32,y33,y34,y35,y36 -> { - s = table { - Sg => table { - Masc => table { - Dir => table { - Posit => y1 ; - Compar => y2 ; - Superl => y3 - }; - Obl => table { - Posit => y4 ; - Compar => y5 ; - Superl => y6 - }; - Voc => table { - Posit => y7 ; - Compar => y8 ; - Superl => y9 - } - }; - Fem => table { - Dir => table { - Posit => y10 ; - Compar => y11 ; - Superl => y12 - }; - Obl => table { - Posit => y13 ; - Compar => y14 ; - Superl => y15 - }; - Voc => table { - Posit => y16 ; - Compar => y17 ; - Superl => y18 - } - } - }; - Pl => table { - Masc => table { - Dir => table { - Posit => y19 ; - Compar => y20 ; - Superl => y21 - }; - Obl => table { - Posit => y22 ; - Compar => y23 ; - Superl => y24 - }; - Voc => table { - Posit => y25 ; - Compar => y26 ; - Superl => y27 - } - }; - Fem => table { - Dir => table { - Posit => y28 ; - Compar => y29 ; - Superl => y30 - }; - Obl => table { - Posit => y31 ; - Compar => y32 ; - Superl => y33 - }; - Voc => table { - Posit => y34 ; - Compar => y35 ; - Superl => y36 - } - } - } - } - }; - - Adjective = { s: Number => Gender => Case => Degree => Str }; - - - Verb : Type = {s : VerbForm => Str ; cvp : Str} ; - defaultAgr : Agr = agrP3 Masc Sg ; - agrP3 : Gender -> Number -> Agr = \g,n -> Ag g n Pers3_Distant ; - toAgr : Number -> UPerson -> Gender -> Agr = \n,p,g -> - Ag g n p; - - - fromAgr : Agr -> {n : Number ; p : UPerson ; g : Gender} = \a -> case a of { - Ag g n p => {n = n ; p = p ; g = g} - } ; - - conjAgr : Agr -> Agr -> Agr = \a0,b0 -> - let a = fromAgr a0 ; b = fromAgr b0 - in - toAgr - (conjNumber a.n b.n) - b.p a.g; - - giveNumber : Agr -> Number =\a -> case a of { - Ag _ n _ => n - }; - giveGender : Agr -> Gender =\a -> case a of { - Ag g _ _ => g - }; - --- insertSubj : UPerson -> Str -> Str = \p,s -> --- case p of { Pers1 => s ++ "وں" ; _ => s ++ "ے"}; - - mkOrd : Str -> Str = - \s -> case s of { - "ایك" => "پہلا"; - "دو" => "دوسرا"; - "تیں" => "تعسرا"; - "چار" => "چوتھا"; - "چھ" => "چھٹا"; - _ => s ++ "واں" - }; - -} - diff --git a/lib/src/urdu/ExtraHindustani.gf b/lib/src/urdu/ExtraHindustani.gf deleted file mode 100644 index 0e4e9cae2..000000000 --- a/lib/src/urdu/ExtraHindustani.gf +++ /dev/null @@ -1,25 +0,0 @@ ---concrete ExtraUrd of ExtraUrdAbs = CatUrd ** --- open ResUrd, Coordination, Prelude, MorphoUrd, ParadigmsUrd in { -incomplete concrete ExtraHindustani of ExtraHindustaniAbs = CatHindustani ** - open CommonHindustani,Coordination,ResHindustani, ParamX in { - lin --- GenNP np = {s = \\_,_,_ => np.s ! NPC Obl ++ "كا" ; a = np.a} ; - GenNP np = {s = \\n,g,c => - case of { - <_,Masc,_> => np.s ! NPC Obl ++ "كا" ; - <_,Fem,_> => np.s ! NPC Obl ++ "كی" - }; - - a = np.a} ; - - each_Det = mkDet "ہر كوی" "ہر كوی" "ہر كوی" "ہر كوی" Sg ; - have_V = mkV "راكھنا"; - IAdvAdv adv = {s = "كتنی" ++ adv.s} ; - ICompAP ap = {s = "كتنے" ++ ap.s ! Sg ! Masc ! Dir ! Posit} ; - cost_V = mkV "قیمت" ; - - -- added for causitives - make_CV = mkVerb "نoتہiنگ" ** {c2 = "" }; - --- for VP conjunction -} diff --git a/lib/src/urdu/ResHindustani.gf b/lib/src/urdu/ResHindustani.gf deleted file mode 100644 index 069d70644..000000000 --- a/lib/src/urdu/ResHindustani.gf +++ /dev/null @@ -1,306 +0,0 @@ ---# -path=.:../abstract:../common:../../prelude --- ---1 Hindustaniu auxiliary operations. --- --- This module contains operations that are needed to make the --- resource syntax work. - ---resource ResHindustani = ParamX ** open Prelude,Predef in { -interface ResHindustani = DiffHindustani ** open CommonHindustani, Prelude, Predef in { - - - flags optimize=all ; - coding = utf8; - -param - - --- Order = ODir | OQuest ; - ---2 For $Relative$ - - RAgr = RNoAg | RAg Agr ; - RCase = RC Number Case ; - --- for Numerial - - CardOrd = NCard | NOrd ; - - ----------------------------------------- - -- Hindustani Pronouns - ----------------------------------------- - - Pronoun = P Number Gender Case UPerson; - PersPronForm = PPF Number UPerson Case; - -------------------------------------------- ---Verbs -------------------------------------------- - - - oper - Noun = {s : Number => Case => Str ; g : Gender} ; - - Preposition = {s : Gender => Str}; - DemPronForm = {s : Number => Gender => Case => Str}; - PossPronForm = {s : Number => Gender => Case => Str}; - Determiner = {s : Number => Gender => Case => Str ; n : Number}; - --- a useful oper - eq : Str -> Str -> Bool = \s1,s2-> (pbool2bool (eqStr s1 s2)) ; - - RefPron : Str; - RefPron = kwd ; - - ---------------------------------------------------------- - -- Grammar part - ---------------------------------------------------------- - - - toNP : ( Case => Str) -> NPCase -> Str = \pn, npc -> case npc of { - NPC c => pn ! c ; - NPObj => pn ! Obl ; -- changed during phrasebook 'miltay han jumE ko' - NPErg => pn ! Obl ++ nE - } ; - detcn2NP : (Determiner) -> Noun -> NPCase -> Number -> Str = \dt,cn,npc,nn -> case npc of { --- NPC c => dt.s ! Sg ! Masc ++ cn.s ! nn ! c ; --changed while phrasebook e.g tyry beti where gender of determiner 'tyry' should be dependent on gender of common noum e.g 'beti' - NPC c => dt.s ! nn ! cn.g ! c ++ cn.s ! nn ! c ; - NPObj => dt.s ! nn ! cn.g ! Obl ++ cn.s ! nn ! Dir ; - NPErg => dt.s ! nn ! cn.g ! Obl ++ cn.s ! nn ! Obl ++ nE - } ; - det2NP : (Determiner) -> NPCase -> Str = \dt,npc -> case npc of { - NPC c => dt.s ! Sg ! Masc ! c ; - NPObj => dt.s ! Sg ! Masc ! Dir ; - NPErg => dt.s ! Sg ! Masc ! Obl ++ nE - } ; - ------------------------------------------- --- Agreement transformations ------------------------------------------ - personalAgr : Agr = agrP1 Masc Sg ; - agrP1 : Gender -> Number -> Agr = \g,n -> Ag g n Pers1 ; - - param - CPolarity = - CPos - | CNeg Bool ; -- contracted or not - - oper - contrNeg : Bool -> Polarity -> CPolarity = \b,p -> case p of { - Pos => CPos ; - Neg => CNeg b - } ; - --- NP : Type = {s : NPCase => Str ; a : Agr} ; - - oper - - objVType : VType -> NPCase = \vt -> case vt of { - VTrans => NPObj ; - VTransPost => NPC Dir ; - _ => NPC Obl - } ; - - VPHSlash = VPH ** {c2 : Compl} ; - - Compl : Type = {s : Str ; c : VType} ; - - - predVc : (Verb ** {c2,c1 : Str}) -> VPHSlash = \verb -> - predV verb ** {c2 = {s = verb.c1 ; c = VTrans} } ; - predV : Verb -> VPH ; - predV v = { - s = \\vh => - case vh of { - VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = v.s ! VF Imperf p n g } ; - VPTense VPPast (Ag g n p) => {fin = [] ; inf =v.s ! VF Perf p n g} ; - VPTense VPFutr (Ag g n p) => {fin = copula CFuture n p g ; inf = v.s ! VF Subj p n g } ; - VPTense VPPerf (Ag g n p) => { fin = [] ; inf = v.s ! Root ++ cka g n } ; - VPStem => {fin = [] ; inf = v.s ! Root}; - VPInf => {fin = v.s ! Inf_Obl ; inf = v.s ! Root}; -- for V2V like sonE ky altja krna , check if it is being used anywhere else - VPImp => {fin = v.s ! VF Subj Pers3_Near Pl Masc ; inf = v.s ! Root}; - _ => {fin = [] ; inf = v.s ! Root} - }; - obj = {s = [] ; a = defaultAgr} ; - subj = VIntrans ; - inf = v.s ! Inf; - ad = []; - embComp = []; - prog = False ; - comp = \\_ => [] ; - cvp = v.cvp - } ; - predAux : Aux -> VPH = \verb -> { - s = \\vh => - let - - inf = verb.inf ; - part = verb.ppart ; - - in - case vh of { - VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = part } ; - VPTense VPPast (Ag g n p) => {fin = copula CPast n p g ; inf = part } ; - VPTense VPFutr (Ag g n p) => {fin = copula CFuture n p g ; inf = part ++ hw p n } ; - VPStem => {fin = [] ; inf = "رہ" }; - _ => {fin = part ; inf = [] } - }; - obj = {s = [] ; a = defaultAgr} ; - subj = VIntrans ; - inf = verb.inf; - ad = []; - embComp = []; - prog = False ; - comp = \\_ => [] ; - cvp = [] - } ; - - Aux = { - inf,ppart,prpart : Str - } ; - - auxBe : Aux = { - inf = "" ; - ppart = "" ; - prpart = "" - } ; - - predProg : VPH -> VPH = \verb -> { - s = \\vh => - case vh of { - VPTense VPPres (Ag g n p) => {fin = copula CPresent n p g ; inf = (verb.s!VPStem).inf ++ raha g n} ; - VPTense VPPast (Ag g n p) => {fin = copula CPast n p g ; inf = (verb.s!VPStem).inf ++ raha g n} ; - VPTense VPFutr (Ag g n p) => {fin = copula CFuture n p g ; inf = (verb.s!VPStem).inf ++ raha g n } ; - VPTense VPPerf (Ag g n p) => {fin = copula CPast n p g ; inf = (verb.s!VPTense VPPres (Ag g n p)).inf ++ raha g n } ; - VPStem => {fin = [] ; inf = (verb.s!VPStem).inf }; - _ => {fin = [] ; inf = [] } - }; - obj = verb.obj ; - subj = VIntrans ; - inf = verb.inf; - ad = verb.ad; - embComp = verb.embComp; - prog = True ; - comp = verb.comp ; - cvp = verb.cvp - } ; - - - insertObj : (Agr => Str) -> VPH -> VPH = \obj1,vp -> { - s = vp.s ; - obj = vp.obj ; - subj = vp.subj ; - inf = vp.inf; - ad = vp.ad; - embComp = vp.embComp; - prog = vp.prog ; - comp = \\a => vp.comp ! a ++ obj1 ! a ; - cvp = vp.cvp - } ; - insertVV : Str -> VPH -> Str -> VPH = \obj1,vp,emb -> { - s = vp.s ; - obj = vp.obj ; - subj = vp.subj ; - inf = vp.inf; - ad = vp.ad; - embComp = vp.embComp ++ emb ; - prog = vp.prog ; - comp = \\a => vp.comp ! a ++ obj1 ; - cvp = vp.cvp - } ; - - insertObj2 : (Str) -> VPH -> VPH = \obj1,vp -> { - s = vp.s; - obj = vp.obj ; - subj = vp.subj ; - inf = vp.inf; - ad = vp.ad; - embComp = vp.embComp ++ obj1; - prog = vp.prog ; - comp = vp.comp ; - cvp = vp.cvp - - } ; - - insertObjc : (Agr => Str) -> VPHSlash -> VPHSlash = \obj,vp -> - insertObj obj vp ** {c2 = vp.c2} ; - insertObjc2 : Str -> VPHSlash -> VPHSlash = \obj,vp -> - insertObj2 obj vp ** {c2 = vp.c2} ; - - infVP : Bool -> VPH -> Agr -> Str = \isAux,vp,a -> - vp.obj.s ++ vp.comp ! a ++ vp.inf ; - - infVV : Bool -> VPH -> Str = \isAux,vp -> - case isAux of {False => vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ vp.inf ; True => (vp.s ! VPImp).inf ++ vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) } ; - infV2V : Bool -> VPH -> Str = \isAux,vp -> - case isAux of {False => vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPInf).fin ++ ky ; True => vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPImp).fin ++ ky}; - - - insertObject : NP -> VPHSlash -> VPH = \np,vps -> { - s = vps.s ; - obj = {s = vps.obj.s ++ np.s ! objVType vps.c2.c ++ vps.c2.s ; a = np.a} ; - subj = vps.c2.c ; - inf = vps.inf; - ad = vps.ad; - embComp = vps.embComp; - prog = vps.prog ; - comp = vps.comp ; - cvp = vps.cvp - } ; - - insertObjPre : (Agr => Str) -> VPHSlash -> VPH = \obj,vp -> { - s = vp.s ; - obj = vp.obj ; - inf = vp.inf ; - subj = vp.subj ; - ad = vp.ad ; - embComp = vp.embComp; - prog = vp.prog ; - comp = \\a => obj ! a ++ vp.c2.s ++ vp.comp ! a ; - cvp = vp.cvp - } ; - - insertAdV : Str -> VPH -> VPH = \ad,vp -> { - s = vp.s ; - obj = vp.obj ; - inf = vp.inf ; - subj = vp.subj; - ad = vp.ad ++ ad ; - embComp = vp.embComp; - prog = vp.prog ; - comp = vp.comp ; - cvp = vp.cvp - } ; - --- conjThat : Str = "كہ" ; - - insertEmbCompl : VPH -> Str -> VPH = \vp,emb -> { - s = vp.s ; - obj = vp.obj ; - inf = vp.inf ; - subj = vp.subj; - ad = vp.ad; - embComp = vp.embComp ++ emb; - prog = vp.prog ; - comp = vp.comp ; - cvp = vp.cvp ; - } ; - insertTrans : VPH -> VType -> VPH = \vp,vtype -> { - s = vp.s ; - obj = vp.obj ; - inf = vp.inf ; - subj = vtype; - ad = vp.ad; - embComp = vp.embComp ; - prog = vp.prog ; - comp = vp.comp ; - cvp = vp.cvp - } ; - - compoundAdj : Str -> Str -> Adjective = \s1,s2 -> mkCompoundAdj (regAdjective s1) (regAdjective s2) ; - mkCompoundAdj : Adjective -> Adjective -> Adjective ; - mkCompoundAdj adj1 adj2 = {s = \\n,g,c,d => adj1.s ! n ! g ! c ! d ++ adj2.s ! n ! g ! c ! d} ; - - -} - diff --git a/lib/src/urdu/StringsHindustani.gf b/lib/src/urdu/StringsHindustani.gf deleted file mode 100644 index 9cd6ef3e1..000000000 --- a/lib/src/urdu/StringsHindustani.gf +++ /dev/null @@ -1,21 +0,0 @@ -resource StringsHindustani = { - -flags coding = utf8 ; - -oper - agr = "اگر" ; - awr = "اور" ; - jn = "جن" ; - js = "جس" ; - jw = "جو" ; - kw = "كو" ; - mt = "مت" ; --- nE = "نے" ; - nh = "نہ" ; - sE = "سے" ; - waN = "واں" ; - - comma = "," ; - indfArt = "ایك" ; - -}