1
0
forked from GitHub/gf-rgl

Merge pull request #45 from inariksit/arabic

Arabic
This commit is contained in:
Inari Listenmaa
2018-10-17 17:23:36 +02:00
committed by GitHub
6 changed files with 187 additions and 161 deletions

View File

@@ -11,16 +11,16 @@ flags
lin
airplane_N = sdfN "ط؟ر" "فاعِلة" Fem NoHum ;
airplane_N = sdfN "طءر" "فاعِلة" Fem NoHum ;
answer_V2S = dirV2 (v3 "جوب") ;
apartment_N = brkN "شقّ" "فِعّة" "فِعَل" Fem NoHum ;
apple_N = sdfN "تفح" "فِعّالة" Fem NoHum ;
art_N = brkN "فنّ" "فَعّ" "فُعُول" Masc NoHum ;
ask_V2Q = dirV2 (regV "يَس؟َل") ;
-- ask_V2Q = dirV2 (v1 "س؟ل" a a) ;
baby_N = brkN "طفل" "فِعل" "أَفعال" Masc Hum;
-- bad_A = sndA "سو؟" "فَيِّع" ;
bad_A = mkA "سَيِّئ" "سَيِّئَة" "سَيِّئِين" ;
art_N = brkN "فنن" "فَعّ" "فُعُول" Masc NoHum ;
ask_V2Q = dirV2 (regV "يَسءَل") ;
-- ask_V2Q = dirV2 (v1 "سءل" a a) ;
baby_N = brkN "طفل" "فِعل" "أَفعَال" Masc Hum;
-- bad_A = sndA "سوء" "فَيِّع" ;
bad_A = degrA "سَيِّئ" "سَيِّئَة" "سَيِّئِين" ;
bank_N = brkN "بنك" "فَعل" "فُعُول" Masc NoHum ;
beautiful_A = sndA "جمل" "فَعِيل" ;
become_VA = mkVA (v4 "صبح") ;
@@ -32,89 +32,90 @@ flags
black_A = clrA "سود" ;
blue_A = clrA "زرق" ;
boat_N = brkN "قرب" "فاعِل" "فَواعِل" Masc NoHum ;
book_N = brkN "كتب" "فِعال" "فُعُل" Masc NoHum ;
book_N = brkN "كتب" "فِعَال" "فُعُل" Masc NoHum ;
boot_N = sdfN "جزم" "فَعلة" Fem NoHum ;
boss_N = brkN "دور" "مُفِيع" "مُفَعاء" Masc Hum ;
boss_N = sdmN "دور" "مُفِيع" Masc Hum ;
--boss_N = brkN "دور" "مُفِيع" "مُفَعَاء" Masc Hum ;
boy_N = brkN "صبي" "فَعِل" "فُعلان" Masc Hum ;
bread_N = brkN "خبز" "فُعل" "أَفعال" Masc NoHum ;
bread_N = brkN "خبز" "فُعل" "أَفعَال" Masc NoHum ;
break_V2 = dirV2 (regV "يَكسُر") ;
-- break_V2 = dirV2 (v1 "كسر" a u) ;
broad_A = sndA "وسع" "فاعِل" ;
brother_N2 = mkN2 (brkN "؟خو" "فَع" "فِعلة" Masc Hum) ; --FIXME
brown_A = sndA "بني" "فُعِّل";
brother_N2 = mkN2 (brkN "ءخو" "فَع" "فِعلة" Masc Hum) ; --FIXME dual
brown_A = sndA "بني" "فُعِّل";
butter_N = sdfN "سبد" "فُعلة" Fem NoHum ;
buy_V2 = dirV2 (v8 "شري") ;
camera_N = sdfN "كمر" "فاعِيلا" Fem NoHum ; -- |Alö taSwIr
cap_N = sdfN "قبع" "فُعَّلة" Fem NoHum ; --qalnUsö
cap_N = sdfN "قبع" "فُعَّلة" Fem NoHum ; --qalnUsö
car_N = sdfN "سير" "فَعّالة" Fem NoHum ;
carpet_N = sdfN "سجد" "فَعّالة" Fem NoHum ;
cat_N = brkN "هرّ" "فِعّة" "فِعَل" Fem NoHum ;
cat_N = brkN "هرّ" "فِعّ" "فِعَلَة" Fem NoHum ;
ceiling_N = brkN "سقف" "فَعل" "أَفعُل" Masc NoHum ;
chair_N = brkN "كرس" "فُعلِي" "فَعالِي" Masc NoHum ;
cheese_N = brkN "جبن" "فُعلة" "أَفعال" Fem NoHum ;
child_N = brkN "ولد" "فَعَل" "أَفعال" Masc Hum ;
church_N = brkN "كنس" "فَعِيلة" "فَعاٱِل" Fem Hum ;
chair_N = brkN "كرس" "فُعلِي" "فَعَالِي" Masc NoHum ;
cheese_N = brkN "جبن" "فُعلة" "أَفعَال" Fem NoHum ;
child_N = brkN "ولد" "فَعَل" "أَفعَال" Masc Hum ;
church_N = brkN "كنس" "فَعِيلة" "فَعَاٱِل" Fem Hum ;
city_N = brkN "مدن" "فَعِيلة" "فُعُل" Fem NoHum ;
clean_A = sndA "نظف" "فَعِيل" ;
clever_A = sndA "جهد" "مُفتَعِل" ;
close_V2 = dirV2 (v4 "غلق") ;
coat_N = brkN "عطف" "مِفعَل" "مَفاعِل" Masc NoHum ;
cold_A = sndA "برد" "فاعِل" ;
come_V = v1 "جي؟" a i ; --check
come_V = v1 "جيء" a i ; --check
computer_N = brkN "حسب" "فاعُول" "فَواعِيل" Masc NoHum ;
country_N = brkN "بلد" "فَعَل" "فِعال" Masc NoHum ;
country_N = brkN "بلد" "فَعَل" "فِعَال" Masc NoHum ;
cousin_N = brkN "قرب" "فَعِيل" "أَفعِلاء" Masc Hum ; -- (<bn / bnt) (cam[ö] / xAl[ö])
cow_N = sdfN "بقر" "فَعلة" Fem NoHum ;
die_V = v1 "موت" a u ; --check
dirty_A = sndA "وسخ" "فَعِل" ;
distance_N3 = mkN3 (sdfN "سوف" "مَفاعة" Fem NoHum) "مِن" "إِلَى" ;
doctor_N = brkN "طبّ" "فَعِيل" "أَفِعّاء" Masc Hum ;
dog_N = brkN "كلب" "فَعل" "فِعال" Masc NoHum ;
door_N = brkN "بوب" "فاع" "أَفعال" Masc NoHum ;
doctor_N = brkN "طبب" "فَعِيل" "أَفِعّاء" Masc Hum ;
dog_N = brkN "كلب" "فَعل" "فِعَال" Masc NoHum ;
door_N = brkN "بوب" "فاع" "أَفعَال" Masc NoHum ;
drink_V2 = dirV2 (regV "شَرِب") ;
-- drink_V2 = dirV2 (v1 "شرب" i a) ;
easy_A2V = mkA2 (sndA "سهل" "فَعل") "لِ" ;
eat_V2 = dirV2 (mkV "ءكل" FormI) ;
empty_A = sndA "فرغ" "فاعِل" ;
enemy_N = brkN "عدو" "فَعُلّ" "أَفعاء" Masc Hum ;
enemy_N = brkN "عدو" "فَعُلّ" "أَفعَاء" Masc Hum ;
factory_N = brkN "صنع" "مَفعَل" "مَفاعِل" Masc NoHum ;
father_N2 = mkN2 (brkN "؟ب" "فَع" "أَفعاء" Masc Hum);
father_N2 = mkN2 (brkN "ءب" "فَع" "أَفعَاء" Masc Hum);
fear_VS = mkVS (v1 "خشي" i a );
find_V2 = dirV2 (v1 "وجد" a i ) ;
fish_N = brkN "سمك" "فَعَلة" "أَفعال" Fem NoHum ;
floor_N = brkN "؟رض" "فَعل" "فَعالِي" Fem NoHum;
fish_N = brkN "سمك" "فَعَلة" "أَفعَال" Fem NoHum ;
floor_N = brkN "ءرض" "فَعل" "فَعَالِي" Fem NoHum;
forget_V2 = dirV2 (v1 "نسي" i a ) ;
fridge_N = sdfN "برد" "فَعّال" Masc NoHum ;
friend_N = brkN "صدق" "فَعِيل" "أَفعِلاء" Masc Hum ; --SadIqö
fruit_N = brkN "فكه" "فاعِلة" "فَواعِل" Fem NoHum ;
fun_AV = sndA "متع" "مُفعِل" ;
garden_N = brkN "حدق" "فَعِيلة" "فَعاٱِل" Fem NoHum ;
girl_N = brkN "بنت" "فِعل" "فَعال" Fem Hum ;
garden_N = brkN "حدق" "فَعِيلة" "فَعَاٱِل" Fem NoHum ;
girl_N = brkN "بنت" "فِعل" "فَعَال" Fem Hum ;
glove_N = sdfN "قفز" "فُعّال" Masc NoHum ;
gold_N = sdfN "ذهب" "فَعَل" Masc NoHum ;
good_A = sndA "جود" "فَيِّع" ; -- Hasan, HisAn
good_A = sndA "جود" "فَيِّع" ; -- Hasan, HisAn
go_V = regV "يَذهَب" ;
-- go_V = v1 "ذهب" a a ;
green_A = clrA "خضر" ;
harbour_N = brkN "رف؟" "مَفعَل" "مَفاعِل" Masc NoHum ; --mInA', marsaY
harbour_N = brkN "رفء" "مَفعَل" "مَفاعِل" Masc NoHum ; --mInA', marsaY
hate_V2 = dirV2 (regV "كَرِه") ;
hat_N = sdfN "قبع" "فُعَّلة" Fem NoHum ;
hat_N = sdfN "قبع" "فُعَّلة" Fem NoHum ;
-- have_V2 = dirV2 (v1 "ملك" a i) ;
hear_V2 = dirV2 (regV "سَمِع") ;
-- hear_V2 = dirV2 (v1 "سمع" i a) ;
hill_N = brkN "هضب" "فَعلة" "فِعال" Fem NoHum ; --tallö, rAbiyö
hill_N = brkN "هضب" "فَعلة" "فِعَال" Fem NoHum ; --tallö, rAbiyö
hope_VS = mkVS (v1 "رجو" a u) ; --check
horse_N = brkN "حصن" "فِعال" "أَفعِلة" Masc NoHum ;
horse_N = brkN "حصن" "فِعَال" "أَفعِلة" Masc NoHum ;
hot_A = sndA "سخن" "فاعِل" ; --HAr
house_N = brkN "بيت" "فَعل" "فُعُول" Masc NoHum ; --manzil
important_A = sndA "هيم" "فاعّ" ;
industry_N = sdfN "صنع" "فِعالة" Fem NoHum ;
iron_N = brkN "حدّ" "فَعِيل" "فَعائِل" Masc NoHum ;
industry_N = sdfN "صنع" "فِعَالة" Fem NoHum ;
iron_N = brkN "حدد" "فَعِيل" "فَعَائِل" Masc NoHum ;
king_N = brkN "ملك" "فَعِل" "فُعُول" Masc Hum ;
know_V2 = dirV2 (regV "عَرِف") ;
know_VS = mkVS (regV "عَرِف") ; -- or with ع ل م?
lake_N = sdfN "بحر" "فُعَيلة" Fem NoHum ;
lamp_N = brkN "صبح" "مِفعال" "مَفاعِيل" Masc NoHum ; --qanDIl, fAnUs
lamp_N = brkN "صبح" "مِفعَال" "مَفاعِيل" Masc NoHum ; --qanDIl, fAnUs
learn_V2 = dirV2 (v5 "علم") ;
leather_N = brkN "جلد" "فِعل" "فُعُول" Masc NoHum ;
leave_V2 = dirV2 (regV "يَترُك") ;
@@ -128,16 +129,16 @@ flags
-- lose_V2 = dirV2 (v1 "خسر" i a) ; --Dayyac, >aDAc
love_N = brkN "حبّ" "فُعّ" "فُعّ" Masc NoHum ; -- no plur
love_V2 = dirV2 (v1 "حبّ" a i) ;
man_N = brkN "رجل" "فَعُل" "فِعال" Masc Hum ;
married_A2 = mkA2 (sndA "زوج" "مُتَفَعِّل") "مِن" ;
man_N = brkN "رجل" "فَعُل" "فِعَال" Masc Hum ;
married_A2 = mkA2 (sndA "زوج" "مُتَفَعِّل") "مِن" ;
meat_N = brkN "لحم" "فَعلة" "فُعُول" Masc NoHum ;
milk_N = brkN "حلب" "فَعِيل" "فَعِيل" Masc NoHum ; --no plur
moon_N = brkN "قمر" "فَعَل" "أَفعال" Masc NoHum ;
mother_N2 = mkN2 (sdfN "؟م" "فُعّ" Fem Hum) ;
mountain_N = brkN "جبل" "فَعَل" "فِعال" Masc NoHum ;
moon_N = brkN "قمر" "فَعَل" "أَفعَال" Masc NoHum ;
mother_N2 = mkN2 (sdfN "ءم" "فُعَّ" Fem Hum) ;
mountain_N = brkN "جبل" "فَعَل" "فِعَال" Masc NoHum ;
music_N = mkN (reg "مُوسِيقَى" "مُوسِيقَى") Fem NoHum ; --no plur
narrow_A = sndA "ضيق" "فَعِّل" ;
new_A = sndA "جدّ" "فَعِيل" ;
narrow_A = sndA "ضيق" "فَعِّل" ;
new_A = mkA "جدد" "فَعِيل" "فُعُل" ;
newspaper_N = brkN "صحف" "فَعِيلة" "فُعُل" Fem NoHum ;
oil_N = brkN "زيت" "فَعل" "فُعُول" Masc NoHum ;
old_A = sndA "قدم" "فَعِيل" ;
@@ -145,30 +146,30 @@ flags
-- open_V2 = dirV2 (v1 "فتح" a a ) ;
paint_V2A = mkV2A (regV "يَدهَن" ) [] ;
-- paint_V2A = mkV2A (v1 "دهن" a a ) [] ;
paper_N = brkN "ورق" "فَعَلة" "أَفعال" Fem NoHum ;
paper_N = brkN "ورق" "فَعَلة" "أَفعَال" Fem NoHum ;
paris_PN = mkPN "بارِيس" Fem NoHum ;
peace_N = brkN "سلم" "فَعال" "فَعال" Masc NoHum; --no plur
pen_N = brkN "قلم" "فَعَل" "أَفعال" Masc NoHum;
peace_N = brkN "سلم" "فَعَال" "فَعَال" Masc NoHum; --no plur
pen_N = brkN "قلم" "فَعَل" "أَفعَال" Masc NoHum;
planet_N = mkN (reg "كَوكَب" "كَواكِب") Masc NoHum ; -- quadriconsonantal
plastic_N = mkN (sndf "بلاستِيك") Masc NoHum ;
play_V2 = dirV2 (regV "لَعِب") ;
-- play_V2 = dirV2 (v1 "لعب" i a) ;
policeman_N = sdmN "شرط" "فِعلِي" Masc Hum ;
priest_N = brkN "قسّ" "فِعِّيل" "أَفِعّة" Masc Hum ;
priest_N = brkN "قسّ" "فِعِّيل" "أَفِعّة" Masc Hum ;
probable_AS = mkAS (sndA "مكن" "مُفعِل") ;
queen_N = sdfN "ملك" "فَعِلة" Fem Hum ;
radio_N = mkN (sndf "راديُو") Masc NoHum ;
rain_V0 = mkV0 (regV "يَمطُر") ;
-- rain_V0 = mkV0 (v1 "مطر" a u) ;
read_V2 = dirV2 (regV "يَقرَ؟") ;
-- read_V2 = dirV2 (v1 "قر؟" a a ) ;
read_V2 = dirV2 (regV "يَقرَء") ;
-- read_V2 = dirV2 (v1 "قرء" a a ) ;
red_A = clrA "حمر" ;
religion_N = brkN "دين" "فِعل" "أَفعال" Masc NoHum ;
religion_N = brkN "دين" "فِعل" "أَفعَال" Masc NoHum ;
restaurant_N = brkN "طعم" "مَفعَل" "مَفاعِل" Masc NoHum ;
river_N = brkN "نهر" "فَعل" "أَفعال" Masc NoHum ;
river_N = brkN "نهر" "فَعل" "أَفعَال" Masc NoHum ;
rock_N = brkN "صخر" "فَعلة" "فُعُول" Fem NoHum ;
roof_N = brkN "سطح" "فَعل" "أَفعُل" Masc NoHum ;
rubber_N = brkN "مطّ" "فَعّال" "فَعّال" Masc NoHum ; -- no hum
rubber_N = brkN "مطط" "فَعَّال" "فَعَّال" Masc NoHum ; -- no hum
run_V = regV "يَركُض" ;
-- run_V = v1 "ركض" a u ;
say_VS = mkVS (v1 "قول" a u) ; --check
@@ -177,41 +178,41 @@ flags
sea_N = brkN "بحر" "فَعل" "فُعُول" Masc NoHum ;
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
send_V3 = dirdirV3 (v4 "رسل") ;
sheep_N = brkN "خرف" "فَعُول" "فِعال" Masc NoHum ;
sheep_N = brkN "خرف" "فَعُول" "فِعَال" Masc NoHum ;
ship_N = brkN "سفن" "فَعِيلة" "فُعُل" Fem NoHum ;
shirt_N = brkN "قمص" "فَعِيل" "فُعلان" Masc NoHum ;
shoe_N = brkN "حذو" "فِعاء" "أَفعِية" Masc NoHum ;
shoe_N = brkN "حذو" "فِعَاء" "أَفعِية" Masc NoHum ;
shop_N = brkN "تجر" "مَفعَل" "مَفاعِل" Masc NoHum ;
short_A = sndA "قصر" "فَعِيل" ;
silver_N = brkN "فضّ" "فِعّة" "فِعَل" Fem NoHum ;
sister_N = brkN "؟خو" "فُعت" "فَعَوات" Fem Hum ; --FIXME
silver_N = brkN "فضض" "فِعَّة" "فِعَل" Fem NoHum ;
sister_N = brkN "ءخو" "فُعت" "فَعَوَات" Fem Hum ; --FIXME
sleep_V = v1 "نوم" i a ; --check
small_A = sndA "صغر" "فَعِيل" ;
snake_N = sdfN "حيّ" "فَعّة" Fem NoHum ;
snake_N = sdfN "حيّ" "فَعَّة" Fem NoHum ;
sock_N = brkN "جرب" "فَوعَل" "فَواعِل" Masc NoHum ;
speak_V2 = dirV2 (v5 "كلم") ;
star_N = brkN "نجم" "فَعل" "فُعُول" Masc NoHum ; --najmö
steel_N = brkN "فلذ" "فُوعال" "فَواعِل" Masc NoHum ;
stone_N = brkN "حجر" "فَعَل" "أَفعال" Masc NoHum ;
steel_N = brkN "فلذ" "فُوعَال" "فَواعِل" Masc NoHum ;
stone_N = brkN "حجر" "فَعَل" "أَفعَال" Masc NoHum ;
stove_N = brkN "وقد" "مَفعِل" "مَفاعِل" Masc NoHum ;
student_N = brkN "طلب" "فاعِل" "فُعّال" Masc Hum ; --tilmI*
stupid_A = clrA "بله" ;
sun_N = brkN "شمس" "فَعل" "فُعُول" Fem NoHum ;
switch8off_V2 = dirV2 (v4 "طف؟") ;
switch8off_V2 = dirV2 (v4 "طفء") ;
switch8on_V2 = dirV2 (v4 "شعل") ;
table_N = sdfN "طول" "فاعِلة" Fem NoHum ;
talk_V3 = mkV3 (v5 "حدث") "لِ" "عَن" ;
teacher_N = sdmN "علم" "مُفَعِّل" Masc Hum ; --mucal~imö
teacher_N = sdmN "علم" "مُفَعِّل" Masc Hum ; --mucal~imö
teach_V2 = dirV2 (v2 "علم") ;
television_N = mkN (sndf "تِلِفِزيُون") Masc NoHum ;
thick_A = sndA "سمك" "فَعِيل" ;
thin_A = sndA "رفع" "فَعِيل" ;
train_N = sdfN "قطر" "فِعال" Masc NoHum;
train_N = sdfN "قطر" "فِعَال" Masc NoHum;
travel_V = v3 "سفر" ;
tree_N = brkN "شجر" "فَعلة" "أَفعال" Fem NoHum ;
tree_N = brkN "شجر" "فَعلة" "أَفعَال" Fem NoHum ;
ugly_A = sndA "قبح" "فَعِيل" ;
understand_V2 = dirV2 (regV "فَهِم") ;
-- understand_V2 = dirV2 (v1 "فهم" i a ) ;
@@ -219,7 +220,7 @@ flags
village_N = brkN "قري" "فَعلة" "فُعَى" Fem NoHum ; --Daycö
wait_V2 = dirV2 (v8 "نظر") ;
walk_V = v1 "مشي" a i ; --check
warm_A = sndA "دف؟" "فاعِل" ;
warm_A = sndA "دفء" "فاعِل" ;
war_N = brkN "حرب" "فَعل" "فُعُول" Fem NoHum ;
watch_V2 = dirV2 (v3 "شهد") ;
water_N = mkN (reg "ماء" "مِياه") Fem NoHum ; --"موه" "فاء" "فِياع" ??
@@ -229,21 +230,21 @@ flags
win_V2 = dirV2 (regV "رَبِح") ;
-- win_V2 = dirV2 (v1 "ربح" i a) ;
woman_N = mkN (reg "إِمرَأَة" "نِسوَة") Fem Hum ;
wonder_VQ = mkVQ (v6 "س؟ل") ;
wood_N = brkN "خشب" "فَعَل" "أَفعال" Masc NoHum ;
wonder_VQ = mkVQ (v6 "سءل") ;
wood_N = brkN "خشب" "فَعَل" "أَفعَال" Masc NoHum ;
write_V2 = dirV2 (regV "يَكتُب") ;
-- write_V2 = dirV2 (v1 "كتب" a u) ;
yellow_A = clrA "صفر" ;
young_A = sndA "شبب" "فاعّ" ;
young_A = sndA "شبب" "فَاعّ" ;
do_V2 = dirV2 (regV "يَفعَل") ;
-- do_V2 = dirV2 (v1 "فعل" a a ) ;
now_Adv = mkAdv "الآن" ;
already_Adv = mkAdv "سابِقاً" ;
song_N = brkN "غني" "أَفعِلة" "أَفاعِي" Fem NoHum ;
song_N = brkN "غني" "أُفعِلَة" "أَفَاعِي" Fem NoHum ;
add_V3 = dirV3 (regV "يَجمَع") "وَ" ;
-- add_V3 = dirV3 (v1 "جمع" a a) "وَ" ;
number_N = brkN "رقم" "فَعل" "أَفعال" Masc NoHum ; --cadad
number_N = brkN "رقم" "فَعل" "أَفعَال" Masc NoHum ; --cadad
put_V2 = dirV2 (v1 "وضع" a a );
stop_V = v5 "وقف" ;
jump_V = regV "يَقفِز" ;
@@ -253,14 +254,14 @@ flags
right_Ord = mkOrd "أَيمَن" "يُمنَى" One;
far_Adv = mkAdv "بَعِيداً" ;
correct_A = sndA "صحّ" "فَعِيل" ;
correct_A = sndA "صحّ" "فَعِيل" ; -- TODO broken plural
dry_A = sndA "نشف" "فاعِل" ;
dull_A = sndA "بهت" "فاعِل" ;
full_A = sndA "مل؟" "فَعِيل" ;
full_A = sndA "ملء" "فَعِيل" ;
heavy_A = sndA "ثقل" "فَعِيل" ;
near_A = sndA "قرب" "فَعِيل" ;
rotten_A = sndA "فسد" "فاعِل" ;
round_A = sndA "دور" "مُفَعَّل" ;
round_A = sndA "دور" "مُفَعَّل" ;
sharp_A = sndA "حدّ" "فاعّ" ;
smooth_A = sndA "نعم" "فاعِل" ;
straight_A = sndA "قوم" "مُستَفِيع" ;
@@ -268,68 +269,68 @@ flags
wide_A = sndA "وسع" "فاعِل" ;
animal_N = sdfN "حيّ" "فَعَوان" Masc NoHum ;
ashes_N = brkN "رمد" "فَعال" "أَفعِلة" Masc NoHum;
ashes_N = brkN "رمد" "فَعَال" "أَفعِلة" Masc NoHum;
back_N = brkN "ظهر" "فَعل" "فُعُول" Masc NoHum;
bark_N = brkN "نبح" "فَعل" "فُعال" Masc NoHum;
bark_N = brkN "نبح" "فَعل" "فُعَال" Masc NoHum;
belly_N = brkN "بطن" "فَعل" "فُعُول" Fem NoHum;
blood_N = brkN "دم" "فَع" "فِعاء" Masc NoHum;
bone_N = brkN "عظم" "فَعلة" "فِعال" Fem NoHum;
blood_N = brkN "دم" "فَع" "فِعَاء" Masc NoHum;
bone_N = brkN "عظم" "فَعلة" "فِعَال" Fem NoHum;
breast_N = brkN "صدر" "فَعل" "فُعُول" Masc NoHum;
cloud_N = brkN "غيم" "فَعلة" "فُعُول" Fem NoHum;
day_N = brkN "يوم" "فَعل" "أَفّاع" Masc NoHum;
dust_N = brkN "غبر" "فُعال" "أَفعِلة" Masc NoHum;
ear_N = brkN "؟ذن" "فُعل" "أَفعال" Fem NoHum;
day_N = brkN "يوم" "فَعل" "أَفَّاع" Masc NoHum;
dust_N = brkN "غبر" "فُعَال" "أَفعِلة" Masc NoHum;
ear_N = brkN "ءذن" "فُعل" "أَفعَال" Fem NoHum;
earth_N = brkN "ترب" "فُعلة" "فُعَل" Fem NoHum;
egg_N = sdfN "بيض" "فَعلة" Fem NoHum;
eye_N = brkN "عين" "فَعل" "فُعُول" Fem NoHum;
fat_N = brkN "دهن" "فُعل" "فُعُول" Masc NoHum ;
feather_N = sdfN "ريش" "فِعلة" Fem NoHum;
fingernail_N = brkN "ظفر" "فُعل" "أَفاعِل" Masc NoHum;
fire_N = brkN "نور" "فاع" "فِيعان" Fem NoHum;
fire_N = brkN "نور" "فاع" "فِيعَان" Fem NoHum;
flower_N = brkN "زهر" "فَعلة" "فُعُول" Fem NoHum;
fog_N = brkN "ضبب" "فَعال" "فَعال" Masc NoHum; --no plural ?
foot_N = brkN "قدم" "فَعَل" "أَفعال" Fem NoHum;
fog_N = brkN "ضبب" "فَعَال" "فَعَال" Masc NoHum; --no plural ?
foot_N = brkN "قدم" "فَعَل" "أَفعَال" Fem NoHum;
forest_N = sdfN "غيب" "فاعة" Fem NoHum;
grass_N = brkN "عشب" "فُعلة" "أَفعال" Fem NoHum;
guts_N = brkN "حشو" "فَعا" "أَفعاء" Fem NoHum;
grass_N = brkN "عشب" "فُعلة" "أَفعَال" Fem NoHum;
guts_N = brkN "حشو" "فَعَا" "أَفعَاء" Fem NoHum;
hair_N = sdfN "شعر" "فَعلة" Fem NoHum ;
hand_N = brkN "يد" "فَع" "أَفاعِي" Fem NoHum ;
head_N = brkN "ر؟س" "فَعل" "فُعُول" Masc NoHum;
hand_N = brkN "يد" "فَع" "أَفَاعِي" Fem NoHum ;
head_N = brkN "رءس" "فَعل" "فُعُول" Masc NoHum;
heart_N = brkN "قلب" "فَعل" "فُعُول" Masc NoHum;
horn_N = brkN "قرن" "فَعل" "فُعُول" Masc NoHum;
husband_N = brkN "زوج" "فَعل" "أَفعال" Masc NoHum;
husband_N = brkN "زوج" "فَعل" "أَفعَال" Masc NoHum;
ice_N = brkN "ثلج" "فَعل" "فُعُول" Masc NoHum;
knee_N = brkN "ركب" "فُعلة" "فُعَل" Fem NoHum;
leaf_N = brkN "ورق" "فَعَلة" "أَفعال" Fem NoHum;
leaf_N = brkN "ورق" "فَعَلة" "أَفعَال" Fem NoHum;
leg_N = brkN "رجل" "فِعل" "أَفعُل" Fem NoHum;
liver_N = brkN "كبد" "فَعِل" "أَفعال" Masc NoHum ;
liver_N = brkN "كبد" "فَعِل" "أَفعَال" Masc NoHum ;
louse_N = sdfN "قمل" "فَعلة" Fem NoHum;
mouth_N = brkN "فوه" "فُعل" "أَفعال" Masc NoHum ;
name_N = brkN "ءسم" "فِعل" "فَعالِي" Masc NoHum;
neck_N = brkN "رقب" "فَعَلة" "فِعال" Fem NoHum;
night_N = brkN "ليل" "فَعلة" "فَعالِي" Fem NoHum; --plural?
nose_N = brkN "؟نف" "فَعل" "فُعُول" Masc NoHum;
person_N = brkN "شخص" "فَعل" "أَفعال" Masc Hum;
mouth_N = brkN "فوه" "فُعل" "أَفعَال" Masc NoHum ;
name_N = brkN "ءسم" "فِعل" "فَعَالِي" Masc NoHum;
neck_N = brkN "رقب" "فَعَلة" "فِعَال" Fem NoHum;
night_N = brkN "ليل" "فَعلة" "فَعَالِي" Fem NoHum; --plural?
nose_N = brkN "ءنف" "فَعل" "فُعُول" Masc NoHum;
person_N = brkN "شخص" "فَعل" "أَفعَال" Masc Hum;
question_N = mkN "سؤال" ; ----IL
rain_N = brkN "مطر" "فَعَل" "أَفعال" Masc NoHum;
rain_N = brkN "مطر" "فَعَل" "أَفعَال" Masc NoHum;
road_N = brkN "طرق" "فَعِيل" "فُعُل" Fem NoHum;
root_N = brkN "جذر" "فَعل" "فُعُول" Masc NoHum ;
rope_N = brkN "حبل" "فَعل" "فِعال" Masc NoHum;
salt_N = brkN "ملح" "فِعل" "أَفعال" Masc NoHum;
sand_N = brkN "رمل" "فَعل" "فِعال" Masc NoHum;
rope_N = brkN "حبل" "فَعل" "فِعَال" Masc NoHum;
salt_N = brkN "ملح" "فِعل" "أَفعَال" Masc NoHum;
sand_N = brkN "رمل" "فَعل" "فِعَال" Masc NoHum;
seed_N = brkN "بذر" "فَعل" "فُعُول" Masc NoHum;
skin_N = brkN "جلد" "فِعل" "فُعُول" Masc NoHum;
sky_N = sdfN "سمو" "فَعاء" Fem NoHum;
smoke_N = brkN "دخن" "فُعال" "أَفعِلة" Masc NoHum;
sky_N = sdfN "سمو" "فَعَاء" Fem NoHum;
smoke_N = brkN "دخن" "فُعَال" "أَفعِلة" Masc NoHum;
snow_N = brkN "ثلج" "فَعل" "فُعُول" Masc NoHum;
stick_N = brkN "عصو" "فَعا" "فِعِي" Masc NoHum ; --"عصو"
tail_N = brkN "ذنب" "فَعَل" "أَفعال" Masc NoHum;
tongue_N = brkN "لسن" "فِعال" "أَفعِلة" Masc NoHum;
tooth_N = brkN "سنّ" "فِعل" "أَفعال" Masc NoHum ;
stick_N = brkN "عصو" "فَعَا" "فِعِي" Masc NoHum ; --"عصو"
tail_N = brkN "ذنب" "فَعَل" "أَفعَال" Masc NoHum;
tongue_N = brkN "لسن" "فِعَال" "أَفعِلة" Masc NoHum;
tooth_N = brkN "سنن" "فِعّ" "أَفعَال" Masc NoHum ;
wife_N = sdfN "زوج" "فَعلة" Fem Hum;
wind_N = brkN "ريح" "فِعل" "فِعال" Fem NoHum;
wing_N = brkN "جنح" "فَعال" "أَفعِلة" Masc NoHum ;
worm_N = brkN "دود" "فُعلة" "فِيعان" Fem NoHum ;
wind_N = brkN "ريح" "فِعل" "فِعَال" Fem NoHum;
wing_N = brkN "جنح" "فَعَال" "أَفعِلة" Masc NoHum ;
worm_N = brkN "دود" "فُعلة" "فِيعَان" Fem NoHum ;
year_N = mkN "سَنَة" "سَنَوَات" Fem NoHum ;
blow_V = regV "يَنفُخ" ;
@@ -355,7 +356,7 @@ flags
swim_V = regV "يَسبَح" ;
think_V = v2 "فكر" ;
turn_V = regV "يَبرُم" ;
vomit_V = v5 "قي؟" ;
vomit_V = v5 "قيء" ;
bite_V2 = dirV2 ( v1 "عضّ" a a ) ;
count_V2 = dirV2 (v1 "عدّ" a u) ;
@@ -378,7 +379,5 @@ flags
tie_V2 = dirV2 (regV "يَربُط" ) ;
wash_V2 = dirV2 ( regV "يَغسِل" ) ;
wipe_V2 = dirV2 ( regV "يَمسَح" ) ;
-- other_A = sndA "ْتهر" ;
} ;

