refinements

This commit is contained in:
virk.shafqat
2012-03-05 09:33:23 +00:00
parent b6736ae159
commit 2617a29867
36 changed files with 223 additions and 207 deletions

View File

@@ -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 = ["آپ كی"] ;

View File

@@ -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};

View File

@@ -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) ;
};
}

View File

@@ -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 ["ग़यर यक़यनय"] ;
}

View File

@@ -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

View File

@@ -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};

View File

@@ -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

View File

@@ -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 "हिन्दी" ;

View File

@@ -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:");

View File

@@ -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
}

View File

@@ -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"] ;
}

View File

@@ -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

View File

@@ -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};

View File

@@ -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:" ;

View File

@@ -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 {

View File

@@ -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} ;

View File

@@ -1,6 +1,6 @@
--# -path=.:../abstract:../common:../prelude
concrete AllPes of AllPesAbs =
LangPes
-- ExtraPes
LangPes,
ExtraPes
** {} ;

View File

@@ -1,4 +1,4 @@
abstract AllPesAbs =
Lang
-- ExtraPesAbs
Lang,
ExtraPesAbs
** {} ;

View File

@@ -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
}

View File

@@ -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;

View File

@@ -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 {

View File

@@ -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 ;

View File

@@ -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رسن" ;

View File

@@ -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 ++ "از" ;
}

View File

@@ -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} ;

View File

@@ -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;

View File

@@ -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 {

View File

@@ -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 ;

View File

@@ -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" ;

View File

@@ -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

View File

@@ -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 "لمبا" ;

View File

@@ -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};

View File

@@ -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 {

View File

@@ -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 = "جتنا"} ;

View File

@@ -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" ;

View File

@@ -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};