forked from GitHub/gf-core
refinements
This commit is contained in:
@@ -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 = ["آپ كی"] ;
|
||||
|
||||
@@ -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};
|
||||
|
||||
@@ -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} ;
|
||||
<CPresent,Sg,Pers2_Respect,_ > => "हैं" ;
|
||||
<CPresent,Sg,Pers3_Near,_ > => "है" ;
|
||||
<CPresent,Sg,Pers3_Distant,_ > => "है" ;
|
||||
<CPresent,Pl,Pers1,_ > => "हैँ" ;
|
||||
<CPresent,Pl,Pers2_Casual,_ > => "हौ" ;
|
||||
<CPresent,Pl,Pers2_Familiar,_ > => "हौ" ;
|
||||
<CPresent,Pl,Pers1,_ > => "हैं" ;
|
||||
<CPresent,Pl,Pers2_Casual,_ > => "हो" ;
|
||||
<CPresent,Pl,Pers2_Familiar,_ > => "हो" ;
|
||||
<CPresent,Pl,Pers2_Respect,_ > => "हैं" ;
|
||||
<CPresent,Pl,Pers3_Near,_ > => "हैं" ;
|
||||
<CPresent,Pl,Pers3_Distant,_ > => "हैं" ;
|
||||
@@ -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) ;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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 ["ग़यर यक़यनय"] ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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};
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 "हिन्दी" ;
|
||||
|
||||
|
||||
@@ -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} ;
|
||||
<CPresent,Sg,Pers2_Respect,_ > => "he+m." ;
|
||||
<CPresent,Sg,Pers3_Near,_ > => "he+" ;
|
||||
<CPresent,Sg,Pers3_Distant,_ > => "he+" ;
|
||||
<CPresent,Pl,Pers1,_ > => "he+n~" ;
|
||||
<CPresent,Pl,Pers2_Casual,_ > => "ho+" ;
|
||||
<CPresent,Pl,Pers2_Familiar,_ > => "ho+" ;
|
||||
<CPresent,Pl,Pers1,_ > => "he+m." ;
|
||||
<CPresent,Pl,Pers2_Casual,_ > => "ho:" ;
|
||||
<CPresent,Pl,Pers2_Familiar,_ > => "ho:" ;
|
||||
<CPresent,Pl,Pers2_Respect,_ > => "he+m." ;
|
||||
<CPresent,Pl,Pers3_Near,_ > => "he+m." ;
|
||||
<CPresent,Pl,Pers3_Distant,_ > => "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:");
|
||||
|
||||
@@ -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 <n,g,c> of {
|
||||
<Sg,Masc,Obl> => np.s ! NPC Obl ++ "ke:" ;
|
||||
<Sg,Masc,_> => np.s ! NPC Obl ++ "ka:" ;
|
||||
<Pl,Masc,_> => 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
|
||||
}
|
||||
|
||||
@@ -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"] ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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};
|
||||
|
||||
@@ -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:" ;
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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} ;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--# -path=.:../abstract:../common:../prelude
|
||||
|
||||
concrete AllPes of AllPesAbs =
|
||||
LangPes
|
||||
-- ExtraPes
|
||||
LangPes,
|
||||
ExtraPes
|
||||
** {} ;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
abstract AllPesAbs =
|
||||
Lang
|
||||
-- ExtraPesAbs
|
||||
Lang,
|
||||
ExtraPesAbs
|
||||
** {} ;
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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رسن" ;
|
||||
|
||||
|
||||
@@ -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 ++ "از" ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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} ;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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" ;
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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 "لمبا" ;
|
||||
|
||||
@@ -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};
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 = "جتنا"} ;
|
||||
|
||||
@@ -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" ;
|
||||
|
||||
@@ -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};
|
||||
|
||||
Reference in New Issue
Block a user