View File

@@ -193,5 +193,15 @@ lin
-- AdvCN cn ad = {s = \\n,c => cn.s ! n ! c ++ ad.s} ;
--
-- SentCN cn sc = {s = \\n,c => cn.s ! n ! c ++ sc.s} ;
ApposCN cn np = cn ** { np = np.s } ;
ApposCN cn np = cn ** { np = \\c => cn.np ! c ++ np.s ! c } ;
-- : CN -> NP -> CN ; -- house of Paris, house of mine
PossNP cn np = cn ** {
s = \\n,_d,c => cn.s ! n ! Const ! c ;
np = \\c => cn.np ! c ++ np.s ! Gen
};
-- : CN -> NP -> CN ; -- glass of wine
--PartNP
}

View File

@@ -4,18 +4,16 @@ flags coding=utf8 ;
oper
-- Definite article assimilation
vow : pattern Str = #("َ" | "ِ" | "ُ") ;
vow : pattern Str = #("َ" | "ِ" | "ُ" | "ً" | "ٍ" | "ٌ") ;
-- "Sun letters": assimilate with def. article
sun : pattern Str = #("ت"|"ث"|"د"|"ذ"|"ر"|"ز"|"س"|"ش"|"ص"|"ض"|"ط"|"ظ"|"ل"|"ن") ;
-- Shadda: https://www.unicode.org/L2/L2017/17253-arabic-ordering.pdf
fixShd : Str -> Str -> Str = \word,vowel ->
case word of {
x + "ّ" => x + vowel + "ّ" ;
x => x + vowel
fixShd : Str -> Str -> Str = \word,suffix ->
case <word,suffix> of {
<x + "ّ", v@#vow + y> => x + v + "ّ" + y ;
_ => word + suffix
} ;
-- Hamza

View File

@@ -107,19 +107,21 @@ resource ParadigmsAra = open
mkA = overload {
mkA : (root,patt : Str) -> A
= sndA ;
= \r,p -> lin A (sndA r p);
mkA : (root : Str) -> A -- forms adjectives with positive form aFCal
= clrA ;
mkA : (posit,compar,plur : Str) -> A
= degrA ;
= \r -> lin A (clrA r);
mkA : (root,sg,pl : Str) -> A
= \r,s,p -> lin A (brkA r s p) ;
-- mkA : (posit,compar,plur : Str) -> A
-- = degrA ;
} ;
--Takes a root string and a pattern string
sndA : (root,patt : Str) -> A ;
sndA : (root,patt : Str) -> Adj ;
--Takes a root string only
clrA : (root : Str) -> A ; -- forms adjectives of type aFCal
clrA : (root : Str) -> Adj ; -- forms adjectives of type aFCal
--3 Two-place adjectives
--
@@ -405,8 +407,14 @@ resource ParadigmsAra = open
sdfN =
\root,sg,gen,spec ->
let { kalima = mkWord sg root;
} in mkFullN (sndf kalima) gen spec;
let { kalimaStr = mkWord sg root;
kalimaRaw = sndf kalimaStr;
kalima : NTable = \\n,d,c => case root of {
_ + #hamza + _
=> rectifyHmz (kalimaRaw ! n ! d ! c);
_ => kalimaRaw ! n ! d ! c
};
} in mkFullN kalima gen spec;
sdmN =
\root,sg,gen,spec ->
@@ -478,6 +486,19 @@ resource ParadigmsAra = open
d = det
});
brkA : (root,sg,pl : Str) -> Adj = \root,sg,pl ->
let jadId = mkWord sg root ;
jadIda = jadId + "َة" ;
judud = mkWord pl root ;
akbar = mkWord "أَفعَل" root ;
mascTbl = reg jadId judud ;
femTbl = reg jadIda judud ;
in { s = table {
APosit Masc n d c => mascTbl ! n ! d ! c ;
APosit Fem n d c => femTbl ! n ! d ! c ;
AComp d c => indeclN akbar ! d ! c }
} ;
degrA : (posit,compar,plur : Str) -> A
= \posit,compar,plur -> lin A {s = clr posit compar plur} ;
@@ -487,20 +508,18 @@ resource ParadigmsAra = open
case root of {
_ + #hamza + _ => rectifyHmz(raw.s ! af);
_ => raw.s ! af
};
lock_A = <>
}
};
sndA' : Str -> Str -> A =
sndA' : Str -> Str -> Adj =
\root,pat ->
let { kabIr = mkWord pat root;
akbar = mkWord "أَفعَل" root
} in {
s = table {
APosit g n d c => (positAdj kabIr) ! g ! n ! d ! c ;
AComp d c => (indeclN akbar) ! d ! c
};
lock_A = <>
APosit g n d c => positAdj kabIr ! g ! n ! d ! c ;
AComp d c => indeclN akbar ! d ! c
}
};
clrA root =
@@ -509,7 +528,6 @@ resource ParadigmsAra = open
Humr = mkWord "فُعل" root
} in {
s = clr eaHmar HamrA' Humr;
lock_A = <>
};
mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ;

