diff --git a/examples/phrasebook/SentencesUrd.gf b/examples/phrasebook/SentencesUrd.gf index 5854a6380..f94c0cdc9 100644 --- a/examples/phrasebook/SentencesUrd.gf +++ b/examples/phrasebook/SentencesUrd.gf @@ -1,4 +1,4 @@ -concrete SentencesUrd of Sentences = NumeralUrd ** SentencesI - [sing,IFemale,YouFamFemale,YouPolFemale,MMust] with +concrete SentencesUrd of Sentences = NumeralUrd ** SentencesI - [sing,IFemale,YouFamFemale,YouPolFemale,MMust,YouPlurFamFemale,YouPlurPolFemale,YouFamMale] with (Syntax = SyntaxUrd), (Symbolic = SymbolicUrd), (Lexicon = LexiconUrd) ** @@ -7,9 +7,11 @@ concrete SentencesUrd of Sentences = NumeralUrd ** SentencesI - [sing,IFemale, ParamX, CommonHindustani in { lin IFemale = mkPerson (P.personalPN myN mjh "" myra myry myrE myry Sg Fem Pers1) ; - YouFamFemale = mkPerson (P.personalPN tw tw tw tyra tyry tyrE tyry Sg Fem Pers2_Casual) ; + YouFamMale = mkPerson (P.personalPN tum tum tum tumhara tumhary tumharay tumhary Pl Masc Pers2_Familiar) ; + YouFamFemale = mkPerson (P.personalPN tum tum tum tyra tyry tyrE tyry Pl Fem Pers2_Familiar) ; YouPolFemale = mkPerson (P.personalPN ap ap ap apka apky apkE apky Pl Fem Pers2_Respect); - + YouPlurFamFemale = mkPerson (P.personalPN tum tum tum tumhara tumhary tumharay tumhary Pl Fem Pers2_Familiar) ; + YouPlurPolFemale = mkPerson (P.personalPN ap ap ap apka apky apkE apky Pl Fem Pers2_Respect) ; flags coding = utf8 ; @@ -20,9 +22,13 @@ oper myry = "میری" ; myrE = "میرے" ; tw = "تو" ; + tum = "تم" ; tyra = "تیرا" ; tyry = "تیری" ; tyrE = "تیرے" ; + tumhara = "تمھارا" ; + tumhary = "تمھاری" ; + tumharay = "تمھارے" ; ap = "آپ" ; apka = ["آپ كا"] ; apky = ["آپ كی"] ; diff --git a/examples/phrasebook/WordsUrd.gf b/examples/phrasebook/WordsUrd.gf index fa5596d21..3655e4c57 100644 --- a/examples/phrasebook/WordsUrd.gf +++ b/examples/phrasebook/WordsUrd.gf @@ -40,7 +40,7 @@ flags coding = utf8 ; Expensive = mkA "مہنگا" ; Fresh = mkA "تازہ" ; Good = L.good_A ; - Suspect = mkA "" ; + Suspect = mkA "برا" ; Warm = L.warm_A ; -- Places require different prepositions to express location; in some languages @@ -154,9 +154,12 @@ flags coding = utf8 ; -- miscellaneous - QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ; - QWhatAge p = mkQS (mkQCl (mkCl (mkNP (modQuant p.poss)) (mkAdv "عمر"))) ; - HowMuchCost item = mkQS (mkQCl (mkCl (modNP item) (mkAdv ["كی قیمت"]))) ; +-- QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ; + QWhatName p = mkQS (mkQCl what_IAdv (mkNP p.poss (P.mkN "نام" "نام" "نام" "نام" "نام" "نام" masculine))) ; +-- QWhatAge p = mkQS (mkQCl (mkCl (mkNP (modQuant p.poss)) (mkAdv "عمر"))) ; + QWhatAge p = mkQS (mkQCl howMuch_IAdv (mkNP (modQuant p.poss) (P.mkN "عمر" "عمر" "عمر" "عمریں" "عمریں" "عمرو" feminine))) ; + HowMuchCost item = mkQS (mkQCl (mkCl (modNP item) (mkAdv ["كی قیمت"]))) ; +-- HowMuchCost item = mkQS (mkQCl howMuch_IAdv (mkNP cost_Predet (modNP item))) ; ItCost item price = mkCl item (mkV2 (mkV "قیمت")) price ; PropOpen p = mkCl p.name open_Adv ; @@ -169,11 +172,11 @@ flags coding = utf8 ; -- Building phrases from strings is complicated: the solution is to use -- mkText : Text -> Text -> Text ; - PSeeYouDate d = mkText (lin Text (Prelude.ss ("ملتے ہیں"))) (mkPhrase (mkUtt d)) ; - PSeeYouPlace p = mkText (lin Text (Prelude.ss ("ملتے ہیں"))) (mkPhrase (mkUtt p.at)) ; + PSeeYouDate d = mkText (mkPhrase (mkUtt d)) (lin Text (Prelude.ss ("ملتے ہیں"))) ; + PSeeYouPlace p = mkText (mkPhrase (mkUtt p.at)) (lin Text (Prelude.ss ("ملتے ہیں"))) ; PSeeYouPlaceDate p d = - mkText (lin Text (Prelude.ss ("ملتے ہیں"))) - (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ; + mkText (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) + (lin Text (Prelude.ss ("ملتے ہیں"))) ; -- Relations are expressed as "می وiفع" or "می سon'س وiفع", as defined by $xOf$ -- below. Languages without productive genitives must use an equivalent of @@ -234,9 +237,10 @@ flags coding = utf8 ; mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ; mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d -> - let day = mkNP (mkPN d) in - mkNPDay day (SyntaxUrd.mkAdv to_Prep day) - (SyntaxUrd.mkAdv to_Prep (mkNP a_Quant sgNum (mkCN (mkN d)))) ; --changed from plNum to sgNum +-- let day = mkNP (mkPN d) in +-- let day = (mkNP (mkCN (mkN d))) in + mkNPDay (mkNP (mkCN (mkN d))) (SyntaxUrd.mkAdv to_Prep (mkNP (mkCN (mkN d)))) + (SyntaxUrd.mkAdv to_Prep (mkNP (mkCN (mkN d)))) ; --changed from plNum to sgNum mkCompoundPlace : Str -> Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \comp, p, i -> -- mkCNPlace (mkCN (P.mkN comp (mkN p))) (P.mkPrep i) to_Prep ; @@ -262,9 +266,12 @@ flags coding = utf8 ; } ; -- mkSuperl : A -> Det = \a -> SyntaxUrd.mkDet the_Art (SyntaxUrd.mkOrd a) ; - mkSuperl : A -> Det = \a -> lin Det { s = \\n,g,c => a.s ! n ! g ! c ! Posit ; n = Sg } ; + mkSuperl : A -> Det = \a -> lin Det { s = \\n,g,c => a.s ! n ! g ! c ! Superl ; n = Sg } ; far_IAdv = ExtraUrd.IAdvAdv (P.mkAdv "دور") ; + what_IAdv = lin IAdv {s = "كیا"} ; + howMuch_IAdv = lin IAdv {s = "كتنی"} ; +-- cost_Predet = lin Predet {s = ["كی قیمت"]} ; ------------------- modN : N -> N = \noun -> lin N {s = \\n,c =>noun.s!n!c++"كا" ; g =noun.g} ; modQuant : Quant -> Quant = \q -> lin Quant {s = \\n,g,c => q.s ! n ! Fem ! c ; a = q.a}; diff --git a/lib/src/hindi/DiffHin.gf b/lib/src/hindi/DiffHin.gf index a03f60c29..e25a34d8a 100644 --- a/lib/src/hindi/DiffHin.gf +++ b/lib/src/hindi/DiffHin.gf @@ -43,7 +43,7 @@ Clause : Type = {s : VPHTense => Polarity => Order => Str} ; quest = case ord of { ODir => []; - OQuest => "कया" }; + OQuest => "क्या" }; na = case b of { Pos => []; @@ -86,7 +86,7 @@ Clause : Type = {s : VPHTense => Polarity => Order => Str} ; quest = case ord of { ODir => []; - OQuest => "कया" }; + OQuest => "क्या" }; na = case b of { Pos => []; @@ -139,9 +139,9 @@ Clause : Type = {s : VPHTense => Polarity => Order => Str} ; => "हैं" ; => "है" ; => "है" ; - => "हैँ" ; - => "हौ" ; - => "हौ" ; + => "हैं" ; + => "हो" ; + => "हो" ; => "हैं" ; => "हैं" ; => "हैं" ; @@ -227,7 +227,7 @@ Clause : Type = {s : VPHTense => Polarity => Order => Str} ; regAdjective : Str -> Adjective; regAdjective x = case x of { - acch + ("ा"|"न") => mkAdjective x ("बहुत" ++ x) ("सब से" ++ x) (acch + "े") ("बहुत" ++ acch + "े") ("सब से" ++ acch + "E") (acch + "े") ("बहुत" ++ acch + "े") ("सब से" ++ acch + "े") + acch + ("ा"|"न") => mkAdjective x ("बहुत" ++ x) ("सब से" ++ x) (acch + "े") ("बहुत" ++ acch + "े") ("सब से" ++ acch + "े") (acch + "े") ("बहुत" ++ acch + "े") ("सब से" ++ acch + "े") (acch + "ी") ("बहुत" ++ acch + "ी") ("सब से" ++ acch + "ी") (acch + "ी") ("बहुत" ++ acch + "ी") ("सब से" ++ acch + "ी") (acch + "ी") ("बहुत" ++ acch + "ी") ("सब से" ++ acch + "ी") (acch +"े") ("बहुत" ++ acch + "े") ("सब से" ++ acch + "े") (acch + "े") ("बहुत" ++ acch + "े") ("सब से" ++ acch + "े") (acch + "े") ("बहुत" ++ acch + "े") ("सब से" ++ acch + "े") (acch + "ी") ("बहुत" ++ acch + "ी") ("सब से" ++ acch + "ी") (acch + "ी") ("बहुत" ++ acch + "ी") ("सब से" ++ acch + "ी") (acch + "ी") ("बहुत" ++ acch + "ी") ("सब से" ++ acch + "ी"); @@ -237,16 +237,6 @@ Clause : Type = {s : VPHTense => Polarity => Order => Str} ; x ("बहुत" ++ x) ("सब से" ++ x) x ("बहुत" ++ x) ("सब से" ++ x) x ("बहुत" ++ x) ("सब से" ++ x) x ("बहुत" ++ x) ("सब से" ++ x) x ("बहुत" ++ x) ("सब से" ++ x) x ("बहुत" ++ x) ("सब से" ++ x) - }; -IrregAdjective : Str -> Adjective; -IrregAdjective x = mkAdjective x ("बहुत" ++ x) ("सब से" ++ x) x ("बहुत" ++ x) ("सब से" ++ x) x ("बहुत" ++ x) ("सब से" ++ x) - x ("बहुत" ++ x) ("सब से" ++ x) x ("बहुत" ++ x) ("सब से" ++ x) x ("बहुत" ++ x) ("सब से" ++ x) - x ("बहुत" ++ x) ("सब से" ++ x) x ("बहुत" ++ x) ("सब से" ++ x) x ("बहुत" ++ x) ("सब से" ++ x) - x ("बहुत" ++ x) ("सब से" ++ x) x ("बहुत" ++ x) ("सब से" ++ x) x ("बहुत" ++ x) ("सब से" ++ x) ; - + }; - - - - } \ No newline at end of file diff --git a/lib/src/hindi/LexiconHin.gf b/lib/src/hindi/LexiconHin.gf index 7ecd47234..e87ff1143 100644 --- a/lib/src/hindi/LexiconHin.gf +++ b/lib/src/hindi/LexiconHin.gf @@ -21,7 +21,7 @@ lin beautiful_A = mkA "ख़ूबसूरत" ; become_VA = mkV "बनना"; beer_N = mkN "बियर" ; - beg_V2V = mkV2V (compoundV "भीख" (mkV "मांगना")) "से" "कह" False; + beg_V2V = mkV2V (compoundV "भीख" (mkV "मांगना")) "से" "ख" False; big_A = mkA "बड़ा" ; bike_N = mkN "सायकल" feminine ; bird_N = mkN "चिड़िया" ; @@ -47,14 +47,14 @@ lin ceiling_N = mkN "छत" feminine ; chair_N = mkN "कुर्सी" ; cheese_N = mkN "पनीर" feminine ; - child_N = mkN "बच्छा" ; + child_N = mkN "बच्चा" ; church_N = mkN "गिरिजा" ; city_N = mkN "शहर" ; clean_A = mkA "साफ़" ; clever_A = mkA "चालाक" ; close_V2 = mkV2 (compoundV "बनद" do_V2); coat_N = mkN "कोट" ; - cold_A = mkA "सरद" ; + cold_A = mkA "सर्द" ; come_V = mkV "आना" ; computer_N = mkN "कंपयूटर" ; country_N = mkN "देश" ; @@ -64,7 +64,7 @@ lin dirty_A = mkA "गंदा" ; distance_N3 = mkN3 (mkN "फ़ासला") (mkPrep "का" "की") "के" "से" ; doctor_N = mkN "डाकटर" ; - dog_N = mkN "कुतता" ; + dog_N = mkN "कुत्ता" ; door_N = mkN "दरवाज़ा" ; drink_V2 = mkV2 (mkV "पीना"); easy_A2V = mkA "आसान" "" ; -- chek for A or a @@ -108,12 +108,13 @@ lin king_N = mkN "राजा" ; know_V2 = mkV2 (mkV "जानना") ; know_VS = mkV "जानना"; + know_VQ = (mkV "जानना") ; lake_N = mkN "झील" feminine ; lamp_N = mkN "चिराग" ; learn_V2 = mkV2 (mkV "सीखना") ; leather_N = mkN "चमड़ा" ; leave_V2 = mkV2 (mkV "चलना") ; - like_V2 = mkV2 (compoundV "पसंद" do_V2); + like_V2 = mkV2 (compoundV "पसंद" do_V2) "को"; listen_V2 = mkV2 (mkV "सुनना") ; live_V = mkV "रहना" ; ---- touch long_A = mkA "लंबा" ; @@ -121,7 +122,7 @@ lin love_N = mkN "प्यार" ; love_V2 = mkV2 (compoundV "प्यार" do_V2) "को"; man_N = mkN "आदमी" masculine; - married_A2 = mkIrregA "शादी शुदा" "से" ; + married_A2 = mkA (mkIrregA "शादी शुदा") "से" ; marriage = mkN "शादी " ; meat_N = mkN "मांस" ; milk_N = mkN "दूध" ; @@ -153,7 +154,7 @@ lin read_V2 = mkV2 (mkV "पढ़ना"); red_A = mkA "लाल" ; religion_N = mkN "मज़हब" ; - restaurant_N = mkN "रेसटोरांट" ; + restaurant_N = mkN "रेसतोरां" ; -- river_N = mkN "दरिया" masculine ; rock_N = mkN "चटटान" ; roof_N = mkN "छत" masculine ; @@ -161,7 +162,7 @@ lin run_V = mkV "दौड़ना" ; say_VS = mkV "कहना" ; school_N = mkN "सकूल" ; - science_N = mkN "सािनस" ; -- vgyan + science_N = mkN "विज्ञान" ; -- vgyan sea_N = mkN "समंदर" ; seek_V2 = mkV2 (compoundV "तलाश" do_V2) ; see_V2 = mkV2 (mkV "देखना") ; @@ -202,7 +203,7 @@ lin trousers_N = mkN "पतलून" ; ugly_A = mkA "बदसूरत" ; understand_V2 = mkV2 (mkV "समझना") ; - university_N = mkN "यूनिवरसिटी" ; + university_N = mkN "विश्व विद्यालय" ; village_N = mkN "गाँव" ; -- check for n or N wait_V2 = mkV2 (compoundV "इंतज़ार" do_V2) "का" ; -- something prtkXa walk_V = mkV "चलना" ; @@ -224,7 +225,7 @@ lin now_Adv = mkAdv "अब" ; already_Adv = mkAdv "पहले ही" ; song_N = mkN "गीत" ; - add_V3 = mkV3 (mkV "जोड़ना") "को" "मीं"; -- confirm + add_V3 = mkV3 (mkV "जोड़ना") "को" "में"; -- confirm number_N = mkN "हनदसह" ; put_V2 = mkV2 (mkV "डालना") ; stop_V = mkV "रुकना" ; @@ -238,7 +239,7 @@ lin dull_A = mkA "नलिक" ; full_A = mkA "भरा" ; heavy_A = mkA "भारी" ; - near_A = mkA "पास" ; + near_A = mkA "नज़दीक" ; rotten_A = mkA "सड़ा" ; round_A = mkA "गोल" ; sharp_A = mkA "तेज़" ; @@ -252,7 +253,7 @@ lin -- bark_N = mkN "बरक" ; -- belly_N = mkN "दh-नय" ; blood_N = mkN "ख़ून" ; - bone_N = mkN "हडडी" feminine ; + bone_N = mkN "हड्डी" feminine ; breast_N = mkN "छाती" ; --stan cloud_N = mkN "बादल" ; day_N = mkN "दिन" ; @@ -288,10 +289,10 @@ lin neck_N = mkN "गर्दन" feminine ; night_N = mkN "रात" feminine ; nose_N = mkN "नाक" ; --- person_N = mkN "XKष" ; +-- person_N = mkN "व्यक्ति" ; road_N = mkN "सड़क" ; root_N = mkN "जड़" feminine ; - rope_N = mkN "रससी" ; + rope_N = mkN "रस्सी" ; salt_N = mkN "नमक" feminine ; sand_N = mkN "रेत" feminine ; seed_N = mkN "बीज" ; @@ -367,7 +368,7 @@ lin ready_A = mkA "तैयार" ; reason_N = mkN "वजह" feminine ; today_Adv = mkAdv "आज" ; --- uncertain_A = mkA ["ग़यर यक़यनय"] ; + uncertain_A = mkA ["ग़यर यक़यनय"] ; } diff --git a/lib/src/hindi/MorphoHin.gf b/lib/src/hindi/MorphoHin.gf index 027486e2d..ebceee0b7 100644 --- a/lib/src/hindi/MorphoHin.gf +++ b/lib/src/hindi/MorphoHin.gf @@ -73,7 +73,7 @@ oper mkN01 lRka = let end = last (lRka) ; lRk = if_then_else Str (eq end "e") lRka (tk 1 lRka) in mkNoun (lRka) (lRk+"े") (lRk+"े") - (lRk+"े") (lRk+"ोँ") (lRk+"ो") + (lRk+"े") (lRk+"ों") (lRk+"ो") Masc ; -- masculine nouns does not end with a, h, e, an diff --git a/lib/src/hindi/NumeralHin.gf b/lib/src/hindi/NumeralHin.gf index fa838c3f0..ac1abdf73 100644 --- a/lib/src/hindi/NumeralHin.gf +++ b/lib/src/hindi/NumeralHin.gf @@ -49,13 +49,13 @@ oper mkR : Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> DSize r4 => a4 + "ालीस" ; r5 => a5 + "न" ; r6 => a6 + "सठ" ; - r7 => a7 + "ततर" ; + r7 => a7 + "त्तर" ; r8 => a8 + "ासी" ; r9 => a9 + "ानwवे" } ; oper rows : DSize => DSize => Str = table { - sg => mkR "गयार" "इककी" "इकत" "इकत" "इकयाव" "इक" "इकह" "इकय" "इकय" ; + sg => mkR "ग्यार" "इककी" "इकत" "इकत" "इकयाव" "इक" "इकह" "इकय" "इकय" ; r2 => mkR "बार" "बाई" "बत" "बैत" "बाव" "बा" "बह" "बय" "ब" ; r3 => mkR "तेर" "तेई" "तैं" "तैंत" "तिरप" "तिर" "तिह" "तिर" "तिर" ; r4 => mkR "चौद" "चौबी" "चौं" "चौव" "चww" "चौँ" "चौह" "चw+र" "चौर" ; @@ -75,28 +75,28 @@ lin pot01 = {s = table {unit => "एक" ; _ => "दमी" } ; size = sg ; n = lin pot0 d = d ; lin pot110 = {s = "दस" ; size = less100 ; n = Pl} ; lin pot111 = {s = rows ! sg ! sg ; size = less100 ; n = Pl} ; -lin pot1to19 d = {s = rows ! d.size ! sg ; size = less100 ; n = d.n} ; +lin pot1to19 d = {s = rows ! d.size ! sg ; size = less100 ; n = Pl} ; lin pot0as1 n = {s = n.s ! unit ; size = table {sg => singl ; _ => less100} ! n.size ; n = n.n } ; -lin pot1 d = {s = d.s ! ten ; size = less100 ; n = d.n} ; -lin pot1plus d e = {s = rows ! e.size ! d.size ; size = less100 ; n = d.n} ; +lin pot1 d = {s = d.s ! ten ; size = less100 ; n = Pl} ; +lin pot1plus d e = {s = rows ! e.size ! d.size ; size = less100 ; n = Pl} ; lin pot1as2 n = {s = n.s ; s2 = "दमी" ; size = n.size ; n = n.n} ; lin pot2 d = {s = (mksau (d.s ! unit) d.size) ; - s2 = d.s ! unit ++ "लाख" ; size = more100 ; n = d.n} ; + s2 = d.s ! unit ++ "लाख" ; size = more100 ; n = Pl} ; lin pot2plus d e = {s = (mksau (d.s ! unit) d.size) ++ e.s ; s2 = (d.s ! unit) ++ "लाख" ++ (mkhazar e.s e.size) ; - size = more100 ; n = d.n} ; + size = more100 ; n = Pl} ; lin pot2as3 n = {s = n.s ; n = n.n} ; lin pot3 n = {s = table { singl => ekhazar ; less100 => n.s ++ "हज़ार" ; - more100 => n.s2 } ! n.size ; n = n.n} ; + more100 => n.s2 } ! n.size ; n = Pl} ; lin pot3plus n m = {s = table {singl => ekhazar ; less100 => n.s ++ "हज़ार" ; - more100 => n.s2 } ! n.size ++ m.s ; n = n.n} ; + more100 => n.s2 } ! n.size ++ m.s ; n = Pl} ; lin D_0 = { s = "०" ; n = Sg}; lin D_1 = { s = "१" ; n = Sg}; diff --git a/lib/src/hindi/ParadigmsHin.gf b/lib/src/hindi/ParadigmsHin.gf index c6e29c15d..c24025086 100644 --- a/lib/src/hindi/ParadigmsHin.gf +++ b/lib/src/hindi/ParadigmsHin.gf @@ -68,11 +68,14 @@ oper mkA = overload { mkA : Str-> A = \s -> regAdjective s ** {lock_A = <>} ; - mkA : Str -> Str -> A2 + mkA : Str -> Str -> A2 = \a,c -> let n = regAdjective a in {s = n.s; c2 = c} ** {lock_A2 = <>} ; + mkA : A -> Str -> A2 + = \a,c -> a ** {c2 = c ; lock_A2 = <>}; + } ; - mkIrregA : Str -> Str -> A2 = \str,c -> makeIrregA str ** {c2 = c ; lock_A2 = <>} ; + mkIrregA : Str -> A = \str -> makeIrregA str ; --2 Verbs diff --git a/lib/src/hindi/StructuralHin.gf b/lib/src/hindi/StructuralHin.gf index 838c68421..43aeb4557 100644 --- a/lib/src/hindi/StructuralHin.gf +++ b/lib/src/hindi/StructuralHin.gf @@ -12,14 +12,14 @@ concrete StructuralHin of Structural = CatHin ** although_Subj = ss "अगरचि" ; always_AdV = ss "हमेशा" ; and_Conj = sd2 [] "और" ** {n = Pl} ; - because_Subj = ss "क्योँकि" ; + because_Subj = ss "क्योंकि" ; before_Prep = mkPrep ["से पहले"] ["से पहले"] ; behind_Prep = mkPrep ["के पीछे"] ["के पीछे"] ; between_Prep = mkPrep ["के दरमियान"] ["के दरमियान"] ; both7and_DConj = sd2 "दोनों" "और" ** {n = Pl} ; but_PConj = ss "लेकिन" ; - by8agent_Prep = mkPrep "" "" ; - by8means_Prep = mkPrep "" "" ; + by8agent_Prep = mkPrep "से" "से" ; + by8means_Prep = mkPrep "पर" "पर" ; can8know_VV,can_VV = mkV "सकना" ** { isAux = True} ; during_Prep = mkPrep ["के दरमियान"] ["के दरमियान"] ; either7or_DConj = sd2 "कोई एक" "या" ** {n = Sg} ; @@ -67,7 +67,7 @@ concrete StructuralHin of Structural = CatHin ** or_Conj = sd2 [] "या" ** {n = Sg} ; otherwise_PConj = ss "नहीं तो" ; part_Prep = mkPrep "" "" ; --- please_Voc = ss "" ; + please_Voc = ss "कृपया" ; possess_Prep = mkPrep "का" "की" ; quite_Adv = ss "काफ़ी" ; she_Pron = personalPN "वह" "उस" "उस" "उस का" "उस की" "उस के" "उस की" Sg Fem Pers3_Distant ; -- chek with prasad about 'Us' @@ -83,8 +83,8 @@ concrete StructuralHin of Structural = CatHin ** there7to_Adv = mkAdv ["वहाँ पर"] ; there7from_Adv = mkAdv ["वहाँ से"] ; therefore_PConj = ss "इस लिये" ; - they_Pron = personalPN "वह" "वह" "वह" "उन का" "उन की" "उन के" "उन की" Pl Masc Pers3_Distant ; ---- - this_Quant = demoPN "यह" "इस" "इन"; + they_Pron = personalPN "वे" "वे" "वे" "उन का" "उन की" "उन के" "उन की" Pl Masc Pers3_Distant ; ---- + this_Quant = demoPN "ये" "इस" "इन"; through_Prep = mkPrep ["में से"] ["में से"] ; too_AdA = ss "बहुत" ; to_Prep = mkPrep "को" "को" ; -- ** {lock_Prep = <>}; @@ -108,21 +108,21 @@ concrete StructuralHin of Structural = CatHin ** with_Prep = mkPrep ["के साथ"] ["के साथ"] ; -- yes_Phr = ss "???" ; yes_Utt = ss "हाँ" ; - youSg_Pron = personalPN "तू" "तुम" "तुम" "तुमहारा" "तुमहारी" "तुमहारे" "तुमहारी" Sg Masc Pers2_Casual ; - youPl_Pron = personalPN "तुम" "तुम" "तुम" "तुमहारा" "तुमहारी" "तुमहारे" "तुमहारी" Pl Masc Pers2_Casual ; + youSg_Pron = personalPN "तू" "तुम" "तुम" "तुम्हारा" "तुम्हारी" "तुम्हारे" "तुम्हारी" Sg Masc Pers2_Casual ; + youPl_Pron = personalPN "तुम" "तुम" "तुम" "तुम्हारा" "तुम्हारी" "तुम्हारे" "तुम्हारी" Pl Masc Pers2_Casual ; youPol_Pron = personalPN "आप" "आप" "आप" "आप का" "आप की" "आप के" "आप की" Sg Masc Pers2_Respect ; -- no_Quant = demoPN "कोई नहीं" ; not_Predet = {s="नहीं"} ; --- if_then_Conj = sd2 "गर तो" ** {n = Sg} ; +-- if_then_Conj = sd2 "अगर तो" ** {n = Sg} ; at_least_AdN = mkAdN ["कम से कम"] ; at_most_AdN = mkAdN ["ज़्यादा से ज़्यादा"]; -- nothing_NP = MassNP (UseN (ParadigmsHin.mkN "कुछ नहीं" Masc )); except_Prep = mkPrep "के सिवाय" "के सिवाय"; -- nobody_NP = MassNP (UseN (ParadigmsHin.mkN "कोई नहीं" Masc )); - as_CAdv = {s = "ितना" ; p = "जितना"} ; + as_CAdv = {s = "इतना" ; p = "जितना"} ; --- have_V2 = mkV2 ""; + have_V2 = mkV2 "रखना"; language_title_Utt = ss "हिन्दी" ; diff --git a/lib/src/hindi/src/DiffHin.gf b/lib/src/hindi/src/DiffHin.gf index a32a64e63..64490f5f8 100644 --- a/lib/src/hindi/src/DiffHin.gf +++ b/lib/src/hindi/src/DiffHin.gf @@ -43,7 +43,7 @@ Clause : Type = {s : VPHTense => Polarity => Order => Str} ; quest = case ord of { ODir => []; - OQuest => "kya:" }; + OQuest => "kX,ya:" }; na = case b of { Pos => []; @@ -86,7 +86,7 @@ Clause : Type = {s : VPHTense => Polarity => Order => Str} ; quest = case ord of { ODir => []; - OQuest => "kya:" }; + OQuest => "kX,ya:" }; na = case b of { Pos => []; @@ -139,9 +139,9 @@ Clause : Type = {s : VPHTense => Polarity => Order => Str} ; => "he+m." ; => "he+" ; => "he+" ; - => "he+n~" ; - => "ho+" ; - => "ho+" ; + => "he+m." ; + => "ho:" ; + => "ho:" ; => "he+m." ; => "he+m." ; => "he+m." ; @@ -227,7 +227,7 @@ Clause : Type = {s : VPHTense => Polarity => Order => Str} ; regAdjective : Str -> Adjective; regAdjective x = case x of { - acch + ("a:"|"an") => mkAdjective x ("bahut" ++ x) ("sab se:" ++ x) (acch + "e:") ("bahut" ++ acch + "e:") ("sab se:" ++ acch + "E") (acch + "e:") ("bahut" ++ acch + "e:") ("sab se:" ++ acch + "e:") + acch + ("a:"|"an") => mkAdjective x ("bahut" ++ x) ("sab se:" ++ x) (acch + "e:") ("bahut" ++ acch + "e:") ("sab se:" ++ acch + "e:") (acch + "e:") ("bahut" ++ acch + "e:") ("sab se:" ++ acch + "e:") (acch + "i:") ("bahut" ++ acch + "i:") ("sab se:" ++ acch + "i:") (acch + "i:") ("bahut" ++ acch + "i:") ("sab se:" ++ acch + "i:") (acch + "i:") ("bahut" ++ acch + "i:") ("sab se:" ++ acch + "i:") (acch +"e:") ("bahut" ++ acch + "e:") ("sab se:" ++ acch + "e:") (acch + "e:") ("bahut" ++ acch + "e:") ("sab se:" ++ acch + "e:") (acch + "e:") ("bahut" ++ acch + "e:") ("sab se:" ++ acch + "e:") (acch + "i:") ("bahut" ++ acch + "i:") ("sab se:" ++ acch + "i:") (acch + "i:") ("bahut" ++ acch + "i:") ("sab se:" ++ acch + "i:") (acch + "i:") ("bahut" ++ acch + "i:") ("sab se:" ++ acch + "i:"); diff --git a/lib/src/hindi/src/ExtraHin.gf b/lib/src/hindi/src/ExtraHin.gf index 6da053425..b3b9e005d 100644 --- a/lib/src/hindi/src/ExtraHin.gf +++ b/lib/src/hindi/src/ExtraHin.gf @@ -1,26 +1,27 @@ ---# -path=.:../abstract:../common:../prelude:/Users/virk/gf_1/lib/src/hindustani concrete ExtraHin of ExtraHinAbs = CatHin ** - open ResHin, Coordination, Prelude, MorphoHin, ParadigmsHin in { - flags coding = utf8; + open ResHin, Coordination, Prelude, MorphoHin, ParadigmsHin,CommonHindustani in { + +flags coding = utf8 ; + lin --- GenNP np = {s = \\_,_,_ => np.s ! NPC Obl ++ "ka" ; a = np.a} ; + GenNP np = {s = \\n,g,c => + case of { + => np.s ! NPC Obl ++ "ke:" ; + => np.s ! NPC Obl ++ "ka:" ; + => np.s ! NPC Obl ++ "ke:" ; + <_,Fem,_> => np.s ! NPC Obl ++ "ki:" + }; + + a = np.a} ; -- each_Det = mkDet "hr kwy" "hr kwy" "hr kwy" "hr kwy" Sg ; - have_V = mkV "rakh-na"; --- IAdvAdv adv = {s = "ktny" ++ adv.s} ; --- ICompAP ap = {s = "ktnE" ++ ap.s ! Sg ! Masc ! Dir ! Posit} ; --- CompoundCN cn1 cn2 = {s = \\n,c => cn1.s ! n ! c ++ cn2.s ! n ! c ; g = cn2.g } ; --- ImperfAP verb = {s = \\n,g,_,_ => verb.s ! VF Habitual Pers3_Distant n g ++ hwa n g } ; --- SlashVP vp = { --- s = vp.s ; --- obj = vp.obj ; --- inf = vp.inf ; --- subj = vp.subj ; --- ad = vp.ad ; --- embComp = vp.embComp; --- comp = vp.comp --- } ; - + have_V = mkV "ra:k'na:"; + IAdvAdv adv = {s = "kitni:" ++ adv.s ! Masc} ; + ICompAP ap = {s = "kitne:" ++ ap.s ! Sg ! Masc ! Dir ! Posit} ; + cost_V = mkV "qi:mat" ; + + -- added for causitives + make_CV = mkVerb "nothing" ** {c2 = "" }; -- for VP conjunction } diff --git a/lib/src/hindi/src/LexiconHin.gf b/lib/src/hindi/src/LexiconHin.gf index 528c87d5d..5107f5aff 100644 --- a/lib/src/hindi/src/LexiconHin.gf +++ b/lib/src/hindi/src/LexiconHin.gf @@ -14,14 +14,14 @@ lin apartment_N = mkN "kamra:" ; apple_N = mkN "se:b" ; -- art_N = mkN "" ; - ask_V2Q = mkV2 (mkV "pu:c'ana:") ; + ask_V2Q = mkV2 (mkV "pu:c'na:") ; baby_N = mkN "bacX,c'a:" ; bad_A = mkA "bura:" ; bank_N = mkN "be+m.k" ; beautiful_A = mkA "xu:bsu:rat" ; - become_VA = mkV "banana:"; + become_VA = mkV "banna:"; beer_N = mkN "biyar" ; - beg_V2V = mkV2V (compoundV "b'i:k'" (mkV "ma:m.gna:")) "se:" "kh" False; + beg_V2V = mkV2V (compoundV "b'i:k'" (mkV "ma:m.gna:")) "se:" "k'" False; big_A = mkA "baRa:" ; bike_N = mkN "sa:ykal" feminine ; bird_N = mkN "ciRiya:" ; @@ -47,14 +47,14 @@ lin ceiling_N = mkN "c'at" feminine ; chair_N = mkN "kurX,si:" ; cheese_N = mkN "pani:r" feminine ; - child_N = mkN "bacX,c'a:" ; + child_N = mkN "bacX,ca:" ; church_N = mkN "girija:" ; city_N = mkN "s*ahar" ; clean_A = mkA "sa:f" ; clever_A = mkA "ca:la:k" ; close_V2 = mkV2 (compoundV "band" do_V2); coat_N = mkN "ko:T" ; - cold_A = mkA "sard" ; + cold_A = mkA "sarX,d" ; come_V = mkV "A:na:" ; computer_N = mkN "kam.pyu:Tar" ; country_N = mkN "de:s*" ; @@ -64,7 +64,7 @@ lin dirty_A = mkA "gam.da:" ; distance_N3 = mkN3 (mkN "fa:sla:") (mkPrep "ka:" "ki:") "ke:" "se:" ; doctor_N = mkN "Da:kTar" ; - dog_N = mkN "kutta:" ; + dog_N = mkN "kutX,ta:" ; door_N = mkN "darva:za:" ; drink_V2 = mkV2 (mkV "pi:na:"); easy_A2V = mkA "A:sa:n" "" ; -- chek for A or a @@ -108,12 +108,13 @@ lin king_N = mkN "ra:ja:" ; know_V2 = mkV2 (mkV "ja:nna:") ; know_VS = mkV "ja:nna:"; + know_VQ = (mkV "ja:nna:") ; lake_N = mkN "j'i:l" feminine ; lamp_N = mkN "cira:g" ; learn_V2 = mkV2 (mkV "si:k'na:") ; leather_N = mkN "camRa:" ; leave_V2 = mkV2 (mkV "calna:") ; - like_V2 = mkV2 (compoundV "pasam.d" do_V2); + like_V2 = mkV2 (compoundV "pasam.d" do_V2) "ko:"; listen_V2 = mkV2 (mkV "sunna:") ; live_V = mkV "rahna:" ; ---- touch long_A = mkA "lam.ba:" ; @@ -121,7 +122,7 @@ lin love_N = mkN "pX,ya:r" ; love_V2 = mkV2 (compoundV "pX,ya:r" do_V2) "ko:"; man_N = mkN "A:dmi:" masculine; - married_A2 = mkIrregA "s*a:di: s*uda:" "se:" ; + married_A2 = mkA (mkIrregA "s*a:di: s*uda:") "se:" ; marriage = mkN "s*a:di: " ; meat_N = mkN "ma:m.s" ; milk_N = mkN "du:d'" ; @@ -153,7 +154,7 @@ lin read_V2 = mkV2 (mkV "paR'na:"); red_A = mkA "la:l" ; religion_N = mkN "mazhab" ; - restaurant_N = mkN "re:sTo:ra:m.T" ; + restaurant_N = mkN "re:sto:ra:m." ; -- river_N = mkN "dariya:" masculine ; rock_N = mkN "caTTa:n" ; roof_N = mkN "c'at" masculine ; @@ -161,7 +162,7 @@ lin run_V = mkV "do+Rna:" ; say_VS = mkV "kahna:" ; school_N = mkN "sku:l" ; - science_N = mkN "sa:ians" ; -- vgyan + science_N = mkN "vijX,n*a:n" ; -- vgyan sea_N = mkN "samam.dar" ; seek_V2 = mkV2 (compoundV "tala:s*" do_V2) ; see_V2 = mkV2 (mkV "de:k'na:") ; @@ -202,7 +203,7 @@ lin trousers_N = mkN "patlu:n" ; ugly_A = mkA "badsu:rat" ; understand_V2 = mkV2 (mkV "samaj'na:") ; - university_N = mkN "yu:nivarsiTi:" ; + university_N = mkN "vis*X,v vidX,ya:lay" ; village_N = mkN "ga:n~v" ; -- check for n or N wait_V2 = mkV2 (compoundV "Im.taza:r" do_V2) "ka:" ; -- something prtkXa walk_V = mkV "calna:" ; @@ -224,7 +225,7 @@ lin now_Adv = mkAdv "Ab" ; already_Adv = mkAdv "pahle: hi:" ; song_N = mkN "gi:t" ; - add_V3 = mkV3 (mkV "jo:Rana:") "ko:" "mi:m."; -- confirm + add_V3 = mkV3 (mkV "jo:Rna:") "ko:" "me:m."; -- confirm number_N = mkN "hndsh" ; put_V2 = mkV2 (mkV "Da:lna:") ; stop_V = mkV "rukna:" ; @@ -238,7 +239,7 @@ lin dull_A = mkA "nalik" ; full_A = mkA "b'ara:" ; heavy_A = mkA "b'a:ri:" ; - near_A = mkA "pa:s" ; + near_A = mkA "nazdi:k" ; rotten_A = mkA "saRa:" ; round_A = mkA "go:l" ; sharp_A = mkA "te:z" ; @@ -252,7 +253,7 @@ lin -- bark_N = mkN "bark" ; -- belly_N = mkN "dh-ny" ; blood_N = mkN "xu:n" ; - bone_N = mkN "haDDi:" feminine ; + bone_N = mkN "haDX,Di:" feminine ; breast_N = mkN "c'a:ti:" ; --stan cloud_N = mkN "ba:dal" ; day_N = mkN "din" ; @@ -288,10 +289,10 @@ lin neck_N = mkN "garX,dan" feminine ; night_N = mkN "ra:t" feminine ; nose_N = mkN "na:k" ; --- person_N = mkN "XKS" ; +-- person_N = mkN "vX,yakX,ti" ; road_N = mkN "saRak" ; root_N = mkN "jaR" feminine ; - rope_N = mkN "rassi:" ; + rope_N = mkN "rasX,si:" ; salt_N = mkN "namak" feminine ; sand_N = mkN "re:t" feminine ; seed_N = mkN "bi:j" ; @@ -367,7 +368,7 @@ lin ready_A = mkA "te+ya:r" ; reason_N = mkN "vajah" feminine ; today_Adv = mkAdv "A:j" ; --- uncertain_A = mkA ["g.yr yqyny"] ; + uncertain_A = mkA ["g.yr yqyny"] ; } diff --git a/lib/src/hindi/src/MorphoHin.gf b/lib/src/hindi/src/MorphoHin.gf index 570471bc0..3f04ff86f 100644 --- a/lib/src/hindi/src/MorphoHin.gf +++ b/lib/src/hindi/src/MorphoHin.gf @@ -73,7 +73,7 @@ oper mkN01 lRka = let end = last (lRka) ; lRk = if_then_else Str (eq end "e") lRka (tk 1 lRka) in mkNoun (lRka) (lRk+"e:") (lRk+"e:") - (lRk+"e:") (lRk+"o:n~") (lRk+"o:") + (lRk+"e:") (lRk+"o:m.") (lRk+"o:") Masc ; -- masculine nouns does not end with a, h, e, an diff --git a/lib/src/hindi/src/NumeralHin.gf b/lib/src/hindi/src/NumeralHin.gf index 8a469338b..c92820fce 100644 --- a/lib/src/hindi/src/NumeralHin.gf +++ b/lib/src/hindi/src/NumeralHin.gf @@ -49,13 +49,13 @@ oper mkR : Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> Str -> DSize r4 => a4 + "a:li:s" ; r5 => a5 + "n" ; r6 => a6 + "saT'" ; - r7 => a7 + "attar" ; + r7 => a7 + "atX,tar" ; r8 => a8 + "a:si:" ; r9 => a9 + "a:nawve:" } ; oper rows : DSize => DSize => Str = table { - sg => mkR "gya:r" "Ikki:" "Ikat" "Ikt" "Ikya:va" "Ik" "Ikh" "Iky" "Iky" ; + sg => mkR "gX,ya:r" "Ikki:" "Ikat" "Ikt" "Ikya:va" "Ik" "Ikh" "Iky" "Iky" ; r2 => mkR "ba:r" "ba:I:" "bat" "be+t" "ba:va" "ba:" "bah" "bay" "b" ; r3 => mkR "te:r" "te:I:" "te+m." "te+m.t" "tirpa" "tir" "tih" "tir" "tir" ; r4 => mkR "co+d" "co+bi:" "co+m." "co+va" "cww" "co+n~" "co+h" "cw+r" "co+r" ; @@ -75,28 +75,28 @@ lin pot01 = {s = table {unit => "E:k" ; _ => "dmi:" } ; size = sg ; n = Sg} ; lin pot0 d = d ; lin pot110 = {s = "ds" ; size = less100 ; n = Pl} ; lin pot111 = {s = rows ! sg ! sg ; size = less100 ; n = Pl} ; -lin pot1to19 d = {s = rows ! d.size ! sg ; size = less100 ; n = d.n} ; +lin pot1to19 d = {s = rows ! d.size ! sg ; size = less100 ; n = Pl} ; lin pot0as1 n = {s = n.s ! unit ; size = table {sg => singl ; _ => less100} ! n.size ; n = n.n } ; -lin pot1 d = {s = d.s ! ten ; size = less100 ; n = d.n} ; -lin pot1plus d e = {s = rows ! e.size ! d.size ; size = less100 ; n = d.n} ; +lin pot1 d = {s = d.s ! ten ; size = less100 ; n = Pl} ; +lin pot1plus d e = {s = rows ! e.size ! d.size ; size = less100 ; n = Pl} ; lin pot1as2 n = {s = n.s ; s2 = "dmi:" ; size = n.size ; n = n.n} ; lin pot2 d = {s = (mksau (d.s ! unit) d.size) ; - s2 = d.s ! unit ++ "la:k'" ; size = more100 ; n = d.n} ; + s2 = d.s ! unit ++ "la:k'" ; size = more100 ; n = Pl} ; lin pot2plus d e = {s = (mksau (d.s ! unit) d.size) ++ e.s ; s2 = (d.s ! unit) ++ "la:k'" ++ (mkhazar e.s e.size) ; - size = more100 ; n = d.n} ; + size = more100 ; n = Pl} ; lin pot2as3 n = {s = n.s ; n = n.n} ; lin pot3 n = {s = table { singl => ekhazar ; less100 => n.s ++ "haza:r" ; - more100 => n.s2 } ! n.size ; n = n.n} ; + more100 => n.s2 } ! n.size ; n = Pl} ; lin pot3plus n m = {s = table {singl => ekhazar ; less100 => n.s ++ "haza:r" ; - more100 => n.s2 } ! n.size ++ m.s ; n = n.n} ; + more100 => n.s2 } ! n.size ++ m.s ; n = Pl} ; lin D_0 = { s = "N0" ; n = Sg}; lin D_1 = { s = "N1" ; n = Sg}; diff --git a/lib/src/hindi/src/StructuralHin.gf b/lib/src/hindi/src/StructuralHin.gf index 4efcffebe..ea8588ad1 100644 --- a/lib/src/hindi/src/StructuralHin.gf +++ b/lib/src/hindi/src/StructuralHin.gf @@ -12,15 +12,15 @@ concrete StructuralHin of Structural = CatHin ** although_Subj = ss "Agarci" ; always_AdV = ss "hame:s*a:" ; and_Conj = sd2 [] "O+r" ** {n = Pl} ; - because_Subj = ss "kX,yo:n~ki" ; - before_Prep = mkPrep ["se: pahale:"] ["se: pahale:"] ; + because_Subj = ss "kX,yo:m.ki" ; + before_Prep = mkPrep ["se: pahle:"] ["se: pahle:"] ; behind_Prep = mkPrep ["ke: pi:c'e:"] ["ke: pi:c'e:"] ; between_Prep = mkPrep ["ke: darmiya:n"] ["ke: darmiya:n"] ; both7and_DConj = sd2 "do:no:m." "O+r" ** {n = Pl} ; but_PConj = ss "le:kin" ; - by8agent_Prep = mkPrep "" "" ; - by8means_Prep = mkPrep "" "" ; - can8know_VV,can_VV = mkV "sakana:" ** { isAux = True} ; + by8agent_Prep = mkPrep "se:" "se:" ; + by8means_Prep = mkPrep "par" "par" ; + can8know_VV,can_VV = mkV "sakna:" ** { isAux = True} ; during_Prep = mkPrep ["ke: darmiya:n"] ["ke: darmiya:n"] ; either7or_DConj = sd2 "ko:I: E:k" "ya:" ** {n = Sg} ; everybody_NP = MassNP (UseN (ParadigmsHin.mkN "har ko:I:" "har ko:I:" "har ko:I:" "har ko:I:" "har ko:I:" "har ko:I:" Masc )); @@ -36,10 +36,10 @@ concrete StructuralHin of Structural = CatHin ** here7to_Adv = mkAdv ["yaha:n~ par"] ; here7from_Adv = mkAdv ["yaha:n~ se:"] ; how_IAdv = ss "ke+se:" ; - how8many_IDet = makeIDet "kitane:" "kitani:" Pl ; - how8much_IAdv = ss "kitana:" ; + how8many_IDet = makeIDet "kitne:" "kitni:" Pl ; + how8much_IAdv = ss "kitna:" ; if_Subj = ss "Agar" ; - in8front_Prep = mkPrep ["ke: sa:mane:"] ["ke: sa:mane:"] ; + in8front_Prep = mkPrep ["ke: sa:mne:"] ["ke: sa:mne:"] ; i_Pron = personalPN "me+m." "muj'" "" "me:ra:" "me:ri:" "me:re:" "me:ri:" Sg Masc Pers1; in_Prep = mkPrep "me:m." "me:m." ; it_Pron = personalPN "yah" "Is" "yah" "Is ka:" "Is ki:" "Us ke:" "Us ki:" Sg Masc Pers3_Near; @@ -67,7 +67,7 @@ concrete StructuralHin of Structural = CatHin ** or_Conj = sd2 [] "ya:" ** {n = Sg} ; otherwise_PConj = ss "nahi:m. to:" ; part_Prep = mkPrep "" "" ; --- please_Voc = ss "" ; + please_Voc = ss "kr.pya:" ; possess_Prep = mkPrep "ka:" "ki:" ; quite_Adv = ss "ka:fi:" ; she_Pron = personalPN "vah" "Us" "Us" "Us ka:" "Us ki:" "Us ke:" "Us ki:" Sg Fem Pers3_Distant ; -- chek with prasad about 'Us' @@ -83,8 +83,8 @@ concrete StructuralHin of Structural = CatHin ** there7to_Adv = mkAdv ["vaha:n~ par"] ; there7from_Adv = mkAdv ["vaha:n~ se:"] ; therefore_PConj = ss "Is liye:" ; - they_Pron = personalPN "vah" "vah" "vah" "Un ka:" "Un ki:" "Un ke:" "Un ki:" Pl Masc Pers3_Distant ; ---- - this_Quant = demoPN "yah" "Is" "In"; + they_Pron = personalPN "ve:" "ve:" "ve:" "Un ka:" "Un ki:" "Un ke:" "Un ki:" Pl Masc Pers3_Distant ; ---- + this_Quant = demoPN "ye:" "Is" "In"; through_Prep = mkPrep ["me:m. se:"] ["me:m. se:"] ; too_AdA = ss "bahut" ; to_Prep = mkPrep "ko:" "ko:" ; -- ** {lock_Prep = <>}; @@ -108,21 +108,21 @@ concrete StructuralHin of Structural = CatHin ** with_Prep = mkPrep ["ke: sa:t'"] ["ke: sa:t'"] ; -- yes_Phr = ss "???" ; yes_Utt = ss "ha:n~" ; - youSg_Pron = personalPN "tu:" "tum" "tum" "tumha:ra:" "tumha:ri:" "tumha:re:" "tumha:ri:" Sg Masc Pers2_Casual ; - youPl_Pron = personalPN "tum" "tum" "tum" "tumha:ra:" "tumha:ri:" "tumha:re:" "tumha:ri:" Pl Masc Pers2_Casual ; + youSg_Pron = personalPN "tu:" "tum" "tum" "tumX,ha:ra:" "tumX,ha:ri:" "tumX,ha:re:" "tumX,ha:ri:" Sg Masc Pers2_Casual ; + youPl_Pron = personalPN "tum" "tum" "tum" "tumX,ha:ra:" "tumX,ha:ri:" "tumX,ha:re:" "tumX,ha:ri:" Pl Masc Pers2_Casual ; youPol_Pron = personalPN "A:p" "A:p" "A:p" "A:p ka:" "A:p ki:" "A:p ke:" "A:p ki:" Sg Masc Pers2_Respect ; -- no_Quant = demoPN "ko:I: nahi:m." ; not_Predet = {s="nahi:m."} ; --- if_then_Conj = sd2 "agar to:" ** {n = Sg} ; +-- if_then_Conj = sd2 "Agar to:" ** {n = Sg} ; at_least_AdN = mkAdN ["kam se: kam"] ; at_most_AdN = mkAdN ["zX,ya:da: se: zX,ya:da:"]; -- nothing_NP = MassNP (UseN (ParadigmsHin.mkN "kuc' nahi:m." Masc )); except_Prep = mkPrep "ke: siva:y" "ke: siva:y"; -- nobody_NP = MassNP (UseN (ParadigmsHin.mkN "ko:I: nahi:m." Masc )); - as_CAdv = {s = "itna:" ; p = "jitna:"} ; + as_CAdv = {s = "Itna:" ; p = "jitna:"} ; --- have_V2 = mkV2 ""; + have_V2 = mkV2 "rak'na:"; language_title_Utt = ss "hinX,di:" ; diff --git a/lib/src/hindustani/ResHindustani.gf b/lib/src/hindustani/ResHindustani.gf index 42692e42d..0b64ddd66 100644 --- a/lib/src/hindustani/ResHindustani.gf +++ b/lib/src/hindustani/ResHindustani.gf @@ -59,7 +59,7 @@ param toNP : ( Case => Str) -> NPCase -> Str = \pn, npc -> case npc of { NPC c => pn ! c ; - NPObj => pn ! Dir ; + 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 { diff --git a/lib/src/persian/AdverbPes.gf b/lib/src/persian/AdverbPes.gf index 963d4bb70..470bc737f 100644 --- a/lib/src/persian/AdverbPes.gf +++ b/lib/src/persian/AdverbPes.gf @@ -11,7 +11,7 @@ concrete AdverbPes of Adverb = CatPes ** open ResPes, Prelude in { s = a.adv ++ cadv.p ++ cadv.s ++ s.s; } ; - PrepNP prep np = {s = prep.s ++ np.s ! NPC aEzafa } ; + PrepNP prep np = {s = prep.s ++ np.s ! NPC bEzafa } ; AdAdv ada adv = { s = ada.s ++ adv.s} ; diff --git a/lib/src/persian/AllPes.gf b/lib/src/persian/AllPes.gf index 2dceab86b..c2173af98 100644 --- a/lib/src/persian/AllPes.gf +++ b/lib/src/persian/AllPes.gf @@ -1,6 +1,6 @@ --# -path=.:../abstract:../common:../prelude concrete AllPes of AllPesAbs = - LangPes --- ExtraPes + LangPes, + ExtraPes ** {} ; diff --git a/lib/src/persian/AllPesAbs.gf b/lib/src/persian/AllPesAbs.gf index afad6aa29..4c66c2f2b 100644 --- a/lib/src/persian/AllPesAbs.gf +++ b/lib/src/persian/AllPesAbs.gf @@ -1,4 +1,4 @@ abstract AllPesAbs = - Lang --- ExtraPesAbs + Lang, + ExtraPesAbs ** {} ; diff --git a/lib/src/persian/ExtraPes.gf b/lib/src/persian/ExtraPes.gf index 87339c8fe..f7eb54f9e 100644 --- a/lib/src/persian/ExtraPes.gf +++ b/lib/src/persian/ExtraPes.gf @@ -4,16 +4,16 @@ concrete ExtraPes of ExtraPesAbs = CatPes ** flags coding = utf8; lin - GenNP np = {s = \\_,_,_ => np.s ! NPC Obl ++ "ka" ; a = np.a} ; + GenNP np = {s = \\_ => np.s ! NPC aEzafa ; a = np.a ; fromPron = True} ; -- changed from fromPron=False for Phrasebook - each_Det = mkDet "hr kwy" "hr kwy" "hr kwy" "hr kwy" Sg ; - have_V = mkV "rakh-na"; - IAdvAdv adv = {s = "ktny" ++ adv.s} ; - ICompAP ap = {s = "ktnE" ++ ap.s ! Sg ! Masc ! Dir ! Posit} ; - cost_V = mkV "qymt" ; +-- each_Det = mkDet "هر کwی" "هر کwی" "هر کwی" "هر کwی" Sg ; +-- have_V = mkV "رکh-ن"; + IAdvAdv adv = {s = "تا چه" ++ adv.s} ; +-- ICompAP ap = {s = "کتنE" ++ ap.s ! Sg ! Masc ! Dir ! Posit} ; +-- cost_V = mkV "قیمت" ; -- added for causitives - make_CV = mkVerb "nothing" ** {c2 = "" }; +-- make_CV = mkVerb "نْتهنگ" ** {c2 = "" }; -- for VP conjunction } diff --git a/lib/src/persian/LexiconPes.gf b/lib/src/persian/LexiconPes.gf index 1853c9281..045df031a 100644 --- a/lib/src/persian/LexiconPes.gf +++ b/lib/src/persian/LexiconPes.gf @@ -179,7 +179,7 @@ concrete LexiconPes of Lexicon = CatPes ** small_A = mkA "کوچک" ; snake_N = mkN01 "مار" animate; sock_N = mkN01 "جوراب" inanimate; - speak_V2 = mkV2 (compoundV "صحبت" (mkV "کردن" "کن")) "با" False; + speak_V2 = mkV2 (compoundV "صحبت" (mkV "کردن" "کن")) "" False; star_N = mkN01 "ستاره" animate; steel_N = mkN01 "فولاد" inanimate; -- also "استیل" stone_N = mkN01 "سنگ" inanimate; diff --git a/lib/src/persian/ParadigmsPes.gf b/lib/src/persian/ParadigmsPes.gf index dc1b4cfcb..c7c2ebd54 100644 --- a/lib/src/persian/ParadigmsPes.gf +++ b/lib/src/persian/ParadigmsPes.gf @@ -122,16 +122,16 @@ oper compoundV : Str -> V -> V = \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ; compoundV : Str -> V2 -> V = \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ; }; - {- + ----2 Adverbs - mkAdv : Str -> Adv = \str -> {s =\\ _ => str ; lock_Adv = <>}; + mkAdv : Str -> Adv = \str -> {s = str ; lock_Adv = <>}; ----2 Prepositions mkPrep : Str -> Prep ; - mkPrep str = makePrep str ** {lock_Prep = <>}; - + mkPrep str = {s = str ; lock_Prep = <>}; +{- --3 Determiners and quantifiers -- mkQuant : overload { diff --git a/lib/src/persian/ResPes.gf b/lib/src/persian/ResPes.gf index f556e6ea3..0d3a11ecc 100644 --- a/lib/src/persian/ResPes.gf +++ b/lib/src/persian/ResPes.gf @@ -11,7 +11,7 @@ resource ResPes = ParamX ** open Prelude,Predef in { coding = utf8; param - + Order = ODir | OQuest ; Animacy = Animate | Inanimate ; @@ -231,7 +231,7 @@ oper -} infVV : Bool -> VPH -> {s : AgrPes => Str} = \isAux,vp -> {s = \\agr => case agr of { - AgPes n p => (vp.comp ! (toAgr n p)) ++ (vp.s ! VVForm (AgPes n p)).inf }}; + AgPes n p => (vp.ad ++ vp.comp ! (toAgr n p)) ++ (vp.s ! VVForm (AgPes n p)).inf }}; insertObjPre : (AgrPes => Str) -> VPHSlash -> VPH = \obj,vp -> { s = vp.s ; diff --git a/lib/src/persian/StructuralPes.gf b/lib/src/persian/StructuralPes.gf index b0303e15d..1b2118aeb 100644 --- a/lib/src/persian/StructuralPes.gf +++ b/lib/src/persian/StructuralPes.gf @@ -112,7 +112,7 @@ concrete StructuralPes of Structural = CatPes ** yes_Utt = ss "بله" ; youSg_Pron = personalPN "تو" Sg PPers2 ; youPl_Pron = personalPN "شما" Pl PPers2 ; - youPol_Pron = personalPN "شما" Sg PPers2 ; + youPol_Pron = personalPN "شما" Pl PPers2 ; -- no_Quant = demoPN "هیچ" ; not_Predet = {s="نه"} ; if_then_Conj = sd2 "اگر" "آنگاه" ** {n = Sg} ; @@ -124,7 +124,7 @@ concrete StructuralPes of Structural = CatPes ** as_CAdv = {s = ["به اندازه ی"] ; p = ""} ; --- have_V2 = mkV2 (mkV "داشتن" "دار") "را" ; + have_V2 = mkV2 (mkV "داشتن" "دار") "را" ; language_title_Utt = ss "پeرسن" ; diff --git a/lib/src/persian/SymbolPes.gf b/lib/src/persian/SymbolPes.gf index 8dbada93f..18d1f54eb 100644 --- a/lib/src/persian/SymbolPes.gf +++ b/lib/src/persian/SymbolPes.gf @@ -3,29 +3,32 @@ concrete SymbolPes of Symbol = CatPes ** open Prelude, ResPes in { flags coding = utf8; -{- + lin -- SymbPN i = {s = \\_ => i.s ; g = Masc} ; - SymbPN i = {s = addGenitiveS i.s ; g = Masc} ; - IntPN i = {s = addGenitiveS i.s ; g = Masc} ; - FloatPN i = {s = addGenitiveS i.s ; g = Masc} ; - NumPN i = {s = \\_ =>i.s ; g = Masc} ; + SymbPN i = {s = i.s ; animacy = Inanimate} ; -- "از" is removed for Phrasebook + IntPN i = {s = i.s ++ "از" ; animacy = Inanimate} ; + FloatPN i = {s = i.s ++ "از" ; animacy = Inanimate} ; + NumPN i = {s = i.s ; animacy = Inanimate} ; CNIntNP cn i = { - s = \\c => cn.s ! Sg ! Dir ++ i.s ; - a = agrP3 cn.g Sg + s = \\ez => cn.s ! aEzafa ! Sg ++ i.s ; + a = agrPesP3 Sg ; + animacy = cn.animacy } ; CNSymbNP det cn xs = { - s = \\c => det.s!Sg!Masc ++ cn.s ! det.n ! Dir ++ xs.s ; - a = agrP3 cn.g det.n + s = \\ez => det.s ++ cn.s ! aEzafa ! det.n ++ xs.s ; + a = agrPesP3 det.n ; + animacy = cn.animacy } ; CNNumNP cn i = { - s = \\c => cn.s ! Sg ! Dir ++ i.s ; - a = agrP3 cn.g Sg + s = \\ez => cn.s ! aEzafa ! Sg ++ i.s ; + a = agrPesP3 Sg ; + animacy = cn.animacy } ; SymbS sy = sy ; SymbNum sy = { s = sy.s ; n = Pl } ; - SymbOrd sy = { s = sy.s ++ "waN" ; n = Pl} ; + SymbOrd sy = { s = sy.s ++ "wN" ; n = Pl} ; lincat @@ -34,14 +37,15 @@ lincat lin MkSymb s = s ; - BaseSymb = infixSS "tE" ; + BaseSymb = infixSS "تE" ; ConsSymb = infixSS "" ; -oper +--oper -- Note: this results in a space before 's, but there's -- not mauch we can do about that. - addGenitiveS : Str -> Case => Str = \s -> - table {_ => s ++ "da" } ; --} +-- addGenitiveS : Str ; +-- addGenitiveS s = +-- s ++ "از" ; + } diff --git a/lib/src/persian/src/AdverbPes.gf b/lib/src/persian/src/AdverbPes.gf index 26018d1ef..97796c636 100644 --- a/lib/src/persian/src/AdverbPes.gf +++ b/lib/src/persian/src/AdverbPes.gf @@ -11,7 +11,7 @@ concrete AdverbPes of Adverb = CatPes ** open ResPes, Prelude in { s = a.adv ++ cadv.p ++ cadv.s ++ s.s; } ; - PrepNP prep np = {s = prep.s ++ np.s ! NPC aEzafa } ; + PrepNP prep np = {s = prep.s ++ np.s ! NPC bEzafa } ; AdAdv ada adv = { s = ada.s ++ adv.s} ; diff --git a/lib/src/persian/src/LexiconPes.gf b/lib/src/persian/src/LexiconPes.gf index 2dedd9911..c28f83ac3 100644 --- a/lib/src/persian/src/LexiconPes.gf +++ b/lib/src/persian/src/LexiconPes.gf @@ -179,7 +179,7 @@ concrete LexiconPes of Lexicon = CatPes ** small_A = mkA "kvc^k" ; snake_N = mkN01 "mAr" animate; sock_N = mkN01 "jvrAb" inanimate; - speak_V2 = mkV2 (compoundV "SHbt" (mkV "krdn" "kn")) "bA" False; + speak_V2 = mkV2 (compoundV "SHbt" (mkV "krdn" "kn")) "" False; star_N = mkN01 "stArh" animate; steel_N = mkN01 "fvlAd" inanimate; -- also "Astyl" stone_N = mkN01 "sng" inanimate; diff --git a/lib/src/persian/src/ParadigmsPes.gf b/lib/src/persian/src/ParadigmsPes.gf index 7f1ccec79..47f9d82e1 100644 --- a/lib/src/persian/src/ParadigmsPes.gf +++ b/lib/src/persian/src/ParadigmsPes.gf @@ -122,16 +122,16 @@ oper compoundV : Str -> V -> V = \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ; compoundV : Str -> V2 -> V = \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ; }; - {- + ----2 Adverbs - mkAdv : Str -> Adv = \str -> {s =\\ _ => str ; lock_Adv = <>}; + mkAdv : Str -> Adv = \str -> {s = str ; lock_Adv = <>}; ----2 Prepositions mkPrep : Str -> Prep ; - mkPrep str = makePrep str ** {lock_Prep = <>}; - + mkPrep str = {s = str ; lock_Prep = <>}; +{- --3 Determiners and quantifiers -- mkQuant : overload { diff --git a/lib/src/persian/src/ResPes.gf b/lib/src/persian/src/ResPes.gf index 406d87083..f2a113238 100644 --- a/lib/src/persian/src/ResPes.gf +++ b/lib/src/persian/src/ResPes.gf @@ -11,7 +11,7 @@ resource ResPes = ParamX ** open Prelude,Predef in { coding = utf8; param - + Order = ODir | OQuest ; Animacy = Animate | Inanimate ; @@ -231,7 +231,7 @@ oper -} infVV : Bool -> VPH -> {s : AgrPes => Str} = \isAux,vp -> {s = \\agr => case agr of { - AgPes n p => (vp.comp ! (toAgr n p)) ++ (vp.s ! VVForm (AgPes n p)).inf }}; + AgPes n p => (vp.ad ++ vp.comp ! (toAgr n p)) ++ (vp.s ! VVForm (AgPes n p)).inf }}; insertObjPre : (AgrPes => Str) -> VPHSlash -> VPH = \obj,vp -> { s = vp.s ; diff --git a/lib/src/persian/src/StructuralPes.gf b/lib/src/persian/src/StructuralPes.gf index 6f0789b40..0f5ebc230 100644 --- a/lib/src/persian/src/StructuralPes.gf +++ b/lib/src/persian/src/StructuralPes.gf @@ -112,7 +112,7 @@ concrete StructuralPes of Structural = CatPes ** yes_Utt = ss "blh" ; youSg_Pron = personalPN "tv" Sg PPers2 ; youPl_Pron = personalPN "CmA" Pl PPers2 ; - youPol_Pron = personalPN "CmA" Sg PPers2 ; + youPol_Pron = personalPN "CmA" Pl PPers2 ; -- no_Quant = demoPN "hyc^" ; not_Predet = {s="nh"} ; if_then_Conj = sd2 "Agr" "A:ngAh" ** {n = Sg} ; @@ -124,7 +124,7 @@ concrete StructuralPes of Structural = CatPes ** as_CAdv = {s = ["bh AndAzh y"] ; p = ""} ; --- have_V2 = mkV2 (mkV "dACtn" "dAr") "rA" ; + have_V2 = mkV2 (mkV "dACtn" "dAr") "rA" ; language_title_Utt = ss "persian" ; diff --git a/lib/src/persian/translit.gfs b/lib/src/persian/translit.gfs index 8a392965c..0ce6b83f0 100644 --- a/lib/src/persian/translit.gfs +++ b/lib/src/persian/translit.gfs @@ -8,3 +8,6 @@ rf -file=src/IdiomPes.gf | ps -env=quotes -to_persian | wf -file=IdiomPes.gf rf -file=src/RelativePes.gf | ps -env=quotes -to_persian | wf -file=RelativePes.gf rf -file=src/AdverbPes.gf | ps -env=quotes -to_persian | wf -file=AdverbPes.gf rf -file=src/SentencePes.gf | ps -env=quotes -to_persian | wf -file=SentencePes.gf +rf -file=src/NumeralPes.gf | ps -env=quotes -to_persian | wf -file=NumeralPes.gf +rf -file=src/SymbolPes.gf | ps -env=quotes -to_persian | wf -file=SymbolPes.gf +rf -file=src/ExtraPes.gf | ps -env=quotes -to_persian | wf -file=ExtraPes.gf \ No newline at end of file diff --git a/lib/src/urdu/LexiconUrd.gf b/lib/src/urdu/LexiconUrd.gf index 24d3aa885..e0070c9d1 100644 --- a/lib/src/urdu/LexiconUrd.gf +++ b/lib/src/urdu/LexiconUrd.gf @@ -111,7 +111,7 @@ concrete LexiconUrd of Lexicon = CatUrd ** learn_V2 = mkV2 (mkV "سیكھنا") ; leather_N = mkN "چمڑا" ; leave_V2 = mkV2 (mkV "جانا") ; - like_V2 = mkV2 (compoundV "پسند" do_V2); + like_V2 = mkV2 (compoundV "پسند" do_V2) "كو"; listen_V2 = mkV2 (mkV "سننا") ; live_V = mkV "رہنا" ; ---- touch long_A = mkA "لمبا" ; diff --git a/lib/src/urdu/NumeralUrd.gf b/lib/src/urdu/NumeralUrd.gf index 6acc13307..2cba897db 100644 --- a/lib/src/urdu/NumeralUrd.gf +++ b/lib/src/urdu/NumeralUrd.gf @@ -75,28 +75,28 @@ lin pot01 = {s = table {unit => "ایك" ; _ => "دمی" } ; size = sg ; n = Sg} lin pot0 d = d ; lin pot110 = {s = "دس" ; size = less100 ; n = Pl} ; lin pot111 = {s = rows ! sg ! sg ; size = less100 ; n = Pl} ; -lin pot1to19 d = {s = rows ! d.size ! sg ; size = less100 ; n = d.n} ; +lin pot1to19 d = {s = rows ! d.size ! sg ; size = less100 ; n = Pl} ; --changed from d.n lin pot0as1 n = {s = n.s ! unit ; size = table {sg => singl ; _ => less100} ! n.size ; n = n.n } ; -lin pot1 d = {s = d.s ! ten ; size = less100 ; n = d.n} ; -lin pot1plus d e = {s = rows ! e.size ! d.size ; size = less100 ; n = d.n} ; +lin pot1 d = {s = d.s ! ten ; size = less100 ; n = Pl} ; --changed from d.n +lin pot1plus d e = {s = rows ! e.size ! d.size ; size = less100 ; n = Pl} ; --changed from d.n lin pot1as2 n = {s = n.s ; s2 = "دمی" ; size = n.size ; n = n.n} ; lin pot2 d = {s = (mksau (d.s ! unit) d.size) ; - s2 = d.s ! unit ++ "لاكھ" ; size = more100 ; n = d.n} ; + s2 = d.s ! unit ++ "لاكھ" ; size = more100 ; n = Pl} ; --changed from d.n lin pot2plus d e = {s = (mksau (d.s ! unit) d.size) ++ e.s ; s2 = (d.s ! unit) ++ "لاكھ" ++ (mkhazar e.s e.size) ; - size = more100 ; n = d.n} ; + size = more100 ; n = Pl} ; lin pot2as3 n = {s = n.s ; n = n.n} ; lin pot3 n = {s = table { singl => ekhazar ; less100 => n.s ++ "ہزار" ; - more100 => n.s2 } ! n.size ; n = n.n} ; + more100 => n.s2 } ! n.size ; n = Pl} ; --changed from d.n lin pot3plus n m = {s = table {singl => ekhazar ; less100 => n.s ++ "ہزار" ; - more100 => n.s2 } ! n.size ++ m.s ; n = n.n} ; + more100 => n.s2 } ! n.size ++ m.s ; n = Pl} ; --changed from d.n lin D_0 = { s = "۰" ; n = Sg}; lin D_1 = { s = "۱" ; n = Sg}; diff --git a/lib/src/urdu/ResHindustani.gf b/lib/src/urdu/ResHindustani.gf index fcbcbb35c..9498cd3e5 100644 --- a/lib/src/urdu/ResHindustani.gf +++ b/lib/src/urdu/ResHindustani.gf @@ -59,7 +59,7 @@ param toNP : ( Case => Str) -> NPCase -> Str = \pn, npc -> case npc of { NPC c => pn ! c ; - NPObj => pn ! Dir ; + 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 { diff --git a/lib/src/urdu/StructuralUrd.gf b/lib/src/urdu/StructuralUrd.gf index 623843eb8..074489746 100644 --- a/lib/src/urdu/StructuralUrd.gf +++ b/lib/src/urdu/StructuralUrd.gf @@ -72,7 +72,7 @@ concrete StructuralUrd of Structural = CatUrd ** possess_Prep = mkPrep "كا" "كی" ; quite_Adv = ss "خاموش" ; she_Pron = personalPN "وہ" "اس" "وہ" ["اس كی"] ["اس كی"] ["اس كے"] ["اس كی"] Sg Fem Pers3_Distant ; - so_AdA = ss "[اس لیE]" ; + so_AdA = ss "اس لیے" ; somebody_NP = MassNP (UseN (ParadigmsUrd.mkN "كوی" "كوی" "كوی" "كوی" "كوی" "كوی" Masc )); someSg_Det = mkDet "كچھ" "كچھ" "كچھ" "كچھ" Sg ; somePl_Det = mkDet "كچھ" "كچھ" "كچھ" "كچھ" Pl ; @@ -89,7 +89,7 @@ concrete StructuralUrd of Structural = CatUrd ** through_Prep = mkPrep ["میں سے"] ["میں سے"] ; too_AdA = ss "بہت" ; to_Prep = mkPrep "كو" "كو" ; -- ** {lock_Prep = <>}; - under_Prep = mkPrep "نیچے" "نیچے" ; -- ** {lock_Prep = <>}; + under_Prep = mkPrep "كے نیچے" "كے نیچے" ; -- ** {lock_Prep = <>}; very_AdA = ss "بہت" ; want_VV = mkV "چاہنا" ** { isAux = False} ; we_Pron = personalPN "ہم" "ہم" "ہم" "ہمارا" "ہماری" "ہمارے" "ہماری" Pl Masc Pers1 ; @@ -118,7 +118,7 @@ concrete StructuralUrd of Structural = CatUrd ** at_least_AdN = mkAdN ["كم از كم"] ; at_most_AdN = mkAdN ["زیادہ سے زیادہ"]; nothing_NP = MassNP (UseN (ParadigmsUrd.mkN "كوی چیز نہیں" "كوی چیز نہیں" "كوی چیز نہیں" "كوی چیز نہیں" "كوی چیز نہیں" "كوی چیز نہیں" Masc )); - except_Prep = mkPrep "سواے" "سواے" ; + except_Prep = mkPrep "كے سواے" "كے سواے" ; nobody_NP = MassNP (UseN (ParadigmsUrd.mkN "كوی نہیں" "كوی نہیں" "كوی نہیں" "كوی نہیں" "كوی نہیں" "كوی نہیں" Masc )); as_CAdv = {s = "اتنا" ; p = "جتنا"} ; diff --git a/lib/src/urdu/src/LexiconUrd.gf b/lib/src/urdu/src/LexiconUrd.gf index ba5d922be..7d708d003 100644 --- a/lib/src/urdu/src/LexiconUrd.gf +++ b/lib/src/urdu/src/LexiconUrd.gf @@ -111,7 +111,7 @@ concrete LexiconUrd of Lexicon = CatUrd ** learn_V2 = mkV2 (mkV "sykh'na") ; leather_N = mkN "cmRa" ; leave_V2 = mkV2 (mkV "jana") ; - like_V2 = mkV2 (compoundV "psnd" do_V2); + like_V2 = mkV2 (compoundV "psnd" do_V2) "kw"; listen_V2 = mkV2 (mkV "snna") ; live_V = mkV "rhna" ; ---- touch long_A = mkA "lmba" ; diff --git a/lib/src/urdu/src/NumeralUrd.gf b/lib/src/urdu/src/NumeralUrd.gf index 400870286..806a15276 100644 --- a/lib/src/urdu/src/NumeralUrd.gf +++ b/lib/src/urdu/src/NumeralUrd.gf @@ -75,28 +75,28 @@ lin pot01 = {s = table {unit => "ayk" ; _ => "dmy" } ; size = sg ; n = Sg} ; lin pot0 d = d ; lin pot110 = {s = "ds" ; size = less100 ; n = Pl} ; lin pot111 = {s = rows ! sg ! sg ; size = less100 ; n = Pl} ; -lin pot1to19 d = {s = rows ! d.size ! sg ; size = less100 ; n = d.n} ; +lin pot1to19 d = {s = rows ! d.size ! sg ; size = less100 ; n = Pl} ; --changed from d.n lin pot0as1 n = {s = n.s ! unit ; size = table {sg => singl ; _ => less100} ! n.size ; n = n.n } ; -lin pot1 d = {s = d.s ! ten ; size = less100 ; n = d.n} ; -lin pot1plus d e = {s = rows ! e.size ! d.size ; size = less100 ; n = d.n} ; +lin pot1 d = {s = d.s ! ten ; size = less100 ; n = Pl} ; --changed from d.n +lin pot1plus d e = {s = rows ! e.size ! d.size ; size = less100 ; n = Pl} ; --changed from d.n lin pot1as2 n = {s = n.s ; s2 = "dmy" ; size = n.size ; n = n.n} ; lin pot2 d = {s = (mksau (d.s ! unit) d.size) ; - s2 = d.s ! unit ++ "lakh'" ; size = more100 ; n = d.n} ; + s2 = d.s ! unit ++ "lakh'" ; size = more100 ; n = Pl} ; --changed from d.n lin pot2plus d e = {s = (mksau (d.s ! unit) d.size) ++ e.s ; s2 = (d.s ! unit) ++ "lakh'" ++ (mkhazar e.s e.size) ; - size = more100 ; n = d.n} ; + size = more100 ; n = Pl} ; lin pot2as3 n = {s = n.s ; n = n.n} ; lin pot3 n = {s = table { singl => ekhazar ; less100 => n.s ++ "hzar" ; - more100 => n.s2 } ! n.size ; n = n.n} ; + more100 => n.s2 } ! n.size ; n = Pl} ; --changed from d.n lin pot3plus n m = {s = table {singl => ekhazar ; less100 => n.s ++ "hzar" ; - more100 => n.s2 } ! n.size ++ m.s ; n = n.n} ; + more100 => n.s2 } ! n.size ++ m.s ; n = Pl} ; --changed from d.n lin D_0 = { s = "N0" ; n = Sg}; lin D_1 = { s = "N1" ; n = Sg};