mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-24 03:52:50 -06:00
arabic.patch
This commit is contained in:
@@ -13,12 +13,11 @@ concrete AdjectiveAra of Adjective = CatAra ** open ResAra, Prelude in {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
-- ComparA a np = {
|
-- ComparA a np = {
|
||||||
-- s = \\_ => a.s ! AAdj Compar ++ "تهَن" ++ np.s ! Nom ;
|
-- s = \\_ => a.s ! AAdj Compar ++ "مِنْ" ++ np.s ! Gen ;
|
||||||
-- isPre = False
|
-- } ;
|
||||||
-- } ;
|
|
||||||
--
|
--
|
||||||
---- $SuperlA$ belongs to determiner syntax in $Noun$.
|
-- $SuperlA$ belongs to determiner syntax in $Noun$.
|
||||||
--
|
--
|
||||||
-- ComplA2 a np = {
|
-- ComplA2 a np = {
|
||||||
-- s = \\_ => a.s ! AAdj Posit ++ a.c2 ++ np.s ! Acc ;
|
-- s = \\_ => a.s ! AAdj Posit ++ a.c2 ++ np.s ! Acc ;
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
concrete AdverbAra of Adverb = CatAra ** open ResAra, Prelude in {
|
concrete AdverbAra of Adverb = CatAra ** open ResAra, Prelude in {
|
||||||
--
|
|
||||||
-- lin
|
lin
|
||||||
-- PositAdvAdj a = {s = a.s ! AAdv} ;
|
PositAdvAdj a = {s = a.s ! Masc ! Sg ! Indef ! Acc} ;
|
||||||
-- ComparAdvAdj cadv a np = {
|
-- ComparAdvAdj cadv a np = {
|
||||||
-- s = cadv.s ++ a.s ! AAdv ++ "تهَن" ++ np.s ! Nom
|
-- s = cadv.s ++ a.s ! AAdv ++ "مِنْ" ++ np.s ! Gen
|
||||||
-- } ;
|
-- } ;
|
||||||
-- ComparAdvAdjS cadv a s = {
|
-- ComparAdvAdjS cadv a s = {
|
||||||
-- s = cadv.s ++ a.s ! AAdv ++ "تهَن" ++ s.s
|
-- s = cadv.s ++ a.s ! AAdv ++ "تهَن" ++ s.s
|
||||||
-- } ;
|
-- } ;
|
||||||
--
|
|
||||||
-- PrepNP prep np = {s = prep.s ++ np.s ! Acc} ;
|
PrepNP prep np = {s = prep.s ++ np.s ! Gen} ;
|
||||||
--
|
|
||||||
-- AdAdv = cc2 ;
|
-- AdAdv = cc2 ;
|
||||||
--
|
--
|
||||||
-- SubjS = cc2 ;
|
-- SubjS = cc2 ;
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ concrete CatAra of Cat = CommonX - [Utt] ** open ResAra, Prelude, ParamX in {
|
|||||||
-- Phrase
|
-- Phrase
|
||||||
|
|
||||||
Utt = {s : Gender => Str};
|
Utt = {s : Gender => Str};
|
||||||
-- Voc = {s : Str} ;
|
|
||||||
|
|
||||||
-- Tensed/Untensed
|
-- Tensed/Untensed
|
||||||
|
|
||||||
@@ -34,13 +33,7 @@ concrete CatAra of Cat = CommonX - [Utt] ** open ResAra, Prelude, ParamX in {
|
|||||||
-- RP = {s : Case => Str ; a : RAgr} ;
|
-- RP = {s : Case => Str ; a : RAgr} ;
|
||||||
--
|
--
|
||||||
-- Verb
|
-- Verb
|
||||||
--
|
|
||||||
{-
|
|
||||||
VP = {
|
|
||||||
s : Tense => Polarity => Order => Agr => Str;
|
|
||||||
comp : NP
|
|
||||||
};
|
|
||||||
-}
|
|
||||||
VP = ResAra.VP ;
|
VP = ResAra.VP ;
|
||||||
Comp = ResAra.Comp ; --{s : AAgr => Case => Str} ;
|
Comp = ResAra.Comp ; --{s : AAgr => Case => Str} ;
|
||||||
-- SC = {s : Str} ;
|
-- SC = {s : Str} ;
|
||||||
|
|||||||
@@ -13,176 +13,194 @@ flags
|
|||||||
|
|
||||||
airplane_N = sdfN "ط؟ر" "فاعِلة" Fem NoHum ;
|
airplane_N = sdfN "ط؟ر" "فاعِلة" Fem NoHum ;
|
||||||
answer_V2S = dirV2 (v3 "جوب") ;
|
answer_V2S = dirV2 (v3 "جوب") ;
|
||||||
apartment_N = regN "شقّ" "فِعّة" "فِعَل" Fem NoHum ;
|
apartment_N = brkN "شقّ" "فِعّة" "فِعَل" Fem NoHum ;
|
||||||
apple_N = sdfN "تفح" "فِعّالة" Fem NoHum ;
|
apple_N = sdfN "تفح" "فِعّالة" Fem NoHum ;
|
||||||
art_N = regN "فنّ" "فَعّ" "فُعُول" Masc NoHum ;
|
art_N = brkN "فنّ" "فَعّ" "فُعُول" Masc NoHum ;
|
||||||
ask_V2Q = dirV2 (v1 "س؟ل" a a) ;
|
ask_V2Q = dirV2 (regV "يَس؟َل") ;
|
||||||
baby_N = regN "طفل" "فِعل" "أَفعال" Masc Hum;
|
-- ask_V2Q = dirV2 (v1 "س؟ل" a a) ;
|
||||||
bad_A = regA "سي؟" "فَعِّل" ;
|
baby_N = brkN "طفل" "فِعل" "أَفعال" Masc Hum;
|
||||||
bank_N = regN "بنك" "فَعل" "فُعُول" Masc NoHum ;
|
bad_A = sndA "سو؟" "فَيِّع" ;
|
||||||
beautiful_A = regA "جمل" "فَعِيل" ;
|
bank_N = brkN "بنك" "فَعل" "فُعُول" Masc NoHum ;
|
||||||
|
beautiful_A = sndA "جمل" "فَعِيل" ;
|
||||||
become_VA = mkVA (v4 "صبح") ;
|
become_VA = mkVA (v4 "صبح") ;
|
||||||
beer_N = sdfN "بير" "فِعلة" Fem NoHum ;
|
beer_N = sdfN "بير" "فِعلة" Fem NoHum ;
|
||||||
beg_V2V = dirV2 (v5 "وسل") ;
|
beg_V2V = dirV2 (v5 "وسل") ;
|
||||||
big_A = regA "كبر" "فَعِيل" ;
|
big_A = sndA "كبر" "فَعِيل" ;
|
||||||
bike_N = sdfN "درج" "فَعّالة" Fem NoHum ;
|
bike_N = sdfN "درج" "فَعّالة" Fem NoHum ;
|
||||||
bird_N = regN "طير" "فَعل" "فُعُول" Masc NoHum;
|
bird_N = brkN "طير" "فَعل" "فُعُول" Masc NoHum;
|
||||||
black_A = clrA "سود" ;
|
black_A = clrA "سود" ;
|
||||||
blue_A = clrA "زرق" ;
|
blue_A = clrA "زرق" ;
|
||||||
boat_N = regN "قرب" "فاعِل" "فَواعِل" Masc NoHum ;
|
boat_N = brkN "قرب" "فاعِل" "فَواعِل" Masc NoHum ;
|
||||||
book_N = regN "كتب" "فِعال" "فُعُل" Masc NoHum ;
|
book_N = brkN "كتب" "فِعال" "فُعُل" Masc NoHum ;
|
||||||
boot_N = sdfN "جزم" "فَعلة" Fem NoHum ;
|
boot_N = sdfN "جزم" "فَعلة" Fem NoHum ;
|
||||||
boss_N = regN "دور" "مُفِيع" "مُفَعاء" Masc Hum ;
|
boss_N = brkN "دور" "مُفِيع" "مُفَعاء" Masc Hum ;
|
||||||
boy_N = regN "صبي" "فَعِل" "فُعلان" Masc Hum ;
|
boy_N = brkN "صبي" "فَعِل" "فُعلان" Masc Hum ;
|
||||||
bread_N = regN "خبز" "فُعل" "أَفعال" Masc NoHum ;
|
bread_N = brkN "خبز" "فُعل" "أَفعال" Masc NoHum ;
|
||||||
break_V2 = dirV2 (v1 "كسر" a u) ;
|
break_V2 = dirV2 (regV "يَكسُر") ;
|
||||||
broad_A = regA "وسع" "فاعِل" ;
|
-- break_V2 = dirV2 (v1 "كسر" a u) ;
|
||||||
brother_N2 = regN "؟خو" "فَع" "فِعلة" Masc Hum ; --FIXME
|
broad_A = sndA "وسع" "فاعِل" ;
|
||||||
brown_A = regA "بني" "فُعِّل";
|
brother_N2 = brkN "؟خو" "فَع" "فِعلة" Masc Hum ; --FIXME
|
||||||
|
brown_A = sndA "بني" "فُعِّل";
|
||||||
butter_N = sdfN "سبد" "فُعلة" Fem NoHum ;
|
butter_N = sdfN "سبد" "فُعلة" Fem NoHum ;
|
||||||
buy_V2 = dirV2 (v8 "شري") ;
|
buy_V2 = dirV2 (v8 "شري") ;
|
||||||
camera_N = sdfN "كمر" "فاعِيلا" Fem NoHum ; -- |Alö taSwIr
|
camera_N = sdfN "كمر" "فاعِيلا" Fem NoHum ; -- |Alö taSwIr
|
||||||
cap_N = sdfN "قبع" "فُعَّلة" Fem NoHum ; --qalnUsö
|
cap_N = sdfN "قبع" "فُعَّلة" Fem NoHum ; --qalnUsö
|
||||||
car_N = sdfN "سير" "فَعّالة" Fem NoHum ;
|
car_N = sdfN "سير" "فَعّالة" Fem NoHum ;
|
||||||
carpet_N = sdfN "سجد" "فَعّالة" Fem NoHum ;
|
carpet_N = sdfN "سجد" "فَعّالة" Fem NoHum ;
|
||||||
cat_N = regN "هرّ" "فِعّة" "فِعَل" Fem NoHum ;
|
cat_N = brkN "هرّ" "فِعّة" "فِعَل" Fem NoHum ;
|
||||||
ceiling_N = regN "سقف" "فَعل" "أَفعُل" Masc NoHum ;
|
ceiling_N = brkN "سقف" "فَعل" "أَفعُل" Masc NoHum ;
|
||||||
chair_N = regN "كرس" "فُعلِي" "فَعالِي" Masc NoHum ;
|
chair_N = brkN "كرس" "فُعلِي" "فَعالِي" Masc NoHum ;
|
||||||
cheese_N = regN "جبن" "فُعلة" "أَفعال" Fem NoHum ;
|
cheese_N = brkN "جبن" "فُعلة" "أَفعال" Fem NoHum ;
|
||||||
child_N = regN "ولد" "فَعَل" "أَفعال" Masc Hum ;
|
child_N = brkN "ولد" "فَعَل" "أَفعال" Masc Hum ;
|
||||||
church_N = regN "كنس" "فَعِيلة" "فَعاٱِل" Fem Hum ;
|
church_N = brkN "كنس" "فَعِيلة" "فَعاٱِل" Fem Hum ;
|
||||||
city_N = regN "مدن" "فَعِيلة" "فُعُل" Fem NoHum ;
|
city_N = brkN "مدن" "فَعِيلة" "فُعُل" Fem NoHum ;
|
||||||
clean_A = regA "نظف" "فَعِيل" ;
|
clean_A = sndA "نظف" "فَعِيل" ;
|
||||||
clever_A = regA "جهد" "مُفتَعِل" ;
|
clever_A = sndA "جهد" "مُفتَعِل" ;
|
||||||
close_V2 = dirV2 (v4 "غلق") ;
|
close_V2 = dirV2 (v4 "غلق") ;
|
||||||
coat_N = regN "عطف" "مِفعَل" "مَفاعِل" Masc NoHum ;
|
coat_N = brkN "عطف" "مِفعَل" "مَفاعِل" Masc NoHum ;
|
||||||
cold_A = regA "برد" "فاعِل" ;
|
cold_A = sndA "برد" "فاعِل" ;
|
||||||
come_V = v1 "جي؟" a i ; --check
|
come_V = v1 "جي؟" a i ; --check
|
||||||
computer_N = regN "حسب" "فاعُول" "فَواعِيل" Masc NoHum ;
|
computer_N = brkN "حسب" "فاعُول" "فَواعِيل" Masc NoHum ;
|
||||||
country_N = regN "بلد" "فَعَل" "فِعال" Masc NoHum ;
|
country_N = brkN "بلد" "فَعَل" "فِعال" Masc NoHum ;
|
||||||
cousin_N = regN "قرب" "فَعِيل" "أَفعِلاء" Masc Hum ; -- (<bn / bnt) (cam[ö] / xAl[ö])
|
cousin_N = brkN "قرب" "فَعِيل" "أَفعِلاء" Masc Hum ; -- (<bn / bnt) (cam[ö] / xAl[ö])
|
||||||
cow_N = sdfN "بقر" "فَعلة" Fem NoHum ;
|
cow_N = sdfN "بقر" "فَعلة" Fem NoHum ;
|
||||||
die_V = v1 "موت" a u ; --check
|
die_V = v1 "موت" a u ; --check
|
||||||
dirty_A = regA "وسخ" "فَعِل" ;
|
dirty_A = sndA "وسخ" "فَعِل" ;
|
||||||
distance_N3 = mkN3 (sdfN "سوف" "مَفاعة" Fem NoHum) "مِن" "إِلَى" ;
|
distance_N3 = mkN3 (sdfN "سوف" "مَفاعة" Fem NoHum) "مِن" "إِلَى" ;
|
||||||
doctor_N = regN "طبّ" "فَعِيل" "أَفِعّاء" Masc Hum ;
|
doctor_N = brkN "طبّ" "فَعِيل" "أَفِعّاء" Masc Hum ;
|
||||||
dog_N = regN "كلب" "فَعل" "فِعال" Masc NoHum ;
|
dog_N = brkN "كلب" "فَعل" "فِعال" Masc NoHum ;
|
||||||
door_N = regN "بوب" "فاع" "أَفعال" Masc NoHum ;
|
door_N = brkN "بوب" "فاع" "أَفعال" Masc NoHum ;
|
||||||
drink_V2 = dirV2 (v1 "شرب" i a) ;
|
drink_V2 = dirV2 (regV "شَرِب") ;
|
||||||
easy_A2V = mkA2 (regA "سهل" "فَعل") "لِ" ;
|
-- drink_V2 = dirV2 (v1 "شرب" i a) ;
|
||||||
eat_V2 = dirV2 (v1 "؟كل" a u) ;
|
easy_A2V = mkA2 (sndA "سهل" "فَعل") "لِ" ;
|
||||||
empty_A = regA "فرج" "فاعِل" ;
|
eat_V2 = dirV2 (regV "يَ؟كُل") ;
|
||||||
enemy_N = regN "عدو" "فَعُلّ" "أَفعاء" Masc Hum ;
|
-- eat_V2 = dirV2 (v1 "؟كل" a u) ;
|
||||||
factory_N = regN "صنع" "مَفعَل" "مَفاعِل" Masc NoHum ;
|
empty_A = sndA "فرغ" "فاعِل" ;
|
||||||
father_N2 = regN "؟ب" "فَع" "أَفعاء" Masc Hum;
|
enemy_N = brkN "عدو" "فَعُلّ" "أَفعاء" Masc Hum ;
|
||||||
|
factory_N = brkN "صنع" "مَفعَل" "مَفاعِل" Masc NoHum ;
|
||||||
|
father_N2 = brkN "؟ب" "فَع" "أَفعاء" Masc Hum;
|
||||||
fear_VS = mkVS (v1 "خشي" i a );
|
fear_VS = mkVS (v1 "خشي" i a );
|
||||||
find_V2 = dirV2 (v1 "وجد" a i ) ;
|
find_V2 = dirV2 (v1 "وجد" a i ) ;
|
||||||
fish_N = regN "سمك" "فَعَلة" "أَفعال" Fem NoHum ;
|
fish_N = brkN "سمك" "فَعَلة" "أَفعال" Fem NoHum ;
|
||||||
floor_N = regN "؟رض" "فَعل" "فَعالِي" Fem NoHum;
|
floor_N = brkN "؟رض" "فَعل" "فَعالِي" Fem NoHum;
|
||||||
forget_V2 = dirV2 (v1 "نسي" i a ) ;
|
forget_V2 = dirV2 (v1 "نسي" i a ) ;
|
||||||
fridge_N = sdfN "برد" "فَعّال" Masc NoHum ;
|
fridge_N = sdfN "برد" "فَعّال" Masc NoHum ;
|
||||||
friend_N = regN "صدق" "فَعِيل" "أَفعِلاء" Masc Hum ; --SadIqö
|
friend_N = brkN "صدق" "فَعِيل" "أَفعِلاء" Masc Hum ; --SadIqö
|
||||||
fruit_N = regN "فكه" "فاعِلة" "فَواعِل" Fem NoHum ;
|
fruit_N = brkN "فكه" "فاعِلة" "فَواعِل" Fem NoHum ;
|
||||||
fun_AV = regA "متع" "مُفعِل" ;
|
fun_AV = sndA "متع" "مُفعِل" ;
|
||||||
garden_N = regN "حدق" "فَعِيلة" "فَعاٱِل" Fem NoHum ;
|
garden_N = brkN "حدق" "فَعِيلة" "فَعاٱِل" Fem NoHum ;
|
||||||
girl_N = regN "بنت" "فِعل" "فَعال" Fem Hum ;
|
girl_N = brkN "بنت" "فِعل" "فَعال" Fem Hum ;
|
||||||
glove_N = sdfN "قفز" "فُعّال" Masc NoHum ;
|
glove_N = sdfN "قفز" "فُعّال" Masc NoHum ;
|
||||||
gold_N = sdfN "ذهب" "فَعَل" Masc NoHum ;
|
gold_N = sdfN "ذهب" "فَعَل" Masc NoHum ;
|
||||||
good_A = regA "جود" "فَيِّع" ; -- Hasan, HisAn
|
good_A = sndA "جود" "فَيِّع" ; -- Hasan, HisAn
|
||||||
go_V = v1 "ذهب" a a ;
|
go_V = regV "يَذهَب" ;
|
||||||
|
-- go_V = v1 "ذهب" a a ;
|
||||||
green_A = clrA "خضر" ;
|
green_A = clrA "خضر" ;
|
||||||
harbour_N = regN "رف؟" "مَفعَل" "مَفاعِل" Masc NoHum ; --mInA', marsaY
|
harbour_N = brkN "رف؟" "مَفعَل" "مَفاعِل" Masc NoHum ; --mInA', marsaY
|
||||||
hate_V2 = dirV2 (v1 "كره" a i ) ;
|
hate_V2 = dirV2 (regV "كَرِه") ;
|
||||||
hat_N = sdfN "قبع" "فُعَّلة" Fem NoHum ;
|
hat_N = sdfN "قبع" "فُعَّلة" Fem NoHum ;
|
||||||
have_V2 = dirV2 (v1 "ملك" a i) ; --FIXME, have is PP in Arabic
|
have_V2 = dirV2 (regV "يَملِك") ;
|
||||||
hear_V2 = dirV2 (v1 "سمع" i a) ;
|
-- have_V2 = dirV2 (v1 "ملك" a i) ;
|
||||||
hill_N = regN "هضب" "فَعلة" "فِعال" Fem NoHum ; --tallö, rAbiyö
|
hear_V2 = dirV2 (regV "سَمِع") ;
|
||||||
|
-- hear_V2 = dirV2 (v1 "سمع" i a) ;
|
||||||
|
hill_N = brkN "هضب" "فَعلة" "فِعال" Fem NoHum ; --tallö, rAbiyö
|
||||||
hope_VS = mkVS (v1 "رجو" a u) ; --check
|
hope_VS = mkVS (v1 "رجو" a u) ; --check
|
||||||
horse_N = regN "حصن" "فِعال" "أَفعِلة" Masc NoHum ;
|
horse_N = brkN "حصن" "فِعال" "أَفعِلة" Masc NoHum ;
|
||||||
hot_A = regA "سخن" "فاعِل" ; --HAr
|
hot_A = sndA "سخن" "فاعِل" ; --HAr
|
||||||
house_N = regN "بيت" "فَعل" "فُعُول" Masc NoHum ; --manzil
|
house_N = brkN "بيت" "فَعل" "فُعُول" Masc NoHum ; --manzil
|
||||||
important_A = regA "هيم" "فاعّ" ;
|
important_A = sndA "هيم" "فاعّ" ;
|
||||||
industry_N = sdfN "صنع" "فِعالة" Fem NoHum ;
|
industry_N = sdfN "صنع" "فِعالة" Fem NoHum ;
|
||||||
iron_N = regN "حدّ" "فَعِيل" "فَعائِل" Masc NoHum ;
|
iron_N = brkN "حدّ" "فَعِيل" "فَعائِل" Masc NoHum ;
|
||||||
king_N = regN "ملك" "فَعِل" "فُعُول" Masc Hum ;
|
king_N = brkN "ملك" "فَعِل" "فُعُول" Masc Hum ;
|
||||||
know_V2 = dirV2 (v1 "عرف" i a) ;
|
know_V2 = dirV2 (regV "عَرِف") ;
|
||||||
|
-- know_V2 = dirV2 (v1 "عرف" i a) ;
|
||||||
lake_N = sdfN "بحر" "فُعَيلة" Fem NoHum ;
|
lake_N = sdfN "بحر" "فُعَيلة" Fem NoHum ;
|
||||||
lamp_N = regN "صبح" "مِفعال" "مَفاعِيل" Masc NoHum ; --qanDIl, fAnUs
|
lamp_N = brkN "صبح" "مِفعال" "مَفاعِيل" Masc NoHum ; --qanDIl, fAnUs
|
||||||
learn_V2 = dirV2 (v5 "علم") ;
|
learn_V2 = dirV2 (v5 "علم") ;
|
||||||
leather_N = regN "جلد" "فِعل" "فُعُول" Masc NoHum ;
|
leather_N = brkN "جلد" "فِعل" "فُعُول" Masc NoHum ;
|
||||||
leave_V2 = dirV2 (v1 "ترك" a u) ;
|
leave_V2 = dirV2 (regV "يَترُك") ;
|
||||||
like_V2 = dirV2 (v1 "هوي" i a) ; --check
|
-- leave_V2 = dirV2 (v1 "ترك" a u) ;
|
||||||
|
like_V2 = dirV2 (regV "هَوِي") ;
|
||||||
|
-- like_V2 = dirV2 (v1 "هوي" i a) ; --check
|
||||||
listen_V2 = mkV2 (v8 "سمع") "إِلَى" ;
|
listen_V2 = mkV2 (v8 "سمع") "إِلَى" ;
|
||||||
live_V = v1 "عيش" a i ; --check
|
live_V = v1 "عيش" a i ; --check
|
||||||
long_A = regA "طول" "فَعِيل" ;
|
long_A = sndA "طول" "فَعِيل" ;
|
||||||
lose_V2 = dirV2 (v1 "خسر" i a) ; --Dayyac, >aDAc
|
lose_V2 = dirV2 (regV "خَسِر") ; --Dayyac, >aDAc
|
||||||
love_N = regN "حبّ" "فُعّ" "فُعّ" Masc NoHum ; -- no plur
|
-- lose_V2 = dirV2 (v1 "خسر" i a) ; --Dayyac, >aDAc
|
||||||
|
love_N = brkN "حبّ" "فُعّ" "فُعّ" Masc NoHum ; -- no plur
|
||||||
love_V2 = dirV2 (v1 "حبّ" a i) ;
|
love_V2 = dirV2 (v1 "حبّ" a i) ;
|
||||||
man_N = regN "رجل" "فَعُل" "فِعال" Masc Hum ;
|
man_N = brkN "رجل" "فَعُل" "فِعال" Masc Hum ;
|
||||||
married_A2 = mkA2 (regA "زوج" "مُتَفَعِّل") "مِن" ;
|
married_A2 = mkA2 (sndA "زوج" "مُتَفَعِّل") "مِن" ;
|
||||||
meat_N = regN "لحم" "فَعلة" "فُعُول" Masc NoHum ;
|
meat_N = brkN "لحم" "فَعلة" "فُعُول" Masc NoHum ;
|
||||||
milk_N = regN "حلب" "فَعِيل" "فَعِيل" Masc NoHum ; --no plur
|
milk_N = brkN "حلب" "فَعِيل" "فَعِيل" Masc NoHum ; --no plur
|
||||||
moon_N = regN "قمر" "فَعَل" "أَفعال" Masc NoHum ;
|
moon_N = brkN "قمر" "فَعَل" "أَفعال" Masc NoHum ;
|
||||||
mother_N2 = sdfN "؟م" "فُعّ" Fem Hum ;
|
mother_N2 = sdfN "؟م" "فُعّ" Fem Hum ;
|
||||||
mountain_N = regN "جبل" "فَعَل" "فِعال" Masc NoHum ;
|
mountain_N = brkN "جبل" "فَعَل" "فِعال" Masc NoHum ;
|
||||||
music_N = mkN (reg "مُوسِيقَى" "مُوسِيقَى") Fem NoHum ; --no plur
|
music_N = mkN (reg "مُوسِيقَى" "مُوسِيقَى") Fem NoHum ; --no plur
|
||||||
narrow_A = regA "ضيق" "فَعِّل" ;
|
narrow_A = sndA "ضيق" "فَعِّل" ;
|
||||||
new_A = regA "جدّ" "فَعِيل" ;
|
new_A = sndA "جدّ" "فَعِيل" ;
|
||||||
newspaper_N = regN "صحف" "فَعِيلة" "فُعُل" Fem NoHum ;
|
newspaper_N = brkN "صحف" "فَعِيلة" "فُعُل" Fem NoHum ;
|
||||||
oil_N = regN "زيت" "فَعل" "فُعُول" Masc NoHum ;
|
oil_N = brkN "زيت" "فَعل" "فُعُول" Masc NoHum ;
|
||||||
old_A = regA "قدم" "فَعِيل" ;
|
old_A = sndA "قدم" "فَعِيل" ;
|
||||||
open_V2 = dirV2 (v1 "فتح" a a ) ;
|
open_V2 = dirV2 (regV "يَفتَح") ;
|
||||||
paint_V2A = mkV2A (v1 "دهن" a u ) [] ;
|
-- open_V2 = dirV2 (v1 "فتح" a a ) ;
|
||||||
paper_N = regN "ورق" "فَعَلة" "أَفعال" Fem NoHum ;
|
paint_V2A = mkV2A (regV "يَدهَن" ) [] ;
|
||||||
|
-- paint_V2A = mkV2A (v1 "دهن" a a ) [] ;
|
||||||
|
paper_N = brkN "ورق" "فَعَلة" "أَفعال" Fem NoHum ;
|
||||||
-- paris_PN = regPN "بارِيس" nonhuman ;
|
-- paris_PN = regPN "بارِيس" nonhuman ;
|
||||||
peace_N = regN "سلم" "فَعال" "فَعال" Masc NoHum; --no plur
|
peace_N = brkN "سلم" "فَعال" "فَعال" Masc NoHum; --no plur
|
||||||
pen_N = regN "قلم" "فَعَل" "أَفعال" Masc NoHum;
|
pen_N = brkN "قلم" "فَعَل" "أَفعال" Masc NoHum;
|
||||||
planet_N = mkN (reg "كَوكَب" "كَواكِب") Masc NoHum ; -- quadriconsonantal
|
planet_N = mkN (reg "كَوكَب" "كَواكِب") Masc NoHum ; -- quadriconsonantal
|
||||||
plastic_N = mkN (sndf "بلاستِيك") Masc NoHum ;
|
plastic_N = mkN (sndf "بلاستِيك") Masc NoHum ;
|
||||||
play_V2 = dirV2 (v1 "لعب" i a) ;
|
play_V2 = dirV2 (regV "لَعِب") ;
|
||||||
|
-- play_V2 = dirV2 (v1 "لعب" i a) ;
|
||||||
policeman_N = sdmN "شرط" "فِعلِي" Masc Hum ;
|
policeman_N = sdmN "شرط" "فِعلِي" Masc Hum ;
|
||||||
priest_N = regN "قسّ" "فِعِّيل" "أَفِعّة" Masc Hum ;
|
priest_N = brkN "قسّ" "فِعِّيل" "أَفِعّة" Masc Hum ;
|
||||||
probable_AS = mkAS (regA "مكن" "مُفعِل") ;
|
probable_AS = mkAS (sndA "مكن" "مُفعِل") ;
|
||||||
queen_N = sdfN "ملك" "فَعِلة" Fem Hum ;
|
queen_N = sdfN "ملك" "فَعِلة" Fem Hum ;
|
||||||
radio_N = mkN (sndf "راديُو") Masc NoHum ;
|
radio_N = mkN (sndf "راديُو") Masc NoHum ;
|
||||||
rain_V0 = mkV0 (v1 "مطر" a u) ;
|
rain_V0 = mkV0 (regV "يَمطُر") ;
|
||||||
read_V2 = dirV2 (v1 "قر؟" a a ) ;
|
-- rain_V0 = mkV0 (v1 "مطر" a u) ;
|
||||||
|
read_V2 = dirV2 (regV "يَقرَ؟") ;
|
||||||
|
-- read_V2 = dirV2 (v1 "قر؟" a a ) ;
|
||||||
red_A = clrA "حمر" ;
|
red_A = clrA "حمر" ;
|
||||||
religion_N = regN "دين" "فِعل" "أَفعال" Masc NoHum ;
|
religion_N = brkN "دين" "فِعل" "أَفعال" Masc NoHum ;
|
||||||
restaurant_N = regN "طعم" "مَفعَل" "مَفاعِل" Masc NoHum ;
|
restaurant_N = brkN "طعم" "مَفعَل" "مَفاعِل" Masc NoHum ;
|
||||||
river_N = regN "نهر" "فَعل" "أَفعال" Masc NoHum ;
|
river_N = brkN "نهر" "فَعل" "أَفعال" Masc NoHum ;
|
||||||
rock_N = regN "صخر" "فَعلة" "فُعُول" Fem NoHum ;
|
rock_N = brkN "صخر" "فَعلة" "فُعُول" Fem NoHum ;
|
||||||
roof_N = regN "سطح" "فَعل" "أَفعُل" Masc NoHum ;
|
roof_N = brkN "سطح" "فَعل" "أَفعُل" Masc NoHum ;
|
||||||
rubber_N = regN "مطّ" "فَعّال" "فَعّال" Masc NoHum ; -- no hum
|
rubber_N = brkN "مطّ" "فَعّال" "فَعّال" Masc NoHum ; -- no hum
|
||||||
run_V = v1 "ركض" a u ;
|
run_V = regV "يَركُض" ;
|
||||||
|
-- run_V = v1 "ركض" a u ;
|
||||||
say_VS = mkVS (v1 "قول" a u) ; --check
|
say_VS = mkVS (v1 "قول" a u) ; --check
|
||||||
school_N = regN "درس" "مَسفعَلة" "مَفاعِل" Masc NoHum ;
|
school_N = brkN "درس" "مَسفعَلة" "مَفاعِل" Masc NoHum ;
|
||||||
science_N = regN "علم" "فِعل" "فُعُول" Masc NoHum ;
|
science_N = brkN "علم" "فِعل" "فُعُول" Masc NoHum ;
|
||||||
sea_N = regN "بحر" "فَعل" "فُعُول" Masc NoHum ;
|
sea_N = brkN "بحر" "فَعل" "فُعُول" Masc NoHum ;
|
||||||
seek_V2 = dirV2 (v1 "طلب" a u) ;
|
seek_V2 = dirV2 (regV "يَطلُب") ;
|
||||||
|
-- seek_V2 = dirV2 (v1 "طلب" a u) ;
|
||||||
see_V2 = dirV2 (v1 "ر؟ي" a a) ;
|
see_V2 = dirV2 (v1 "ر؟ي" a a) ;
|
||||||
sell_V3 = dirdirV3 (v1 "بيع" a i) ; --check
|
sell_V3 = dirdirV3 (v1 "بيع" a i) ; --check
|
||||||
send_V3 = dirdirV3 (v4 "رسل") ;
|
send_V3 = dirdirV3 (v4 "رسل") ;
|
||||||
sheep_N = regN "خرف" "فَعُول" "فِعال" Masc NoHum ;
|
sheep_N = brkN "خرف" "فَعُول" "فِعال" Masc NoHum ;
|
||||||
ship_N = regN "سفن" "فَعِيلة" "فُعُل" Fem NoHum ;
|
ship_N = brkN "سفن" "فَعِيلة" "فُعُل" Fem NoHum ;
|
||||||
shirt_N = regN "قمص" "فَعِيل" "فُعلان" Masc NoHum ;
|
shirt_N = brkN "قمص" "فَعِيل" "فُعلان" Masc NoHum ;
|
||||||
shoe_N = regN "حذو" "فِعاء" "أَفعِية" Masc NoHum ;
|
shoe_N = brkN "حذو" "فِعاء" "أَفعِية" Masc NoHum ;
|
||||||
shop_N = regN "تجر" "مَفعَل" "مَفاعِل" Masc NoHum ;
|
shop_N = brkN "تجر" "مَفعَل" "مَفاعِل" Masc NoHum ;
|
||||||
short_A = regA "قصر" "فَعِيل" ;
|
short_A = sndA "قصر" "فَعِيل" ;
|
||||||
silver_N = regN "فضّ" "فِعّة" "فِعَل" Fem NoHum ;
|
silver_N = brkN "فضّ" "فِعّة" "فِعَل" Fem NoHum ;
|
||||||
sister_N = regN "؟خو" "فُعت" "فَعَوات" Fem Hum ; --FIXME
|
sister_N = brkN "؟خو" "فُعت" "فَعَوات" Fem Hum ; --FIXME
|
||||||
sleep_V = v1 "نوم" i a ; --check
|
sleep_V = v1 "نوم" i a ; --check
|
||||||
small_A = regA "صغر" "فَعِيل" ;
|
small_A = sndA "صغر" "فَعِيل" ;
|
||||||
snake_N = sdfN "حيّ" "فَعّة" Fem NoHum ;
|
snake_N = sdfN "حيّ" "فَعّة" Fem NoHum ;
|
||||||
sock_N = regN "جرب" "فَوعَل" "فَواعِل" Masc NoHum ;
|
sock_N = brkN "جرب" "فَوعَل" "فَواعِل" Masc NoHum ;
|
||||||
speak_V2 = dirV2 (v5 "كلم") ;
|
speak_V2 = dirV2 (v5 "كلم") ;
|
||||||
star_N = regN "نجم" "فَعل" "فُعُول" Masc NoHum ; --najmö
|
star_N = brkN "نجم" "فَعل" "فُعُول" Masc NoHum ; --najmö
|
||||||
steel_N = regN "فلذ" "فُوعال" "فَواعِل" Masc NoHum ;
|
steel_N = brkN "فلذ" "فُوعال" "فَواعِل" Masc NoHum ;
|
||||||
stone_N = regN "حجر" "فَعَل" "أَفعال" Masc NoHum ;
|
stone_N = brkN "حجر" "فَعَل" "أَفعال" Masc NoHum ;
|
||||||
stove_N = regN "وقد" "مَفعِل" "مَفاعِل" Masc NoHum ;
|
stove_N = brkN "وقد" "مَفعِل" "مَفاعِل" Masc NoHum ;
|
||||||
student_N = regN "طلب" "فاعِل" "فُعّال" Masc Hum ; --tilmI*
|
student_N = brkN "طلب" "فاعِل" "فُعّال" Masc Hum ; --tilmI*
|
||||||
stupid_A = clrA "بله" ;
|
stupid_A = clrA "بله" ;
|
||||||
sun_N = regN "شمس" "فَعل" "فُعُول" Fem NoHum ;
|
sun_N = brkN "شمس" "فَعل" "فُعُول" Fem NoHum ;
|
||||||
switch8off_V2 = dirV2 (v4 "طف؟") ;
|
switch8off_V2 = dirV2 (v4 "طف؟") ;
|
||||||
switch8on_V2 = dirV2 (v4 "شعل") ;
|
switch8on_V2 = dirV2 (v4 "شعل") ;
|
||||||
table_N = sdfN "طول" "فاعِلة" Fem NoHum ;
|
table_N = sdfN "طول" "فاعِلة" Fem NoHum ;
|
||||||
@@ -190,147 +208,153 @@ flags
|
|||||||
teacher_N = sdmN "علم" "مُفَعِّل" Masc Hum ; --mucal~imö
|
teacher_N = sdmN "علم" "مُفَعِّل" Masc Hum ; --mucal~imö
|
||||||
teach_V2 = dirV2 (v2 "علم") ;
|
teach_V2 = dirV2 (v2 "علم") ;
|
||||||
television_N = mkN (sndf "تِلِفِزيُون") Masc NoHum ;
|
television_N = mkN (sndf "تِلِفِزيُون") Masc NoHum ;
|
||||||
thick_A = regA "سمك" "فَعِيل" ;
|
thick_A = sndA "سمك" "فَعِيل" ;
|
||||||
thin_A = regA "رفع" "فَعِيل" ;
|
thin_A = sndA "رفع" "فَعِيل" ;
|
||||||
train_N = sdfN "قطر" "فِعال" Masc NoHum;
|
train_N = sdfN "قطر" "فِعال" Masc NoHum;
|
||||||
travel_V = v3 "سفر" ;
|
travel_V = v3 "سفر" ;
|
||||||
tree_N = regN "شجر" "فَعلة" "أَفعال" Fem NoHum ;
|
tree_N = brkN "شجر" "فَعلة" "أَفعال" Fem NoHum ;
|
||||||
ugly_A = regA "قبح" "فَعِيل" ;
|
ugly_A = sndA "قبح" "فَعِيل" ;
|
||||||
understand_V2 = dirV2 (v1 "فهم" i a ) ;
|
understand_V2 = dirV2 (regV "فَهِم") ;
|
||||||
|
-- understand_V2 = dirV2 (v1 "فهم" i a ) ;
|
||||||
university_N = sdfN "جمع" "فاعِلة" Fem NoHum ;
|
university_N = sdfN "جمع" "فاعِلة" Fem NoHum ;
|
||||||
village_N = regN "قري" "فَعلة" "فُعَى" Fem NoHum ; --Daycö
|
village_N = brkN "قري" "فَعلة" "فُعَى" Fem NoHum ; --Daycö
|
||||||
wait_V2 = dirV2 (v8 "نظر") ;
|
wait_V2 = dirV2 (v8 "نظر") ;
|
||||||
walk_V = v1 "مشي" a i ; --check
|
walk_V = v1 "مشي" a i ; --check
|
||||||
warm_A = regA "دف؟" "فاعِل" ;
|
warm_A = sndA "دف؟" "فاعِل" ;
|
||||||
war_N = regN "حرب" "فَعل" "فُعُول" Fem NoHum ;
|
war_N = brkN "حرب" "فَعل" "فُعُول" Fem NoHum ;
|
||||||
watch_V2 = dirV2 (v3 "شهد") ;
|
watch_V2 = dirV2 (v3 "شهد") ;
|
||||||
water_N = mkN (reg "ماء" "مِياه") Fem NoHum ; --"موه" "فاء" "فِياع" ??
|
water_N = mkN (reg "ماء" "مِياه") Fem NoHum ; --"موه" "فاء" "فِياع" ??
|
||||||
white_A = clrA "بيض" ;
|
white_A = clrA "بيض" ;
|
||||||
window_N = regN "نفذ" "فاعِلة" "فَواعِل" Fem NoHum ; --$ub~Ak
|
window_N = brkN "نفذ" "فاعِلة" "فَواعِل" Fem NoHum ; --$ub~Ak
|
||||||
wine_N = regN "خمر" "فَعل" "فُعُول" Masc NoHum ;
|
wine_N = brkN "خمر" "فَعل" "فُعُول" Masc NoHum ;
|
||||||
win_V2 = dirV2 (v1 "ربح" a i) ;
|
win_V2 = dirV2 (regV "رَبِح") ;
|
||||||
|
-- win_V2 = dirV2 (v1 "ربح" i a) ;
|
||||||
woman_N = mkN (reg "إِمرَأَة" "نِسوَة") Fem Hum ;
|
woman_N = mkN (reg "إِمرَأَة" "نِسوَة") Fem Hum ;
|
||||||
wonder_VQ = mkVQ (v6 "س؟ل") ;
|
wonder_VQ = mkVQ (v6 "س؟ل") ;
|
||||||
wood_N = regN "خشب" "فَعَل" "أَفعال" Masc NoHum ;
|
wood_N = brkN "خشب" "فَعَل" "أَفعال" Masc NoHum ;
|
||||||
write_V2 = dirV2 (v1 "كتب" a u) ;
|
write_V2 = dirV2 (regV "يَكتُب") ;
|
||||||
|
-- write_V2 = dirV2 (v1 "كتب" a u) ;
|
||||||
yellow_A = clrA "صفر" ;
|
yellow_A = clrA "صفر" ;
|
||||||
young_A = regA "شبّ" "فاعّ" ;
|
young_A = sndA "شبّ" "فاعّ" ;
|
||||||
|
|
||||||
do_V2 = dirV2 (v1 "فعل" a a ) ;
|
do_V2 = dirV2 (regV "يَفعَل") ;
|
||||||
|
-- do_V2 = dirV2 (v1 "فعل" a a ) ;
|
||||||
now_Adv = mkAdv "الآن" ;
|
now_Adv = mkAdv "الآن" ;
|
||||||
already_Adv = mkAdv "سابِقاً" ;
|
already_Adv = mkAdv "سابِقاً" ;
|
||||||
song_N = regN "غني" "أَفعِلة" "أَفاعِي" Fem NoHum ;
|
song_N = brkN "غني" "أَفعِلة" "أَفاعِي" Fem NoHum ;
|
||||||
add_V3 = dirV3 (v1 "جمع" a a) "وَ" ;
|
add_V3 = dirV3 (regV "يَجمَع") "وَ" ;
|
||||||
number_N = regN "رقم" "فَعل" "أَفعال" Masc NoHum ; --cadad
|
-- add_V3 = dirV3 (v1 "جمع" a a) "وَ" ;
|
||||||
|
number_N = brkN "رقم" "فَعل" "أَفعال" Masc NoHum ; --cadad
|
||||||
put_V2 = dirV2 (v1 "وضع" a a );
|
put_V2 = dirV2 (v1 "وضع" a a );
|
||||||
stop_V = v5 "وقف" ;
|
stop_V = v5 "وقف" ;
|
||||||
jump_V = v1 "قفز" a i ;
|
jump_V = regV "يَقفِز" ;
|
||||||
|
-- jump_V = v1 "قفز" a i ;
|
||||||
|
|
||||||
left_Ord = mkOrd "أَيسَر" "يُسرَى";
|
left_Ord = mkOrd "أَيسَر" "يُسرَى";
|
||||||
right_Ord = mkOrd "أَيمَن" "يُمنَى" ;
|
right_Ord = mkOrd "أَيمَن" "يُمنَى" ;
|
||||||
|
|
||||||
far_Adv = mkAdv "بَعِيداً" ;
|
far_Adv = mkAdv "بَعِيداً" ;
|
||||||
correct_A = regA "صحّ" "فَعِيل" ;
|
correct_A = sndA "صحّ" "فَعِيل" ;
|
||||||
dry_A = regA "نشف" "فاعِل" ;
|
dry_A = sndA "نشف" "فاعِل" ;
|
||||||
dull_A = regA "بهت" "فاعِل" ;
|
dull_A = sndA "بهت" "فاعِل" ;
|
||||||
full_A = regA "مل؟" "فَعِيل" ;
|
full_A = sndA "مل؟" "فَعِيل" ;
|
||||||
heavy_A = regA "ثقل" "فَعِيل" ;
|
heavy_A = sndA "ثقل" "فَعِيل" ;
|
||||||
near_A = regA "قرب" "فَعِيل" ;
|
near_A = sndA "قرب" "فَعِيل" ;
|
||||||
rotten_A = regA "فسد" "فاعِل" ;
|
rotten_A = sndA "فسد" "فاعِل" ;
|
||||||
round_A = regA "دور" "مُفَعَّل" ;
|
round_A = sndA "دور" "مُفَعَّل" ;
|
||||||
sharp_A = regA "حدّ" "فاعّ" ;
|
sharp_A = sndA "حدّ" "فاعّ" ;
|
||||||
smooth_A = regA "نعم" "فاعِل" ;
|
smooth_A = sndA "نعم" "فاعِل" ;
|
||||||
straight_A = regA "قوم" "مُستَفِيع" ;
|
straight_A = sndA "قوم" "مُستَفِيع" ;
|
||||||
wet_A = regA "رطب" "فَعِل" ;
|
wet_A = sndA "رطب" "فَعِل" ;
|
||||||
wide_A = regA "وسع" "فاعِل" ;
|
wide_A = sndA "وسع" "فاعِل" ;
|
||||||
|
|
||||||
animal_N = sdfN "حيّ" "فَعَوان" Masc NoHum ;
|
animal_N = sdfN "حيّ" "فَعَوان" Masc NoHum ;
|
||||||
ashes_N = regN "رمد" "فَعال" "أَفعِلة" Masc NoHum;
|
ashes_N = brkN "رمد" "فَعال" "أَفعِلة" Masc NoHum;
|
||||||
back_N = regN "ظهر" "فَعل" "فُعُول" Masc NoHum;
|
back_N = brkN "ظهر" "فَعل" "فُعُول" Masc NoHum;
|
||||||
bark_N = regN "نبح" "فَعل" "فُعال" Masc NoHum;
|
bark_N = brkN "نبح" "فَعل" "فُعال" Masc NoHum;
|
||||||
belly_N = regN "بطن" "فَعل" "فُعُول" Fem NoHum;
|
belly_N = brkN "بطن" "فَعل" "فُعُول" Fem NoHum;
|
||||||
blood_N = regN "دم" "فَع" "فِعاء" Masc NoHum;
|
blood_N = brkN "دم" "فَع" "فِعاء" Masc NoHum;
|
||||||
bone_N = regN "عظم" "فَعلة" "فِعال" Fem NoHum;
|
bone_N = brkN "عظم" "فَعلة" "فِعال" Fem NoHum;
|
||||||
breast_N = regN "صدر" "فَعل" "فُعُول" Masc NoHum;
|
breast_N = brkN "صدر" "فَعل" "فُعُول" Masc NoHum;
|
||||||
cloud_N = regN "غيم" "فَعلة" "فُعُول" Fem NoHum;
|
cloud_N = brkN "غيم" "فَعلة" "فُعُول" Fem NoHum;
|
||||||
day_N = regN "يوم" "فَعل" "أَفّاع" Masc NoHum;
|
day_N = brkN "يوم" "فَعل" "أَفّاع" Masc NoHum;
|
||||||
dust_N = regN "غبر" "فُعال" "أَفعِلة" Masc NoHum;
|
dust_N = brkN "غبر" "فُعال" "أَفعِلة" Masc NoHum;
|
||||||
ear_N = regN "؟ذن" "فُعل" "أَفعال" Fem NoHum;
|
ear_N = brkN "؟ذن" "فُعل" "أَفعال" Fem NoHum;
|
||||||
earth_N = regN "ترب" "فُعلة" "فُعَل" Fem NoHum;
|
earth_N = brkN "ترب" "فُعلة" "فُعَل" Fem NoHum;
|
||||||
egg_N = sdfN "بيض" "فَعلة" Fem NoHum;
|
egg_N = sdfN "بيض" "فَعلة" Fem NoHum;
|
||||||
eye_N = regN "عين" "فَعل" "فُعُول" Fem NoHum;
|
eye_N = brkN "عين" "فَعل" "فُعُول" Fem NoHum;
|
||||||
fat_N = regN "دهن" "فُعل" "فُعُول" Masc NoHum ;
|
fat_N = brkN "دهن" "فُعل" "فُعُول" Masc NoHum ;
|
||||||
feather_N = sdfN "ريش" "فِعلة" Fem NoHum;
|
feather_N = sdfN "ريش" "فِعلة" Fem NoHum;
|
||||||
fingernail_N = regN "ظفر" "فُعل" "أَفاعِل" Masc NoHum;
|
fingernail_N = brkN "ظفر" "فُعل" "أَفاعِل" Masc NoHum;
|
||||||
fire_N = regN "نور" "فاع" "فِيعان" Fem NoHum;
|
fire_N = brkN "نور" "فاع" "فِيعان" Fem NoHum;
|
||||||
flower_N = regN "زهر" "فَعلة" "فُعُول" Fem NoHum;
|
flower_N = brkN "زهر" "فَعلة" "فُعُول" Fem NoHum;
|
||||||
fog_N = regN "ضبّ" "فَعال" "فَعال" Masc NoHum; --no plural ?
|
fog_N = brkN "ضبّ" "فَعال" "فَعال" Masc NoHum; --no plural ?
|
||||||
foot_N = regN "قدم" "فَعَل" "أَفعال" Fem NoHum;
|
foot_N = brkN "قدم" "فَعَل" "أَفعال" Fem NoHum;
|
||||||
forest_N = sdfN "غيب" "فاعة" Fem NoHum;
|
forest_N = sdfN "غيب" "فاعة" Fem NoHum;
|
||||||
grass_N = regN "عشب" "فُعلة" "أَفعال" Fem NoHum;
|
grass_N = brkN "عشب" "فُعلة" "أَفعال" Fem NoHum;
|
||||||
guts_N = regN "حشو" "فَعا" "أَفعاء" Fem NoHum;
|
guts_N = brkN "حشو" "فَعا" "أَفعاء" Fem NoHum;
|
||||||
hair_N = sdfN "شعر" "فَعلة" Fem NoHum ;
|
hair_N = sdfN "شعر" "فَعلة" Fem NoHum ;
|
||||||
hand_N = regN "يد" "فَع" "أَفاعِي" Fem NoHum ;
|
hand_N = brkN "يد" "فَع" "أَفاعِي" Fem NoHum ;
|
||||||
head_N = regN "ر؟س" "فَعل" "فُعُول" Masc NoHum;
|
head_N = brkN "ر؟س" "فَعل" "فُعُول" Masc NoHum;
|
||||||
heart_N = regN "قلب" "فَعل" "فُعُول" Masc NoHum;
|
heart_N = brkN "قلب" "فَعل" "فُعُول" Masc NoHum;
|
||||||
horn_N = regN "قرن" "فَعل" "فُعُول" Masc NoHum;
|
horn_N = brkN "قرن" "فَعل" "فُعُول" Masc NoHum;
|
||||||
husband_N = regN "زوج" "فَعل" "أَفعال" Masc NoHum;
|
husband_N = brkN "زوج" "فَعل" "أَفعال" Masc NoHum;
|
||||||
ice_N = regN "ثلج" "فَعل" "فُعُول" Masc NoHum;
|
ice_N = brkN "ثلج" "فَعل" "فُعُول" Masc NoHum;
|
||||||
knee_N = regN "ركب" "فُعلة" "فُعَل" Fem NoHum;
|
knee_N = brkN "ركب" "فُعلة" "فُعَل" Fem NoHum;
|
||||||
leaf_N = regN "ورق" "فَعَلة" "أَفعال" Fem NoHum;
|
leaf_N = brkN "ورق" "فَعَلة" "أَفعال" Fem NoHum;
|
||||||
leg_N = regN "رجل" "فِعل" "أَفعُل" Fem NoHum;
|
leg_N = brkN "رجل" "فِعل" "أَفعُل" Fem NoHum;
|
||||||
liver_N = regN "كبد" "فَعِل" "أَفعال" Masc NoHum ;
|
liver_N = brkN "كبد" "فَعِل" "أَفعال" Masc NoHum ;
|
||||||
louse_N = sdfN "قمل" "فَعلة" Fem NoHum;
|
louse_N = sdfN "قمل" "فَعلة" Fem NoHum;
|
||||||
mouth_N = regN "فوه" "فُعل" "أَفعال" Masc NoHum ;
|
mouth_N = brkN "فوه" "فُعل" "أَفعال" Masc NoHum ;
|
||||||
name_N = regN "؟سم" "فِعل" "فَعالِي" Masc NoHum;
|
name_N = brkN "؟سم" "فِعل" "فَعالِي" Masc NoHum;
|
||||||
neck_N = regN "رقب" "فَعَلة" "فِعال" Fem NoHum;
|
neck_N = brkN "رقب" "فَعَلة" "فِعال" Fem NoHum;
|
||||||
night_N = regN "ليل" "فَعلة" "فَعالِي" Fem NoHum; --plural?
|
night_N = brkN "ليل" "فَعلة" "فَعالِي" Fem NoHum; --plural?
|
||||||
nose_N = regN "؟نف" "فَعل" "فُعُول" Masc NoHum;
|
nose_N = brkN "؟نف" "فَعل" "فُعُول" Masc NoHum;
|
||||||
person_N = regN "شخص" "فَعل" "أَفعال" Masc Hum;
|
person_N = brkN "شخص" "فَعل" "أَفعال" Masc Hum;
|
||||||
rain_N = regN "مطر" "فَعَل" "أَفعال" Masc NoHum;
|
rain_N = brkN "مطر" "فَعَل" "أَفعال" Masc NoHum;
|
||||||
road_N = regN "طرق" "فَعِيل" "فُعُل" Fem NoHum;
|
road_N = brkN "طرق" "فَعِيل" "فُعُل" Fem NoHum;
|
||||||
root_N = regN "جذر" "فَعل" "فُعُول" Masc NoHum ;
|
root_N = brkN "جذر" "فَعل" "فُعُول" Masc NoHum ;
|
||||||
rope_N = regN "حبل" "فَعل" "فِعال" Masc NoHum;
|
rope_N = brkN "حبل" "فَعل" "فِعال" Masc NoHum;
|
||||||
salt_N = regN "ملح" "فِعل" "أَفعال" Masc NoHum;
|
salt_N = brkN "ملح" "فِعل" "أَفعال" Masc NoHum;
|
||||||
sand_N = regN "رمل" "فَعل" "فِعال" Masc NoHum;
|
sand_N = brkN "رمل" "فَعل" "فِعال" Masc NoHum;
|
||||||
seed_N = regN "بذر" "فَعل" "فُعُول" Masc NoHum;
|
seed_N = brkN "بذر" "فَعل" "فُعُول" Masc NoHum;
|
||||||
skin_N = regN "جلد" "فِعل" "فُعُول" Masc NoHum;
|
skin_N = brkN "جلد" "فِعل" "فُعُول" Masc NoHum;
|
||||||
sky_N = sdfN "سمو" "فَعاء" Fem NoHum;
|
sky_N = sdfN "سمو" "فَعاء" Fem NoHum;
|
||||||
smoke_N = regN "دخن" "فُعال" "أَفعِلة" Masc NoHum;
|
smoke_N = brkN "دخن" "فُعال" "أَفعِلة" Masc NoHum;
|
||||||
snow_N = regN "ثلج" "فَعل" "فُعُول" Masc NoHum;
|
snow_N = brkN "ثلج" "فَعل" "فُعُول" Masc NoHum;
|
||||||
stick_N = regN "عصو" "فَعا" "فِعِي" Masc NoHum ; --"عصو"
|
stick_N = brkN "عصو" "فَعا" "فِعِي" Masc NoHum ; --"عصو"
|
||||||
tail_N = regN "ذنب" "فَعَل" "أَفعال" Masc NoHum;
|
tail_N = brkN "ذنب" "فَعَل" "أَفعال" Masc NoHum;
|
||||||
tongue_N = regN "لسن" "فِعال" "أَفعِلة" Masc NoHum;
|
tongue_N = brkN "لسن" "فِعال" "أَفعِلة" Masc NoHum;
|
||||||
tooth_N = regN "سنّ" "فِعل" "أَفعال" Masc NoHum ;
|
tooth_N = brkN "سنّ" "فِعل" "أَفعال" Masc NoHum ;
|
||||||
wife_N = sdfN "زوج" "فَعلة" Fem Hum;
|
wife_N = sdfN "زوج" "فَعلة" Fem Hum;
|
||||||
wind_N = regN "ريح" "فِعل" "فِعال" Fem NoHum;
|
wind_N = brkN "ريح" "فِعل" "فِعال" Fem NoHum;
|
||||||
wing_N = regN "جنح" "فَعال" "أَفعِلة" Masc NoHum ;
|
wing_N = brkN "جنح" "فَعال" "أَفعِلة" Masc NoHum ;
|
||||||
worm_N = regN "دود" "فُعلة" "فِيعان" Fem NoHum ;
|
worm_N = brkN "دود" "فُعلة" "فِيعان" Fem NoHum ;
|
||||||
year_N = sdfN "سن" "فَعة" Fem NoHum ;
|
year_N = sdfN "سن" "فَعة" Fem NoHum ;
|
||||||
|
|
||||||
blow_V = v1 "نفخ" a u ;
|
blow_V = regV "يَنفُخ" ;
|
||||||
breathe_V = dirV2 (v5 "نفس") ;
|
breathe_V = dirV2 (v5 "نفس") ;
|
||||||
burn_V = v1 "حرق" a i ;
|
burn_V = regV "يَحرِق" ;
|
||||||
dig_V = v1 "حفر" a i ;
|
dig_V = regV "يَحفِر" ;
|
||||||
fall_V = v1 "وقع" a a ;
|
fall_V = v1 "وقع" a a ;
|
||||||
float_V = v1 "عوم" a u ;
|
float_V = v1 "عوم" a u ;
|
||||||
flow_V = v1 "سيل" a i ;
|
flow_V = v1 "سيل" a i ;
|
||||||
fly_V = v1 "طير" a i ;
|
fly_V = v1 "طير" a i ;
|
||||||
freeze_V = v2 "جمد" ;
|
freeze_V = v2 "جمد" ;
|
||||||
give_V3 = dirdirV3 (v4 "عطي") ;
|
give_V3 = dirdirV3 (v4 "عطي") ;
|
||||||
laugh_V = v1 "ضحك" i a ;
|
laugh_V = regV "ضَحِك" ;
|
||||||
lie_V = v1 "كذب" a i ;
|
lie_V = regV "يَكذِب" ;
|
||||||
play_V = v1 "لعب" i a ;
|
play_V = regV "لَعِب" ;
|
||||||
sew_V = v1 "خيط" a i ;
|
sew_V = v1 "خيط" a i ;
|
||||||
sing_V = v2 "غني" ;
|
sing_V = v2 "غني" ;
|
||||||
sit_V = v1 "قعد" a u ;
|
sit_V = regV "يَقعُد" ;
|
||||||
smell_V = v1 "شمّ" i a ;
|
smell_V = v1 "شمّ" i a ;
|
||||||
spit_V = v1 "بصق" a u ;
|
spit_V = regV "يَبصُق" ;
|
||||||
stand_V = v1 "وقف" a i ;
|
stand_V = v1 "وقف" a i ;
|
||||||
swell_V = v8 "نفخ" ;
|
swell_V = v8 "نفخ" ;
|
||||||
swim_V = v1 "سبح" a a ;
|
swim_V = regV "يَسبَح" ;
|
||||||
think_V = v2 "فكر" ;
|
think_V = v2 "فكر" ;
|
||||||
turn_V = v1 "برم" a u ;
|
turn_V = regV "يَبرُم" ;
|
||||||
vomit_V = v5 "قي؟" ;
|
vomit_V = v5 "قي؟" ;
|
||||||
|
|
||||||
bite_V2 = dirV2 ( v1 "عضّ" a a ) ;
|
bite_V2 = dirV2 ( v1 "عضّ" a a ) ;
|
||||||
@@ -338,23 +362,23 @@ flags
|
|||||||
cut_V2 = dirV2 (v1 "قصّ" a u) ;
|
cut_V2 = dirV2 (v1 "قصّ" a u) ;
|
||||||
fear_V2 = dirV2 (v1 "خوف" i a) ;
|
fear_V2 = dirV2 (v1 "خوف" i a) ;
|
||||||
fight_V2 = dirV2 (v3 "قتل") ;
|
fight_V2 = dirV2 (v3 "قتل") ;
|
||||||
hit_V2 = dirV2 (v1 "ضرب" a i) ;
|
hit_V2 = dirV2 (regV "يَضرِب" ) ;
|
||||||
hold_V2 = dirV2 (v1 "مسك" a i) ;
|
hold_V2 = dirV2 (regV "يَمسِك" ) ;
|
||||||
hunt_V2 = dirV2 (v1 "صيد" a i) ;
|
hunt_V2 = dirV2 (v1 "صيد" a i) ;
|
||||||
kill_V2 = dirV2 (v1 "قتل" a u) ;
|
kill_V2 = dirV2 (regV "يَقتُل" ) ;
|
||||||
pull_V2 = dirV2 (v1 "سحب" a a) ;
|
pull_V2 = dirV2 (regV "يَسحَب") ;
|
||||||
push_V2 = dirV2 (v1 "دفع" a a) ;
|
push_V2 = dirV2 (regV "يَدفَع" ) ;
|
||||||
rub_V2 = dirV2 ( v1 "فرك" a u ) ;
|
rub_V2 = dirV2 ( regV "يَفرُك" ) ;
|
||||||
scratch_V2 = dirV2 (v1 "خدش" a i) ;
|
scratch_V2 = dirV2 (regV "يَخدِش" ) ;
|
||||||
split_V2 = dirV2 ( v2 "قسم" ) ;
|
split_V2 = dirV2 ( v2 "قسم" ) ;
|
||||||
squeeze_V2 = dirV2 (v1 "عصر" a i) ;
|
squeeze_V2 = dirV2 (regV "يَعصِر" ) ;
|
||||||
stab_V2 = dirV2 ( v1 "طعن" a u) ;
|
stab_V2 = dirV2 ( regV "يَطعُن" ) ;
|
||||||
suck_V2 = dirV2 (v1 "مصّ" a u) ;
|
suck_V2 = dirV2 (v1 "مصّ" a u) ;
|
||||||
throw_V2 = dirV2 (v1 "رمي" a i) ;
|
throw_V2 = dirV2 (v1 "رمي" a i) ;
|
||||||
tie_V2 = dirV2 (v1 "ربط" a u) ;
|
tie_V2 = dirV2 (regV "يَربُط" ) ;
|
||||||
wash_V2 = dirV2 ( v1 "غسل" a i ) ;
|
wash_V2 = dirV2 ( regV "يَغسِل" ) ;
|
||||||
wipe_V2 = dirV2 ( v1 "مسح" a a ) ;
|
wipe_V2 = dirV2 ( regV "يَمسَح" ) ;
|
||||||
|
|
||||||
-- other_A = regA "ْتهر" ;
|
-- other_A = sndA "ْتهر" ;
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -20,9 +20,6 @@
|
|||||||
-- first we give a handful of patterns that aim to cover all
|
-- first we give a handful of patterns that aim to cover all
|
||||||
-- regular cases. Then we give a worst-case function $mkC$, which serves as an
|
-- regular cases. Then we give a worst-case function $mkC$, which serves as an
|
||||||
-- escape to construct the most irregular words of type $C$.
|
-- escape to construct the most irregular words of type $C$.
|
||||||
-- However, this function should only seldom be needed: we have a
|
|
||||||
-- separate module $IrregularAra$, which covers all irregularly inflected
|
|
||||||
-- words.
|
|
||||||
--
|
--
|
||||||
-- The following modules are presupposed:
|
-- The following modules are presupposed:
|
||||||
|
|
||||||
@@ -38,278 +35,48 @@ resource ParadigmsAra = open
|
|||||||
|
|
||||||
oper
|
oper
|
||||||
|
|
||||||
--lexical paradigms for nouns
|
-- Prepositions are used in many-argument functions for rection.
|
||||||
|
|
||||||
mkN : NTable -> Gender -> Species -> N =
|
|
||||||
\nsc,gen,spec ->
|
|
||||||
{ s = nsc;
|
|
||||||
g = gen;
|
|
||||||
h = spec;
|
|
||||||
lock_N = <>
|
|
||||||
};
|
|
||||||
|
|
||||||
--takes a root string, a singular pattern string, a broken plural
|
|
||||||
--pattern string, a gender, and species. Gives a noun
|
|
||||||
regN : Str -> Str -> Str -> Gender -> Species -> N =
|
|
||||||
\root,sg,pl,gen,spec ->
|
|
||||||
let { raw = regN' root sg pl gen spec} in
|
|
||||||
{ s = \\n,d,c =>
|
|
||||||
case root of {
|
|
||||||
_ + "؟" + _ => rectifyHmz(raw.s ! n ! d ! c);
|
|
||||||
_ => raw.s ! n ! d ! c
|
|
||||||
};
|
|
||||||
g = gen;
|
|
||||||
h = spec ; lock_N = <>
|
|
||||||
};
|
|
||||||
|
|
||||||
regN' : Str -> Str -> Str -> Gender -> Species -> N =
|
|
||||||
\root,sg,pl,gen,spec ->
|
|
||||||
let { kitAb = mkWord sg root;
|
|
||||||
kutub = mkWord pl root
|
|
||||||
} in mkN (reg kitAb kutub) gen spec;
|
|
||||||
|
|
||||||
--takes a root string, a singular pattern string, a gender,
|
|
||||||
--and species. Gives a noun whose plural is sound feminine
|
|
||||||
sdfN : Str -> Str -> Gender -> Species -> N =
|
|
||||||
\root,sg,gen,spec ->
|
|
||||||
let { kalima = mkWord sg root;
|
|
||||||
} in mkN (sndf kalima) gen spec;
|
|
||||||
|
|
||||||
|
|
||||||
--takes a root string, a singular pattern string, a gender,
|
|
||||||
--and species. Gives a noun whose plural is sound masculine
|
|
||||||
sdmN : Str -> Str -> Gender -> Species -> N =
|
|
||||||
\root,sg,gen,spec ->
|
|
||||||
let { mucallim = mkWord sg root;
|
|
||||||
} in mkN (sndm mucallim) gen spec;
|
|
||||||
|
|
||||||
-- mkN3 : N -> Str -> Str -> N3 =
|
|
||||||
-- \n,p,q -> n ** {c2 = p ; c3 = q; lock_N3 = <>} ;
|
|
||||||
|
|
||||||
--lexical paradigms for adjectives
|
|
||||||
|
|
||||||
--takes a root string and a pattern string
|
|
||||||
regA : Str -> Str -> A =
|
|
||||||
\root,pat ->
|
|
||||||
let { raw = regA' root pat } in
|
|
||||||
{ s = \\g,n,d,c =>
|
|
||||||
case root of {
|
|
||||||
_ + "؟" + _ => rectifyHmz(raw.s ! g ! n ! d ! c);
|
|
||||||
_ => raw.s ! g ! n ! d ! c
|
|
||||||
};
|
|
||||||
lock_A = <>
|
|
||||||
};
|
|
||||||
|
|
||||||
regA' : Str -> Str -> A =
|
|
||||||
\root,pat ->
|
|
||||||
let { kabIr = mkWord pat root
|
|
||||||
} in {
|
|
||||||
s = adj kabIr ;
|
|
||||||
lock_A = <>
|
|
||||||
};
|
|
||||||
|
|
||||||
--takes a root string only
|
|
||||||
clrA : Str -> A =
|
|
||||||
\root ->
|
|
||||||
let { eaHmar = mkWord "أَفعَل" root;
|
|
||||||
HamrA' = mkWord "فَعلاء" root;
|
|
||||||
Humr = mkWord "فُعل" root
|
|
||||||
} in {
|
|
||||||
s = clr eaHmar HamrA' Humr;
|
|
||||||
lock_A = <>
|
|
||||||
};
|
|
||||||
|
|
||||||
--lexical paradigms for verbs
|
|
||||||
|
|
||||||
v1 : Str -> Vowel -> Vowel -> V =
|
|
||||||
\rootStr,vPerf,vImpf ->
|
|
||||||
let { raw = v1' rootStr vPerf vImpf } in
|
|
||||||
{ s = \\vf =>
|
|
||||||
case rootStr of {
|
|
||||||
_ + "؟" + _ => rectifyHmz(raw.s ! vf);
|
|
||||||
_ => raw.s ! vf
|
|
||||||
};
|
|
||||||
lock_V = <>
|
|
||||||
} ;
|
|
||||||
|
|
||||||
|
|
||||||
v1' : Str -> Vowel -> Vowel -> Verb =
|
|
||||||
\rootStr,vPerf,vImpf ->
|
|
||||||
let { root = mkRoot3 rootStr ;
|
|
||||||
l = dp 2 rootStr } in --last rootStr
|
|
||||||
case <l, root.c> of {
|
|
||||||
<"ّ",_> => v1geminate rootStr vPerf vImpf ;
|
|
||||||
<"و"|"ي",_> => v1defective root vImpf ;
|
|
||||||
<_,"و"|"ي"> => v1hollow root vImpf ;
|
|
||||||
_ => v1sound root vPerf vImpf
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
--Verb Form II : faccala
|
|
||||||
|
|
||||||
v2 : Str -> V =
|
|
||||||
\rootStr ->
|
|
||||||
let {
|
|
||||||
root = mkRoot3 rootStr
|
|
||||||
} in {
|
|
||||||
s =
|
|
||||||
case root.l of {
|
|
||||||
"و"|"ي" => (v2defective root).s;
|
|
||||||
_ => (v2sound root).s
|
|
||||||
};
|
|
||||||
lock_V = <>
|
|
||||||
};
|
|
||||||
|
|
||||||
--Verb Form III : fAcala
|
|
||||||
|
|
||||||
v3 : Str -> V =
|
|
||||||
\rootStr ->
|
|
||||||
let {
|
|
||||||
tbc = mkRoot3 rootStr ;
|
|
||||||
} in {
|
|
||||||
s = (v3sound tbc).s ;
|
|
||||||
lock_V = <>
|
|
||||||
};
|
|
||||||
|
|
||||||
--Verb Form IV : >afcala
|
|
||||||
|
|
||||||
v4 : Str -> V =
|
|
||||||
\rootStr ->
|
|
||||||
let {
|
|
||||||
root = mkRoot3 rootStr
|
|
||||||
} in {
|
|
||||||
s =
|
|
||||||
case root.l of {
|
|
||||||
"و"|"ي" => (v4defective root).s;
|
|
||||||
_ => (v4sound root).s
|
|
||||||
};
|
|
||||||
lock_V = <>
|
|
||||||
};
|
|
||||||
|
|
||||||
--Verb Form V : tafaccala
|
|
||||||
|
|
||||||
v5 : Str -> V =
|
|
||||||
\rootStr ->
|
|
||||||
let { raw = v5' rootStr } in
|
|
||||||
{ s = \\vf =>
|
|
||||||
case rootStr of {
|
|
||||||
_ + "؟" + _ => rectifyHmz(raw.s ! vf);
|
|
||||||
_ => raw.s ! vf
|
|
||||||
};
|
|
||||||
lock_V = <>
|
|
||||||
};
|
|
||||||
|
|
||||||
v5' : Str -> V =
|
|
||||||
\rootStr ->
|
|
||||||
let {
|
|
||||||
nfs = mkRoot3 rootStr ;
|
|
||||||
} in {
|
|
||||||
s = (v5sound nfs).s ; lock_V = <>
|
|
||||||
};
|
|
||||||
|
|
||||||
--Verb Form VI : tafaacala
|
|
||||||
|
|
||||||
v6 : Str -> V =
|
|
||||||
\rootStr ->
|
|
||||||
let {
|
|
||||||
fqm = mkRoot3 rootStr ;
|
|
||||||
} in {
|
|
||||||
s = (v6sound fqm).s ;
|
|
||||||
lock_V = <>
|
|
||||||
};
|
|
||||||
|
|
||||||
--Verb Form VIII <iftacala
|
|
||||||
|
|
||||||
v8 : Str -> V =
|
|
||||||
\rootStr ->
|
|
||||||
let {
|
|
||||||
rbT = mkRoot3 rootStr ;
|
|
||||||
} in {
|
|
||||||
s = (v8sound rbT).s ;
|
|
||||||
lock_V = <>
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
---- Prepositions are used in many-argument functions for rection.
|
|
||||||
--
|
|
||||||
Preposition : Type ;
|
Preposition : Type ;
|
||||||
|
|
||||||
|
|
||||||
--2 Nouns
|
--2 Nouns
|
||||||
|
|
||||||
-- Use the function $mkPreposition$ or see the section on prepositions below to
|
--This is used for loan words or anything that has untreated irregularities
|
||||||
-- form other prepositions.
|
--in the interdigitization process of its words
|
||||||
--
|
mkN : NTable -> Gender -> Species -> N ;
|
||||||
|
|
||||||
|
--Takes a root string, a singular pattern string, a broken plural
|
||||||
|
--pattern string, a gender, and species. Gives a noun.
|
||||||
|
brkN : Str -> Str -> Str -> Gender -> Species -> N ;
|
||||||
|
|
||||||
|
--Takes a root string, a singular pattern string, a gender,
|
||||||
|
--and species. Gives a noun whose plural is sound feminine.
|
||||||
|
sdfN : Str -> Str -> Gender -> Species -> N ;
|
||||||
|
|
||||||
|
--takes a root string, a singular pattern string, a gender,
|
||||||
|
--and species. Gives a noun whose plural is sound masculine
|
||||||
|
sdmN : Str -> Str -> Gender -> Species -> N ;
|
||||||
|
|
||||||
--3 Relational nouns
|
--3 Relational nouns
|
||||||
--
|
|
||||||
-- Relational nouns ("دَُغهتر ْف خ") need a preposition.
|
|
||||||
|
|
||||||
mkN2 : N -> Preposition -> N2 ;
|
mkN2 : N -> Preposition -> N2 ;
|
||||||
|
|
||||||
-- Three-place relational nouns ("تهي عْنّعتِْن فرْم خ تْ ي") need two prepositions.
|
|
||||||
|
|
||||||
mkN3 : N -> Preposition -> Preposition -> N3 ;
|
mkN3 : N -> Preposition -> Preposition -> N3 ;
|
||||||
|
|
||||||
|
--2 Adjectives
|
||||||
|
|
||||||
|
--Takes a root string and a pattern string
|
||||||
|
sndA : Str -> Str -> A ;
|
||||||
|
|
||||||
|
--Takes a root string only
|
||||||
|
clrA : Str -> A ;
|
||||||
|
|
||||||
----3 Relational common noun phrases
|
|
||||||
----
|
|
||||||
---- In some cases, you may want to make a complex $CN$ into a
|
|
||||||
---- relational noun (e.g. "تهي ْلد تْون هَلّ ْف").
|
|
||||||
--
|
|
||||||
-- cnN2 : CN -> Preposition -> N2 ;
|
|
||||||
-- cnN3 : CN -> Preposition -> Preposition -> N3 ;
|
|
||||||
--
|
|
||||||
--
|
|
||||||
--3 Proper names and noun phrases
|
|
||||||
--
|
|
||||||
-- Proper names, with a regular genitive, are formed as follows
|
|
||||||
|
|
||||||
mkPN : Str -> Gender -> PN ;
|
|
||||||
|
|
||||||
---- Sometimes you can reuse a common noun as a proper name, e.g. "َنك".
|
|
||||||
--
|
|
||||||
-- nounPN : N -> PN ;
|
|
||||||
--
|
|
||||||
---- To form a noun phrase that can also be plural and have an irregular
|
|
||||||
---- genitive, you can use the worst-case function.
|
|
||||||
--
|
|
||||||
-- mkNP : Str -> Str -> Number -> Gender -> NP ;
|
|
||||||
--
|
|
||||||
----2 Adjectives
|
|
||||||
--
|
|
||||||
--3 Two-place adjectives
|
--3 Two-place adjectives
|
||||||
--
|
--
|
||||||
-- Two-place adjectives need a preposition for their second argument.
|
-- Two-place adjectives need a preposition for their second argument.
|
||||||
|
|
||||||
mkA2 : A -> Preposition -> A2 ;
|
mkA2 : A -> Preposition -> A2 ;
|
||||||
|
|
||||||
---- Comparison adjectives may two more forms.
|
|
||||||
--
|
|
||||||
-- ADeg : Type ;
|
|
||||||
--
|
|
||||||
-- mkADeg : (good,better,best,well : Str) -> ADeg ;
|
|
||||||
--
|
|
||||||
---- The regular pattern recognizes two common variations:
|
|
||||||
---- "ي" ("رُدي" - "رُدر" - "رُدست") and
|
|
||||||
---- "ي" ("هَةّي هَةِّر هَةِّست هَةِّلي")
|
|
||||||
--
|
|
||||||
-- regADeg : Str -> ADeg ; -- long, longer, longest
|
|
||||||
--
|
|
||||||
---- However, the duplication of the final consonant is nor predicted,
|
|
||||||
---- but a separate pattern is used:
|
|
||||||
--
|
|
||||||
-- duplADeg : Str -> ADeg ; -- fat, fatter, fattest
|
|
||||||
--
|
|
||||||
---- If comparison is formed by "مْري، "most", as in general for
|
|
||||||
---- long adjective, the following pattern is used:
|
|
||||||
--
|
|
||||||
-- compoundADeg : A -> ADeg ; -- -/more/most ridiculous
|
|
||||||
--
|
|
||||||
---- From a given $ADeg$, it is possible to get back to $A$.
|
|
||||||
--
|
|
||||||
-- adegA : ADeg -> A ;
|
|
||||||
--
|
|
||||||
--
|
|
||||||
--2 Adverbs
|
--2 Adverbs
|
||||||
|
|
||||||
-- Adverbs are not inflected. Most lexical ones have position
|
-- Adverbs are not inflected. Most lexical ones have position
|
||||||
@@ -328,26 +95,45 @@ resource ParadigmsAra = open
|
|||||||
-- build $PP$s in the resource API, just requires a string.
|
-- build $PP$s in the resource API, just requires a string.
|
||||||
|
|
||||||
mkPreposition : Str -> Preposition ;
|
mkPreposition : Str -> Preposition ;
|
||||||
mkPrep : Str -> Prep ;
|
|
||||||
|
|
||||||
-- (These two functions are synonyms.)
|
-- (These two functions are synonyms.)
|
||||||
|
|
||||||
--2 Verbs
|
--2 Verbs
|
||||||
--
|
|
||||||
----3 Verbs with a particle.
|
--The verb in the imperfect tense gives the most information
|
||||||
----
|
|
||||||
---- The particle, such as in "سوِتعه ْن", is given as a string.
|
regV : Str -> V ;
|
||||||
--
|
|
||||||
-- partV : V -> Str -> V ;
|
--Verb Form I : fa`ala, fa`ila, fa`ula
|
||||||
--
|
|
||||||
----3 Reflexive verbs
|
v1 : Str -> Vowel -> Vowel -> V ;
|
||||||
----
|
|
||||||
---- By default, verbs are not reflexive; this function makes them that.
|
--Verb Form II : fa``ala
|
||||||
--
|
|
||||||
-- reflV : V -> V ;
|
v2 : Str -> V ;
|
||||||
--
|
|
||||||
----3 Two-place verbs
|
--Verb Form III : faa`ala
|
||||||
--
|
|
||||||
|
v3 : Str -> V ;
|
||||||
|
|
||||||
|
--Verb Form IV : 'af`ala
|
||||||
|
|
||||||
|
v4 : Str -> V ;
|
||||||
|
|
||||||
|
--Verb Form V : tafa``ala
|
||||||
|
|
||||||
|
v5 : Str -> V ;
|
||||||
|
|
||||||
|
--Verb Form VI : tafaa`ala
|
||||||
|
|
||||||
|
v6 : Str -> V ;
|
||||||
|
|
||||||
|
--Verb Form VIII 'ifta`ala
|
||||||
|
|
||||||
|
v8 : Str -> V ;
|
||||||
|
|
||||||
|
--3 Two-place verbs
|
||||||
|
|
||||||
-- Two-place verbs need a preposition, except the special case with direct object.
|
-- Two-place verbs need a preposition, except the special case with direct object.
|
||||||
-- (transitive verbs). Notice that a particle comes from the $V$.
|
-- (transitive verbs). Notice that a particle comes from the $V$.
|
||||||
|
|
||||||
@@ -356,7 +142,7 @@ resource ParadigmsAra = open
|
|||||||
dirV2 : V -> V2 ;
|
dirV2 : V -> V2 ;
|
||||||
|
|
||||||
--3 Three-place verbs
|
--3 Three-place verbs
|
||||||
--
|
|
||||||
-- Three-place (ditransitive) verbs need two prepositions, of which
|
-- Three-place (ditransitive) verbs need two prepositions, of which
|
||||||
-- the first one or both can be absent.
|
-- the first one or both can be absent.
|
||||||
|
|
||||||
@@ -392,113 +178,231 @@ resource ParadigmsAra = open
|
|||||||
V0, V2S, V2V, V2A, V2Q : Type ;
|
V0, V2S, V2V, V2A, V2Q : Type ;
|
||||||
AS, A2S, AV, A2V : Type ;
|
AS, A2S, AV, A2V : Type ;
|
||||||
|
|
||||||
--
|
|
||||||
----2 Definitions of paradigms
|
--2 Definitions of paradigms
|
||||||
----
|
|
||||||
---- The definitions should not bother the user of the API. So they are
|
-- The definitions should not bother the user of the API. So they are
|
||||||
---- hidden from the document.
|
-- hidden from the document.
|
||||||
----.
|
--.
|
||||||
--
|
|
||||||
-- Gender = MorphoAra.Gender ;
|
regV = \word ->
|
||||||
-- Number = MorphoAra.Number ;
|
case word of {
|
||||||
-- Case = MorphoAra.Case ;
|
"يَ" + f@_ + c@_ + "ُ" + l@_ => v1 (f+c+l) a u ;
|
||||||
-- human = Masc ;
|
"يَ" + f@_ + c@_ + "ِ" + l@_ => v1 (f+c+l) a i ;
|
||||||
-- nonhuman = Neutr ;
|
"يَ" + f@_ + c@_ + "َ" + l@_ => v1 (f+c+l) a a ;
|
||||||
-- masculine = Masc ;
|
f@_ + "َ" + c@_ + "ِ" + l@_ => v1 (f+c+l) i a
|
||||||
-- feminine = Fem ;
|
};
|
||||||
-- singular = Sg ;
|
|
||||||
-- plural = Pl ;
|
v1 = \rootStr,vPerf,vImpf ->
|
||||||
-- nominative = Nom ;
|
let { raw = v1' rootStr vPerf vImpf } in
|
||||||
-- genitive = Gen ;
|
{ s = \\vf =>
|
||||||
--
|
case rootStr of {
|
||||||
|
_ + "؟" + _ => rectifyHmz(raw.s ! vf);
|
||||||
|
_ => raw.s ! vf
|
||||||
|
};
|
||||||
|
lock_V = <>
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
v1' : Str -> Vowel -> Vowel -> Verb =
|
||||||
|
\rootStr,vPerf,vImpf ->
|
||||||
|
let { root = mkRoot3 rootStr ;
|
||||||
|
l = dp 2 rootStr } in --last rootStr
|
||||||
|
case <l, root.c> of {
|
||||||
|
<"ّ",_> => v1geminate rootStr vPerf vImpf ;
|
||||||
|
<"و"|"ي",_> => v1defective root vImpf ;
|
||||||
|
<_,"و"|"ي"> => v1hollow root vImpf ;
|
||||||
|
_ => v1sound root vPerf vImpf
|
||||||
|
};
|
||||||
|
|
||||||
|
v2 =
|
||||||
|
\rootStr ->
|
||||||
|
let {
|
||||||
|
root = mkRoot3 rootStr
|
||||||
|
} in {
|
||||||
|
s =
|
||||||
|
case root.l of {
|
||||||
|
"و"|"ي" => (v2defective root).s;
|
||||||
|
_ => (v2sound root).s
|
||||||
|
};
|
||||||
|
lock_V = <>
|
||||||
|
};
|
||||||
|
|
||||||
|
v3 =
|
||||||
|
\rootStr ->
|
||||||
|
let {
|
||||||
|
tbc = mkRoot3 rootStr ;
|
||||||
|
} in {
|
||||||
|
s = (v3sound tbc).s ;
|
||||||
|
lock_V = <>
|
||||||
|
};
|
||||||
|
|
||||||
|
v4 =
|
||||||
|
\rootStr ->
|
||||||
|
let {
|
||||||
|
root = mkRoot3 rootStr
|
||||||
|
} in {
|
||||||
|
s =
|
||||||
|
case root.l of {
|
||||||
|
"و"|"ي" => (v4defective root).s;
|
||||||
|
_ => (v4sound root).s
|
||||||
|
};
|
||||||
|
lock_V = <>
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
v5 =
|
||||||
|
\rootStr ->
|
||||||
|
let { raw = v5' rootStr } in
|
||||||
|
{ s = \\vf =>
|
||||||
|
case rootStr of {
|
||||||
|
_ + "؟" + _ => rectifyHmz(raw.s ! vf);
|
||||||
|
_ => raw.s ! vf
|
||||||
|
};
|
||||||
|
lock_V = <>
|
||||||
|
};
|
||||||
|
|
||||||
|
v5' : Str -> V =
|
||||||
|
\rootStr ->
|
||||||
|
let {
|
||||||
|
nfs = mkRoot3 rootStr ;
|
||||||
|
} in {
|
||||||
|
s = (v5sound nfs).s ; lock_V = <>
|
||||||
|
};
|
||||||
|
|
||||||
|
v6 =
|
||||||
|
\rootStr ->
|
||||||
|
let {
|
||||||
|
fqm = mkRoot3 rootStr ;
|
||||||
|
} in {
|
||||||
|
s = (v6sound fqm).s ;
|
||||||
|
lock_V = <>
|
||||||
|
};
|
||||||
|
|
||||||
|
v8 =
|
||||||
|
\rootStr ->
|
||||||
|
let {
|
||||||
|
rbT = mkRoot3 rootStr ;
|
||||||
|
} in {
|
||||||
|
s = (v8sound rbT).s ;
|
||||||
|
lock_V = <>
|
||||||
|
};
|
||||||
|
|
||||||
Preposition = Str ;
|
Preposition = Str ;
|
||||||
|
|
||||||
|
mkN nsc gen spec =
|
||||||
|
{ s = nsc;
|
||||||
|
g = gen;
|
||||||
|
h = spec;
|
||||||
|
lock_N = <>
|
||||||
|
};
|
||||||
|
|
||||||
|
brkN' : Str -> Str -> Str -> Gender -> Species -> N =
|
||||||
|
\root,sg,pl,gen,spec ->
|
||||||
|
let { kitAb = mkWord sg root;
|
||||||
|
kutub = mkWord pl root
|
||||||
|
} in mkN (reg kitAb kutub) gen spec;
|
||||||
|
|
||||||
|
brkN root sg pl gen spec =
|
||||||
|
let { raw = brkN' root sg pl gen spec} in
|
||||||
|
{ s = \\n,d,c =>
|
||||||
|
case root of {
|
||||||
|
_ + "؟" + _ => rectifyHmz(raw.s ! n ! d ! c);
|
||||||
|
_ => raw.s ! n ! d ! c
|
||||||
|
};
|
||||||
|
g = gen;
|
||||||
|
h = spec ; lock_N = <>
|
||||||
|
};
|
||||||
|
|
||||||
|
sdfN =
|
||||||
|
\root,sg,gen,spec ->
|
||||||
|
let { kalima = mkWord sg root;
|
||||||
|
} in mkN (sndf kalima) gen spec;
|
||||||
|
|
||||||
|
sdmN =
|
||||||
|
\root,sg,gen,spec ->
|
||||||
|
let { mucallim = mkWord sg root;
|
||||||
|
} in mkN (sndm mucallim) gen spec;
|
||||||
|
|
||||||
mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p} ;
|
mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p} ;
|
||||||
-- regN2 n = mkN2 (regN n) (mkPreposition "ْف") ;
|
|
||||||
mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ;
|
mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ;
|
||||||
-- cnN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p} ;
|
|
||||||
-- cnN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ;
|
mkNP : (_,_,_ : Str) -> PerGenNum -> NP = \ana,nI,I,pgn ->
|
||||||
--
|
{ s =
|
||||||
-- mkPN n g = nameReg n g ** {lock_PN = <>} ;
|
table {
|
||||||
-- nounPN n = {s = n.s ! singular ; g = n.g ; lock_PN = <>} ;
|
Nom => ana;
|
||||||
mkNP : (_,_,_ : Str) -> PerGenNum -> NP = \ana,nI,I,pgn ->
|
Acc => nI;
|
||||||
{ s =
|
Gen => I
|
||||||
table {
|
};
|
||||||
Nom => ana;
|
a = {pgn = pgn; isPron = True };
|
||||||
Acc => nI;
|
lock_NP = <>
|
||||||
Gen => I
|
};
|
||||||
};
|
|
||||||
a = {pgn = pgn; isPron = True };
|
mkQuant7 : (_,_,_,_,_,_,_ : Str) -> State -> Quant =
|
||||||
lock_NP = <>
|
\hava,havihi,havAn,havayn,hAtAn,hAtayn,hA'ulA,det ->
|
||||||
};
|
{ s = \\n,s,g,c =>
|
||||||
|
case <s,g,c,n> of {
|
||||||
-- mkNP x y n g = {s = table {Gen => x ; _ => y} ; a = agrP3 n ;
|
<_,Masc,_,Sg> => hava;
|
||||||
-- lock_NP = <>} ;
|
<_,Fem,_,Sg> => havihi;
|
||||||
--
|
<_,Masc,Nom,Dl>=> havAn;
|
||||||
mkQuant7 : (_,_,_,_,_,_,_ : Str) -> State -> Quant =
|
<_,Masc,_,Dl> => havayn;
|
||||||
\hava,havihi,havAn,havayn,hAtAn,hAtayn,hA'ulA,det ->
|
<_,Fem,Nom,Dl> => hAtAn;
|
||||||
{ s = \\n,s,g,c =>
|
<_,Fem,_,Dl> => hAtayn;
|
||||||
case <s,g,c,n> of {
|
<Hum,_,_,Pl> => hA'ulA;
|
||||||
<_,Masc,_,Sg> => hava;
|
_ => havihi
|
||||||
<_,Fem,_,Sg> => havihi;
|
};
|
||||||
<_,Masc,Nom,Dl>=> havAn;
|
d = Def;
|
||||||
<_,Masc,_,Dl> => havayn;
|
lock_Quant = <>
|
||||||
<_,Fem,Nom,Dl> => hAtAn;
|
};
|
||||||
<_,Fem,_,Dl> => hAtayn;
|
|
||||||
<Hum,_,_,Pl> => hA'ulA;
|
mkQuant3 : (_,_,_ : Str) -> State -> Quant =
|
||||||
_ => havihi
|
\dalika,tilka,ula'ika,det ->
|
||||||
};
|
{ s = \\n,s,g,c =>
|
||||||
d = Def;
|
case <s,g,c,n> of {
|
||||||
lock_Quant = <>
|
<_,Masc,_,Sg> => dalika;
|
||||||
};
|
<_,Fem,_,Sg> => tilka;
|
||||||
|
<Hum,_,_,_> => ula'ika;
|
||||||
mkQuant3 : (_,_,_ : Str) -> State -> Quant =
|
_ => tilka
|
||||||
\dalika,tilka,ula'ika,det ->
|
};
|
||||||
{ s = \\n,s,g,c =>
|
d = Def;
|
||||||
case <s,g,c,n> of {
|
lock_Quant = <>
|
||||||
<_,Masc,_,Sg> => dalika;
|
};
|
||||||
<_,Fem,_,Sg> => tilka;
|
|
||||||
<Hum,_,_,_> => ula'ika;
|
sndA root pat =
|
||||||
_ => tilka
|
let { raw = sndA' root pat } in
|
||||||
};
|
{ s = \\g,n,d,c =>
|
||||||
d = Def;
|
case root of {
|
||||||
lock_Quant = <>
|
_ + "؟" + _ => rectifyHmz(raw.s ! g ! n ! d ! c);
|
||||||
};
|
_ => raw.s ! g ! n ! d ! c
|
||||||
|
};
|
||||||
|
lock_A = <>
|
||||||
-- mkA a b = mkAdjective a a a b ** {lock_A = <>} ;
|
};
|
||||||
-- regA a = regAdjective a ** {lock_A = <>} ;
|
|
||||||
--
|
sndA' : Str -> Str -> A =
|
||||||
|
\root,pat ->
|
||||||
|
let { kabIr = mkWord pat root
|
||||||
|
} in {
|
||||||
|
s = adj kabIr ;
|
||||||
|
lock_A = <>
|
||||||
|
};
|
||||||
|
|
||||||
|
clrA root =
|
||||||
|
let { eaHmar = mkWord "أَفعَل" root;
|
||||||
|
HamrA' = mkWord "فَعلاء" root;
|
||||||
|
Humr = mkWord "فُعل" root
|
||||||
|
} in {
|
||||||
|
s = clr eaHmar HamrA' Humr;
|
||||||
|
lock_A = <>
|
||||||
|
};
|
||||||
|
|
||||||
mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ;
|
mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ;
|
||||||
--
|
|
||||||
-- ADeg = A ; ----
|
|
||||||
--
|
|
||||||
-- mkADeg a b c d = mkAdjective a b c d ** {lock_A = <>} ;
|
|
||||||
--
|
|
||||||
|
|
||||||
-- duplADeg fat =
|
|
||||||
-- mkADeg fat
|
|
||||||
-- (fat + last fat + "ر") (fat + last fat + "ست") (fat + "لي") ;
|
|
||||||
--
|
|
||||||
-- compoundADeg a =
|
|
||||||
-- let ad = (a.s ! AAdj Posit)
|
|
||||||
-- in mkADeg ad ("مْري" ++ ad) ("مْست" ++ ad) (a.s ! AAdv) ;
|
|
||||||
--
|
|
||||||
-- adegA a = a ;
|
|
||||||
--
|
|
||||||
mkAdv x = ss x ** {lock_Adv = <>} ;
|
mkAdv x = ss x ** {lock_Adv = <>} ;
|
||||||
mkAdV x = ss x ** {lock_AdV = <>} ;
|
mkAdV x = ss x ** {lock_AdV = <>} ;
|
||||||
mkAdA x = ss x ** {lock_AdA = <>} ;
|
mkAdA x = ss x ** {lock_AdA = <>} ;
|
||||||
|
|
||||||
mkPreposition p = p ;
|
mkPreposition p = p ;
|
||||||
-- mkPrep p = ss p ** {lock_Prep = <>} ;
|
|
||||||
--
|
|
||||||
-- mkV a b c d e = mkVerb a b c d e ** {s1 = [] ; lock_V = <>} ;
|
|
||||||
--
|
|
||||||
--
|
|
||||||
-- partV v p = verbPart v p ** {lock_V = <>} ;
|
|
||||||
-- reflV v = {s = v.s ; part = v.part ; lock_V = v.lock_V ; isRefl = True} ;
|
|
||||||
--
|
|
||||||
mkV2 v p = v ** {s = v.s ; c2 = p ; lock_V2 = <>} ;
|
mkV2 v p = v ** {s = v.s ; c2 = p ; lock_V2 = <>} ;
|
||||||
dirV2 v = mkV2 v [] ;
|
dirV2 v = mkV2 v [] ;
|
||||||
|
|
||||||
@@ -507,10 +411,6 @@ resource ParadigmsAra = open
|
|||||||
dirdirV3 v = dirV3 v [] ;
|
dirdirV3 v = dirV3 v [] ;
|
||||||
|
|
||||||
mkVS v = v ** {lock_VS = <>} ;
|
mkVS v = v ** {lock_VS = <>} ;
|
||||||
-- mkVV v = {
|
|
||||||
-- s = table {VVF vf => v.s ! vf ; _ => variants {}} ;
|
|
||||||
-- isAux = False ; lock_VV = <>
|
|
||||||
-- } ;
|
|
||||||
mkVQ v = v ** {lock_VQ = <>} ;
|
mkVQ v = v ** {lock_VQ = <>} ;
|
||||||
|
|
||||||
V0 : Type = V ;
|
V0 : Type = V ;
|
||||||
|
|||||||
@@ -99,10 +99,10 @@ resource ResAra = PatternsAra ** open Prelude, Predef in {
|
|||||||
NTable = Number => State => Case => Str;
|
NTable = Number => State => Case => Str;
|
||||||
|
|
||||||
Noun : Type = {s : NTable ; g : Gender; h : Species} ;
|
Noun : Type = {s : NTable ; g : Gender; h : Species} ;
|
||||||
Adj : Type = {s : Gender => NTable } ;
|
Adj : Type = {s : Gender => NTable} ;
|
||||||
|
-- Adj : Type = {s : AForm => Str} ;
|
||||||
Verb : Type = {s : VForm => Str} ;
|
Verb : Type = {s : VForm => Str} ;
|
||||||
|
|
||||||
|
|
||||||
param
|
param
|
||||||
VForm =
|
VForm =
|
||||||
VPerf Voice PerGenNum
|
VPerf Voice PerGenNum
|
||||||
@@ -116,6 +116,9 @@ resource ResAra = PatternsAra ** open Prelude, Predef in {
|
|||||||
|
|
||||||
SgPl = Sing | Plur;
|
SgPl = Sing | Plur;
|
||||||
|
|
||||||
|
AForm =
|
||||||
|
APosit Gender Number State Case
|
||||||
|
| AComp Case ;
|
||||||
|
|
||||||
--verbal morphology
|
--verbal morphology
|
||||||
|
|
||||||
@@ -646,22 +649,26 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
|||||||
|
|
||||||
--Nominal Morphology
|
--Nominal Morphology
|
||||||
|
|
||||||
adj : Str -> Gender => NTable =
|
adj : Str -> Gender => NTable =
|
||||||
\kabIr ->
|
\kabIr ->
|
||||||
let kabIra = kabIr + "َة" in
|
let kabIra = kabIr + "َة" in
|
||||||
|
table {
|
||||||
|
Masc => sndm kabIr;
|
||||||
|
Fem => sndf kabIra
|
||||||
|
};
|
||||||
|
|
||||||
|
clr : Str -> Str -> Str -> Gender => NTable =
|
||||||
|
\eaHmar,HamrA',Humr ->
|
||||||
|
table {
|
||||||
|
Masc => reg eaHmar Humr;
|
||||||
|
Fem => reg HamrA' Humr
|
||||||
|
};
|
||||||
|
{-in
|
||||||
table {
|
table {
|
||||||
Masc => sndm kabIr;
|
APosit _ => posit;
|
||||||
Fem => sndf kabIra
|
AComp c => posit ! Masc ! Sg ! Const ! c
|
||||||
};
|
};-}
|
||||||
|
|
||||||
clr : Str -> Str -> Str -> Gender => NTable =
|
|
||||||
\eaHmar,HamrA',Humr ->
|
|
||||||
table {
|
|
||||||
Masc => reg eaHmar Humr;
|
|
||||||
Fem => reg HamrA' Humr
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
--takes 2 words, singular and broken plural, and gives the
|
--takes 2 words, singular and broken plural, and gives the
|
||||||
--complete noun inflection table
|
--complete noun inflection table
|
||||||
reg : Str -> Str -> NTable =
|
reg : Str -> Str -> NTable =
|
||||||
|
|||||||
@@ -4,27 +4,27 @@ concrete StructuralAra of Structural = CatAra **
|
|||||||
flags optimize=all ;
|
flags optimize=all ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
-- above_Prep = ss "َبْثي" ;
|
above_Prep = ss "فَوْقَ" ;
|
||||||
-- after_Prep = ss "َفتر" ;
|
after_Prep = ss "بَعْدَ" ;
|
||||||
-- all_Predet = ss "َلّ" ;
|
-- all_Predet = ss "َلّ" ;
|
||||||
-- almost_AdA, almost_AdN = ss "َلمْست" ;
|
-- almost_AdA, almost_AdN = ss "َلمْست" ;
|
||||||
-- although_Subj = ss "َلتهُْغه" ;
|
-- although_Subj = ss "َلتهُْغه" ;
|
||||||
-- always_AdV = ss "َلوَيس" ;
|
-- always_AdV = ss "َلوَيس" ;
|
||||||
and_Conj = ss "وَ" ** {n = Pl} ;
|
and_Conj = ss "وَ" ** {n = Pl} ;
|
||||||
-- because_Subj = ss "بعَُسي" ;
|
-- because_Subj = ss "بعَُسي" ;
|
||||||
-- before_Prep = ss "بفْري" ;
|
before_Prep = ss "قَبْلَ" ;
|
||||||
-- behind_Prep = ss "بهِند" ;
|
behind_Prep = ss "خَلْفَ" ;
|
||||||
-- between_Prep = ss "بتوّن" ;
|
between_Prep = ss "بَيْنَ" ;
|
||||||
-- both7and_DConj = sd2 "بْته" "َند" ** {n = Pl} ;
|
-- both7and_DConj = sd2 "بْته" "َند" ** {n = Pl} ;
|
||||||
-- but_PConj = ss "بُت" ;
|
-- but_PConj = ss "بُت" ;
|
||||||
-- by8agent_Prep = ss "بي" ;
|
by8agent_Prep = ss "بِ" ;
|
||||||
-- by8means_Prep = ss "بي" ;
|
by8means_Prep = ss "بِ" ;
|
||||||
-- can8know_VV, can_VV = {
|
-- can8know_VV, can_VV = {
|
||||||
-- s = table VVForm [["بي َبلي تْ"] ; "عَن" ; "عُْلد" ;
|
-- s = table VVForm [["بي َبلي تْ"] ; "عَن" ; "عُْلد" ;
|
||||||
-- ["بّن َبلي تْ"] ; ["بِنغ َبلي تْ"] ; "عَنءت" ; "عُْلدنءت"] ;
|
-- ["بّن َبلي تْ"] ; ["بِنغ َبلي تْ"] ; "عَنءت" ; "عُْلدنءت"] ;
|
||||||
-- isAux = True
|
-- isAux = True
|
||||||
-- } ;
|
-- } ;
|
||||||
-- during_Prep = ss "دُرِنغ" ;
|
during_Prep = ss "خِلَالَ" ;
|
||||||
-- either7or_DConj = sd2 "ِتهر" "ْر" ** {n = Sg} ;
|
-- either7or_DConj = sd2 "ِتهر" "ْر" ** {n = Sg} ;
|
||||||
-- everybody_NP = regNP "ثريبْدي" Sg ;
|
-- everybody_NP = regNP "ثريبْدي" Sg ;
|
||||||
every_Det = mkDet "كُلّ" Sg Const ;
|
every_Det = mkDet "كُلّ" Sg Const ;
|
||||||
@@ -32,7 +32,7 @@ concrete StructuralAra of Structural = CatAra **
|
|||||||
-- everywhere_Adv = ss "ثريوهري" ;
|
-- everywhere_Adv = ss "ثريوهري" ;
|
||||||
few_Det = mkDet "بَعض" Pl Const ;
|
few_Det = mkDet "بَعض" Pl Const ;
|
||||||
-- first_Ord = ss "فِرست" ;
|
-- first_Ord = ss "فِرست" ;
|
||||||
-- from_Prep = ss "فرْم" ;
|
from_Prep = ss "مِنَ" ;
|
||||||
he_Pron = mkNP "هُوَ" "هُ" "هُ" (Per3 Masc Sg) ;
|
he_Pron = mkNP "هُوَ" "هُ" "هُ" (Per3 Masc Sg) ;
|
||||||
here_Adv = ss "هُنا" ;
|
here_Adv = ss "هُنا" ;
|
||||||
-- here7to_Adv = ss ["تْ هري"] ;
|
-- here7to_Adv = ss ["تْ هري"] ;
|
||||||
@@ -40,7 +40,7 @@ concrete StructuralAra of Structural = CatAra **
|
|||||||
how_IAdv = ss "كَيفَ" ;
|
how_IAdv = ss "كَيفَ" ;
|
||||||
-- how8many_IDet = mkDeterminer Pl ["هْو مَني"] ;
|
-- how8many_IDet = mkDeterminer Pl ["هْو مَني"] ;
|
||||||
-- if_Subj = ss "ِف" ;
|
-- if_Subj = ss "ِف" ;
|
||||||
-- in8front_Prep = ss ["ِن فرْنت ْف"] ;
|
in8front_Prep = ss "مُقَابِلَ" ;
|
||||||
i_Pron = mkNP "أَنَا" "نِي" "ِي" (Per1 Sing);
|
i_Pron = mkNP "أَنَا" "نِي" "ِي" (Per1 Sing);
|
||||||
in_Prep = ss "فِي" ;
|
in_Prep = ss "فِي" ;
|
||||||
-- it_Pron = mkNP "ِت" "ِت" "ِتس" Sg P3 ;
|
-- it_Pron = mkNP "ِت" "ِت" "ِتس" Sg P3 ;
|
||||||
@@ -54,15 +54,15 @@ concrete StructuralAra of Structural = CatAra **
|
|||||||
-- ["هَد تْ"] ; ["هَثِنغ تْ"] ; "مُستنءت" ; ["هَدنءت تْ"]] ; ----
|
-- ["هَد تْ"] ; ["هَثِنغ تْ"] ; "مُستنءت" ; ["هَدنءت تْ"]] ; ----
|
||||||
-- isAux = True
|
-- isAux = True
|
||||||
-- } ;
|
-- } ;
|
||||||
-- no_Phr = ss "نْ" ;
|
no_Phr = ss "لا" ;
|
||||||
-- on_Prep = ss "ْن" ;
|
on_Prep = ss "عَلى" ;
|
||||||
one_Quant = mkQuantNum "واحِد" Sg Indef ;
|
one_Quant = mkQuantNum "واحِد" Sg Indef ;
|
||||||
-- only_Predet = ss "ْنلي" ;
|
-- only_Predet = ss "ْنلي" ;
|
||||||
-- or_Conj = ss "ْر" ** {n = Sg} ;
|
-- or_Conj = ss "ْر" ** {n = Sg} ;
|
||||||
-- otherwise_PConj = ss "ْتهروِسي" ;
|
-- otherwise_PConj = ss "ْتهروِسي" ;
|
||||||
-- part_Prep = ss "ْف" ;
|
part_Prep = ss "مِنَ" ;
|
||||||
-- please_Voc = ss "ةلَسي" ;
|
-- please_Voc = ss "ةلَسي" ;
|
||||||
-- possess_Prep = ss "ْف" ;
|
possess_Prep = ss "ل" ;
|
||||||
-- quite_Adv = ss "قُِتي" ;
|
-- quite_Adv = ss "قُِتي" ;
|
||||||
-- she_Pron = mkNP "سهي" "هر" "هر" Sg P3 ;
|
-- she_Pron = mkNP "سهي" "هر" "هر" Sg P3 ;
|
||||||
-- so_AdA = ss "سْ" ;
|
-- so_AdA = ss "سْ" ;
|
||||||
@@ -82,10 +82,10 @@ concrete StructuralAra of Structural = CatAra **
|
|||||||
this_Quant = mkQuant7 "هَذا" "هَذِهِ" "هَذَان" "هَذَيْن" "هَاتَان" "هَاتَيْن" "هَؤُلَاء" Def;
|
this_Quant = mkQuant7 "هَذا" "هَذِهِ" "هَذَان" "هَذَيْن" "هَاتَان" "هَاتَيْن" "هَؤُلَاء" Def;
|
||||||
-- this_NP = regNP "تهِس" Sg ;
|
-- this_NP = regNP "تهِس" Sg ;
|
||||||
-- those_NP = regNP "تهْسي" Pl ;
|
-- those_NP = regNP "تهْسي" Pl ;
|
||||||
-- through_Prep = ss "تهرُْغه" ;
|
through_Prep = ss "عَبْرَ" ;
|
||||||
-- too_AdA = ss "تّْ" ;
|
-- too_AdA = ss "تّْ" ;
|
||||||
-- to_Prep = ss "تْ" ;
|
to_Prep = ss "إِلى" ;
|
||||||
-- under_Prep = ss "ُندر" ;
|
under_Prep = ss "تَحْتَ" ;
|
||||||
-- very_AdA = ss "ثري" ;
|
-- very_AdA = ss "ثري" ;
|
||||||
-- want_VV = P.mkVV (P.regV "وَنت") ;
|
-- want_VV = P.mkVV (P.regV "وَنت") ;
|
||||||
we_Pron = mkNP "نَحنُ" "نا" "نا" (Per1 Plur) ;
|
we_Pron = mkNP "نَحنُ" "نا" "نا" (Per1 Plur) ;
|
||||||
@@ -99,17 +99,11 @@ concrete StructuralAra of Structural = CatAra **
|
|||||||
whoSg_IP = mkIP "مَنْ" Sg ;
|
whoSg_IP = mkIP "مَنْ" Sg ;
|
||||||
whoPl_IP = mkIP "مَنْ" Pl ;
|
whoPl_IP = mkIP "مَنْ" Pl ;
|
||||||
-- why_IAdv = ss "وهي" ;
|
-- why_IAdv = ss "وهي" ;
|
||||||
-- without_Prep = ss "وِتهُْت" ;
|
without_Prep = ss "بِدُونِ" ;
|
||||||
with_Prep = ss "مَع" ;
|
with_Prep = ss "مَع" ;
|
||||||
-- yes_Phr = ss "يس" ;
|
yes_Phr = ss "نَعَم" ;
|
||||||
youSg_Pron = mkNP "أَنتَ" "كَ" "كَ" (Per2 Masc Sg) ;
|
youSg_Pron = mkNP "أَنتَ" "كَ" "كَ" (Per2 Masc Sg) ;
|
||||||
youPl_Pron = mkNP "أَنتُمْ" "كُمْ" "كُمْ" (Per2 Masc Sg) ;
|
youPl_Pron = mkNP "أَنتُمْ" "كُمْ" "كُمْ" (Per2 Masc Sg) ;
|
||||||
youPol_Pron = mkNP "أَنتِ" "كِ" "كِ" (Per2 Fem Sg) ;
|
youPol_Pron = mkNP "أَنتِ" "كِ" "كِ" (Per2 Fem Sg) ;
|
||||||
--
|
|
||||||
--
|
|
||||||
--oper
|
|
||||||
-- mkQuant : Str -> Str -> {s : Number => Str} = \x,y -> {
|
|
||||||
-- s = table Number [x ; y]
|
|
||||||
-- } ;
|
|
||||||
--
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user