View File

@@ -41,26 +41,19 @@ resource ResAra = PatternsAra ** open Prelude, Predef, OrthoAra, ParamX in {
-- AR 7/12/2009 changed this to avoid duplication of consonants
mkRoot3 : Str -> Root3 = \fcl -> case fcl of {
f@? + c@? + l => {f = f ; c = c ; l = l}
f@? + c@? + l => {f = f ; c = c ; l = l} ;
_ => error ("mkRoot3: too short root" ++ fcl)
} ;
{-
mkRoot3 : Str -> Root3 = \fcl ->
let { cl = drop 2 fcl; --drop 1 fcl
l' = dp 2 fcl; --last fcl
c' = take 2 cl} in --take 1 cl
{f = take 2 fcl; c = c'; --take 1 fcl
l = case l' of {
"ّ" => c';
_ => l'
}
};
-}
--for roots with 2 consonants (works also for assimilated strs, like fc~,
--because the function discards anything after the first two characters
mkRoot2 : Str -> Root2 = \fcl ->
let { cl = drop 2 fcl} in --drop 1 fcl
{f = take 2 fcl; c = take 2 cl}; --take 1
-- let { cl = drop 2 fcl} in --drop 1 fcl
-- {f = take 2 fcl; c = take 2 cl}; --take 1
case fcl of {
f@? + c@? + _ => { f = f ; c = c } ;
_ => error ("mkRoot2: too short root" ++ fcl)
};
--opers to interdigitize (make words out of roots and patterns:
@@ -93,15 +86,23 @@ resource ResAra = PatternsAra ** open Prelude, Predef, OrthoAra, ParamX in {
--takes a pattern string and root string and makes a word
mkWord : Str -> Str -> Str =\pS, rS ->
case pS of {
w@_ + "ف" + x@_ + "ع" + y@_ + "ل" + z@_ =>
mkStrong { h = w ; m1 = x; m2 = y; t = z} (mkRoot3 rS);
w@_ + "ف" + x@_ + "ع" + y@_ =>
w + "ف" + x + "ع" + y + "ل" + z =>
let pat = { h = w ; m1 = x; m2 = y; t = z} in
case rS of {
x@? + y@? + "ّ" => mkStrong pat (mkRoot3 (x+y+y)) ; -- In principle, shadda shouldn't be in the root, but if someone puts one, this should fix it. /IL
_ => mkStrong pat (mkRoot3 rS) } ;
w + "ف" + x + "ع" + y =>
let pat = { h = w ; m1 = x; m2 = ""; t = y} in
case <length rS : Ints 100> of {
-- 6 | 5 => mkWeak pat (mkRoot3 rS) ; --3=>
6 | 5 => mkHollow pat (mkRoot3 rS) ; --3=>
4 | 3 => mkBilit pat (mkRoot2 rS) ; --2=>
_ => rS ---- AR error "expected 3--6"
case rS of {
x + "ّ" => mkBilit pat (mkRoot2 x) ; -- fc~
x@? + y@? + ("و"|"ي")
=> mkDefective pat (mkRoot3 rS) ;
x@? + ("و"|"ي") + z@?
=> mkHollow pat (mkRoot3 rS) ;
("و"|"ي") + y@? + z@?
=> mkAssimilated pat (mkRoot3 rS) ;
? + ? + _ => mkBilit pat (mkRoot2 rS) ; --2=>
_=> error rS ---- AR error "expected 3--6"
}
};

View File

@@ -69,7 +69,7 @@ concrete StructuralAra of Structural = CatAra **
she_Pron = mkPron "هِيَ" "ها" "ها" (Per3 Fem Sg) ;
-- so_AdA = ss "سْ" ;
somebody_NP = regNP "أَحَد" Sg ;
someSg_Det = mkDet "أَحَد" Pl Const ;
someSg_Det = mkDet "أَحَد" Sg Const ;
somePl_Det = mkDet "بَعض" Pl Const ;
something_NP = regNP "شَيْء" Sg ;
-- somewhere_Adv = ss "سْموهري" ;