forked from GitHub/gf-rgl
@@ -3,7 +3,6 @@
|
|||||||
concrete LexiconAra of Lexicon = CatAra ** open
|
concrete LexiconAra of Lexicon = CatAra ** open
|
||||||
ParadigmsAra,
|
ParadigmsAra,
|
||||||
ResAra,
|
ResAra,
|
||||||
MorphoAra, --shouldn't open it here, only needed reg &sndf
|
|
||||||
Prelude in {
|
Prelude in {
|
||||||
|
|
||||||
flags
|
flags
|
||||||
@@ -19,8 +18,8 @@ flags
|
|||||||
ask_V2Q = dirV2 (regV "يَسءَل") ;
|
ask_V2Q = dirV2 (regV "يَسءَل") ;
|
||||||
-- ask_V2Q = dirV2 (v1 "سءل" a a) ;
|
-- ask_V2Q = dirV2 (v1 "سءل" a a) ;
|
||||||
baby_N = brkN "طفل" "فِعل" "أَفعَال" Masc Hum;
|
baby_N = brkN "طفل" "فِعل" "أَفعَال" Masc Hum;
|
||||||
-- bad_A = sndA "سوء" "فَيِّع" ;
|
-- bad_A = sndA "سوء" "فَيِّع" ;
|
||||||
bad_A = degrA "سَيِّئ" "سَيِّئَة" "سَيِّئِين" ;
|
bad_A = degrA "سَيِّئ" "سَيِّئَة" "سَيِّئِين" ;
|
||||||
bank_N = brkN "بنك" "فَعل" "فُعُول" Masc NoHum ;
|
bank_N = brkN "بنك" "فَعل" "فُعُول" Masc NoHum ;
|
||||||
beautiful_A = sndA "جمل" "فَعِيل" ;
|
beautiful_A = sndA "جمل" "فَعِيل" ;
|
||||||
become_VA = mkVA (v4 "صبح") ;
|
become_VA = mkVA (v4 "صبح") ;
|
||||||
@@ -42,11 +41,11 @@ flags
|
|||||||
-- break_V2 = dirV2 (v1 "كسر" a u) ;
|
-- break_V2 = dirV2 (v1 "كسر" a u) ;
|
||||||
broad_A = sndA "وسع" "فاعِل" ;
|
broad_A = sndA "وسع" "فاعِل" ;
|
||||||
brother_N2 = mkN2 (brkN "ءخو" "فَع" "فِعلة" Masc Hum) ; --FIXME dual
|
brother_N2 = mkN2 (brkN "ءخو" "فَع" "فِعلة" Masc Hum) ; --FIXME dual
|
||||||
brown_A = sndA "بني" "فُعِّل";
|
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 = brkN "هرّ" "فِعّ" "فِعَلَة" Fem NoHum ;
|
cat_N = brkN "هرّ" "فِعّ" "فِعَلَة" Fem NoHum ;
|
||||||
@@ -93,13 +92,13 @@ flags
|
|||||||
girl_N = brkN "بنت" "فِعل" "فَعَال" 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 = sndA "جود" "فَيِّع" ; -- Hasan, HisAn
|
good_A = sndA "جود" "فَيِّع" ; -- Hasan, HisAn
|
||||||
go_V = regV "يَذهَب" ;
|
go_V = regV "يَذهَب" ;
|
||||||
-- go_V = v1 "ذهب" a a ;
|
-- go_V = v1 "ذهب" a a ;
|
||||||
green_A = clrA "خضر" ;
|
green_A = clrA "خضر" ;
|
||||||
harbour_N = brkN "رفء" "مَفعَل" "مَفاعِل" Masc NoHum ; --mInA', marsaY
|
harbour_N = brkN "رفء" "مَفعَل" "مَفاعِل" Masc NoHum ; --mInA', marsaY
|
||||||
hate_V2 = dirV2 (regV "كَرِه") ;
|
hate_V2 = dirV2 (regV "كَرِه") ;
|
||||||
hat_N = sdfN "قبع" "فُعَّلة" Fem NoHum ;
|
hat_N = sdfN "قبع" "فُعَّلة" Fem NoHum ;
|
||||||
-- have_V2 = dirV2 (v1 "ملك" a i) ;
|
-- have_V2 = dirV2 (v1 "ملك" a i) ;
|
||||||
hear_V2 = dirV2 (regV "سَمِع") ;
|
hear_V2 = dirV2 (regV "سَمِع") ;
|
||||||
-- hear_V2 = dirV2 (v1 "سمع" i a) ;
|
-- hear_V2 = dirV2 (v1 "سمع" i a) ;
|
||||||
@@ -130,14 +129,14 @@ flags
|
|||||||
love_N = brkN "حبّ" "فُعّ" "فُعّ" Masc NoHum ; -- no plur
|
love_N = brkN "حبّ" "فُعّ" "فُعّ" Masc NoHum ; -- no plur
|
||||||
love_V2 = dirV2 (v1 "حبّ" a i) ;
|
love_V2 = dirV2 (v1 "حبّ" a i) ;
|
||||||
man_N = brkN "رجل" "فَعُل" "فِعَال" Masc Hum ;
|
man_N = brkN "رجل" "فَعُل" "فِعَال" Masc Hum ;
|
||||||
married_A2 = mkA2 (sndA "زوج" "مُتَفَعِّل") "مِن" ;
|
married_A2 = mkA2 (sndA "زوج" "مُتَفَعِّل") "مِن" ;
|
||||||
meat_N = brkN "لحم" "فَعلة" "فُعُول" Masc NoHum ;
|
meat_N = brkN "لحم" "فَعلة" "فُعُول" Masc NoHum ;
|
||||||
milk_N = brkN "حلب" "فَعِيل" "فَعِيل" Masc NoHum ; --no plur
|
milk_N = brkN "حلب" "فَعِيل" "فَعِيل" Masc NoHum ; --no plur
|
||||||
moon_N = brkN "قمر" "فَعَل" "أَفعَال" Masc NoHum ;
|
moon_N = brkN "قمر" "فَعَل" "أَفعَال" Masc NoHum ;
|
||||||
mother_N2 = mkN2 (sdfN "ءم" "فُعَّ" Fem Hum) ;
|
mother_N2 = mkN2 (sdfN "ءم" "فُعَّ" Fem Hum) ;
|
||||||
mountain_N = brkN "جبل" "فَعَل" "فِعَال" 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 = sndA "ضيق" "فَعِّل" ;
|
narrow_A = sndA "ضيق" "فَعِّل" ;
|
||||||
new_A = mkA "جدد" "فَعِيل" "فُعُل" ;
|
new_A = mkA "جدد" "فَعِيل" "فُعُل" ;
|
||||||
newspaper_N = brkN "صحف" "فَعِيلة" "فُعُل" Fem NoHum ;
|
newspaper_N = brkN "صحف" "فَعِيلة" "فُعُل" Fem NoHum ;
|
||||||
oil_N = brkN "زيت" "فَعل" "فُعُول" Masc NoHum ;
|
oil_N = brkN "زيت" "فَعل" "فُعُول" Masc NoHum ;
|
||||||
@@ -155,7 +154,7 @@ flags
|
|||||||
play_V2 = dirV2 (regV "لَعِب") ;
|
play_V2 = dirV2 (regV "لَعِب") ;
|
||||||
-- play_V2 = dirV2 (v1 "لعب" i a) ;
|
-- play_V2 = dirV2 (v1 "لعب" i a) ;
|
||||||
policeman_N = sdmN "شرط" "فِعلِي" Masc Hum ;
|
policeman_N = sdmN "شرط" "فِعلِي" Masc Hum ;
|
||||||
priest_N = brkN "قسّ" "فِعِّيل" "أَفِعّة" Masc Hum ;
|
priest_N = brkN "قسّ" "فِعِّيل" "أَفِعّة" Masc Hum ;
|
||||||
probable_AS = mkAS (sndA "مكن" "مُفعِل") ;
|
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 ;
|
||||||
@@ -169,7 +168,7 @@ flags
|
|||||||
river_N = brkN "نهر" "فَعل" "أَفعَال" Masc NoHum ;
|
river_N = brkN "نهر" "فَعل" "أَفعَال" Masc NoHum ;
|
||||||
rock_N = brkN "صخر" "فَعلة" "فُعُول" Fem NoHum ;
|
rock_N = brkN "صخر" "فَعلة" "فُعُول" Fem NoHum ;
|
||||||
roof_N = brkN "سطح" "فَعل" "أَفعُل" Masc 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 = regV "يَركُض" ;
|
||||||
-- run_V = v1 "ركض" a u ;
|
-- run_V = v1 "ركض" a u ;
|
||||||
say_VS = mkVS (v1 "قول" a u) ; --check
|
say_VS = mkVS (v1 "قول" a u) ; --check
|
||||||
@@ -187,11 +186,11 @@ flags
|
|||||||
shoe_N = brkN "حذو" "فِعَاء" "أَفعِية" Masc NoHum ;
|
shoe_N = brkN "حذو" "فِعَاء" "أَفعِية" Masc NoHum ;
|
||||||
shop_N = brkN "تجر" "مَفعَل" "مَفاعِل" Masc NoHum ;
|
shop_N = brkN "تجر" "مَفعَل" "مَفاعِل" Masc NoHum ;
|
||||||
short_A = sndA "قصر" "فَعِيل" ;
|
short_A = sndA "قصر" "فَعِيل" ;
|
||||||
silver_N = brkN "فضض" "فِعَّة" "فِعَل" Fem NoHum ;
|
silver_N = brkN "فضض" "فِعَّة" "فِعَل" Fem NoHum ;
|
||||||
sister_N = brkN "ءخو" "فُعت" "فَعَوَات" Fem Hum ; --FIXME
|
sister_N = brkN "ءخو" "فُعت" "فَعَوَات" Fem Hum ; --FIXME
|
||||||
sleep_V = v1 "نوم" i a ; --check
|
sleep_V = v1 "نوم" i a ; --check
|
||||||
small_A = sndA "صغر" "فَعِيل" ;
|
small_A = sndA "صغر" "فَعِيل" ;
|
||||||
snake_N = sdfN "حيّ" "فَعَّة" Fem NoHum ;
|
snake_N = sdfN "حيّ" "فَعَّة" Fem NoHum ;
|
||||||
sock_N = brkN "جرب" "فَوعَل" "فَواعِل" Masc NoHum ;
|
sock_N = brkN "جرب" "فَوعَل" "فَواعِل" Masc NoHum ;
|
||||||
speak_V2 = dirV2 (v5 "كلم") ;
|
speak_V2 = dirV2 (v5 "كلم") ;
|
||||||
star_N = brkN "نجم" "فَعل" "فُعُول" Masc NoHum ; --najmö
|
star_N = brkN "نجم" "فَعل" "فُعُول" Masc NoHum ; --najmö
|
||||||
@@ -205,7 +204,7 @@ flags
|
|||||||
switch8on_V2 = dirV2 (v4 "شعل") ;
|
switch8on_V2 = dirV2 (v4 "شعل") ;
|
||||||
table_N = sdfN "طول" "فاعِلة" Fem NoHum ;
|
table_N = sdfN "طول" "فاعِلة" Fem NoHum ;
|
||||||
talk_V3 = mkV3 (v5 "حدث") "لِ" "عَن" ;
|
talk_V3 = mkV3 (v5 "حدث") "لِ" "عَن" ;
|
||||||
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 = sndA "سمك" "فَعِيل" ;
|
thick_A = sndA "سمك" "فَعِيل" ;
|
||||||
@@ -261,7 +260,7 @@ flags
|
|||||||
heavy_A = sndA "ثقل" "فَعِيل" ;
|
heavy_A = sndA "ثقل" "فَعِيل" ;
|
||||||
near_A = sndA "قرب" "فَعِيل" ;
|
near_A = sndA "قرب" "فَعِيل" ;
|
||||||
rotten_A = sndA "فسد" "فاعِل" ;
|
rotten_A = sndA "فسد" "فاعِل" ;
|
||||||
round_A = sndA "دور" "مُفَعَّل" ;
|
round_A = sndA "دور" "مُفَعَّل" ;
|
||||||
sharp_A = sndA "حدّ" "فاعّ" ;
|
sharp_A = sndA "حدّ" "فاعّ" ;
|
||||||
smooth_A = sndA "نعم" "فاعِل" ;
|
smooth_A = sndA "نعم" "فاعِل" ;
|
||||||
straight_A = sndA "قوم" "مُستَفِيع" ;
|
straight_A = sndA "قوم" "مُستَفِيع" ;
|
||||||
@@ -277,7 +276,7 @@ flags
|
|||||||
bone_N = brkN "عظم" "فَعلة" "فِعَال" Fem NoHum;
|
bone_N = brkN "عظم" "فَعلة" "فِعَال" Fem NoHum;
|
||||||
breast_N = brkN "صدر" "فَعل" "فُعُول" Masc NoHum;
|
breast_N = brkN "صدر" "فَعل" "فُعُول" Masc NoHum;
|
||||||
cloud_N = brkN "غيم" "فَعلة" "فُعُول" Fem NoHum;
|
cloud_N = brkN "غيم" "فَعلة" "فُعُول" Fem NoHum;
|
||||||
day_N = brkN "يوم" "فَعل" "أَفَّاع" Masc NoHum;
|
day_N = brkN "يوم" "فَعل" "أَفَّاع" Masc NoHum;
|
||||||
dust_N = brkN "غبر" "فُعَال" "أَفعِلة" Masc NoHum;
|
dust_N = brkN "غبر" "فُعَال" "أَفعِلة" Masc NoHum;
|
||||||
ear_N = brkN "ءذن" "فُعل" "أَفعَال" Fem NoHum;
|
ear_N = brkN "ءذن" "فُعل" "أَفعَال" Fem NoHum;
|
||||||
earth_N = brkN "ترب" "فُعلة" "فُعَل" Fem NoHum;
|
earth_N = brkN "ترب" "فُعلة" "فُعَل" Fem NoHum;
|
||||||
|
|||||||
@@ -12,7 +12,8 @@ flags coding=utf8 ;
|
|||||||
-- Shadda: https://www.unicode.org/L2/L2017/17253-arabic-ordering.pdf
|
-- Shadda: https://www.unicode.org/L2/L2017/17253-arabic-ordering.pdf
|
||||||
fixShd : Str -> Str -> Str = \word,suffix ->
|
fixShd : Str -> Str -> Str = \word,suffix ->
|
||||||
case <word,suffix> of {
|
case <word,suffix> of {
|
||||||
<x + "ّ", v@#vow + y> => x + v + "ّ" + y ;
|
-- <x + "ّ", v@#vow + y> => x + v + "ّ" + y ;
|
||||||
|
<x + v@#vow, "ّ" + y> => x + "ّ" + v + y ;
|
||||||
_ => word + suffix
|
_ => word + suffix
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -39,23 +39,31 @@ resource ParadigmsAra = open
|
|||||||
|
|
||||||
Preposition : Type ;
|
Preposition : Type ;
|
||||||
|
|
||||||
|
Gender : Type ;
|
||||||
|
masc : Gender ;
|
||||||
|
fem : Gender ;
|
||||||
|
|
||||||
|
Species : Type ;
|
||||||
|
hum : Species ;
|
||||||
|
nohum : Species ;
|
||||||
|
|
||||||
|
Vowel : Type ;
|
||||||
|
va : Vowel ;
|
||||||
|
vi : Vowel ;
|
||||||
|
vu : Vowel ;
|
||||||
|
|
||||||
--2 Nouns
|
--2 Nouns
|
||||||
|
|
||||||
-- Overloaded operator for main cases
|
-- Overloaded operator for main cases
|
||||||
|
|
||||||
mkN = overload {
|
|
||||||
mkN : (sg : Str) -> N -- non-human regular nouns
|
mkN : overload {
|
||||||
= smartN ;
|
mkN : (sg : Str) -> N ; -- non-human regular nouns
|
||||||
mkN : Species -> N -> N
|
mkN : Species -> N -> N ;
|
||||||
= \p,n -> n ** {h = p} ;
|
mkN : (sg,pl : Str) -> Gender -> Species -> N ;
|
||||||
mkN : (sg,pl : Str) -> Gender -> Species -> N
|
mkN : NTable -> Gender -> Species -> N ; -- loan words, irregular
|
||||||
= \sg,pl -> mkFullN (reg sg pl) ;
|
mkN : (root,sgPatt,brokenPlPatt : Str) -> Gender -> Species -> N ; -- broken plural
|
||||||
mkN : NTable -> Gender -> Species -> N -- loan words, irregular
|
mkN : N -> (attr : Str) -> N ; -- Compound nouns
|
||||||
= mkFullN ;
|
|
||||||
mkN : (root,sgPatt,brokenPlPatt : Str) -> Gender -> Species -> N -- broken plural
|
|
||||||
= brkN ;
|
|
||||||
mkN : N -> (attr : Str) -> N -- Compound nouns
|
|
||||||
= \n,attr -> n ** { s = \\num,s,c => n.s ! num ! s ! c ++ attr } ; --- IL (TODO: all kinds of compounds)
|
|
||||||
--- mkN : (root,sgPatt : Str) -> Gender -> Species -> N -- sound feminine plural
|
--- mkN : (root,sgPatt : Str) -> Gender -> Species -> N -- sound feminine plural
|
||||||
--- = sdfN ;
|
--- = sdfN ;
|
||||||
} ;
|
} ;
|
||||||
@@ -156,13 +164,11 @@ resource ParadigmsAra = open
|
|||||||
|
|
||||||
-- Overloaded operations
|
-- Overloaded operations
|
||||||
|
|
||||||
mkV = overload {
|
mkV : overload {
|
||||||
mkV : (imperfect : Str) -> V
|
mkV : (imperfect : Str) -> V ;
|
||||||
= regV ;
|
mkV : (root : Str) -> (perf,impf : Vowel) -> V ; -- verb form I ; vowel = a|i|u
|
||||||
mkV : (root : Str) -> (perf,impf : Vowel) -> V -- verb form I ; vowel = a|i|u
|
mkV : (root : Str) -> VerbForm -> V ; -- FormI .. FormX (no VII, IX) ; default vowels a u for I
|
||||||
= v1 ;
|
mkV : V -> (particle : Str) -> V -- V with a non-inflecting particle/phrasal verb
|
||||||
mkV : (root : Str) -> VerbForm -> V -- FormI .. FormX (no VII, IX) ; default vowels a u for I
|
|
||||||
= formV ;
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- The verb in the imperfect tense gives the most information
|
-- The verb in the imperfect tense gives the most information
|
||||||
@@ -261,6 +267,48 @@ resource ParadigmsAra = open
|
|||||||
-- 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.
|
||||||
|
|
||||||
|
|
||||||
|
Preposition = Str ;
|
||||||
|
|
||||||
|
Gender = ResAra.Gender ;
|
||||||
|
masc = ResAra.Masc ;
|
||||||
|
fem = ResAra.Fem ;
|
||||||
|
|
||||||
|
Species = ResAra.Species ;
|
||||||
|
hum = ResAra.Hum ;
|
||||||
|
nohum = ResAra.NoHum ;
|
||||||
|
|
||||||
|
Vowel = ResAra.Vowel ;
|
||||||
|
va = ResAra.a ;
|
||||||
|
vu = ResAra.u ;
|
||||||
|
vi = ResAra.i ;
|
||||||
|
|
||||||
|
mkN = overload {
|
||||||
|
mkN : (sg : Str) -> N -- non-human regular nouns
|
||||||
|
= smartN ;
|
||||||
|
mkN : Species -> N -> N
|
||||||
|
= \p,n -> n ** {h = p} ;
|
||||||
|
mkN : (sg,pl : Str) -> Gender -> Species -> N
|
||||||
|
= \sg,pl -> mkFullN (reg sg pl) ;
|
||||||
|
mkN : NTable -> Gender -> Species -> N -- loan words, irregular
|
||||||
|
= mkFullN ;
|
||||||
|
mkN : (root,sgPatt,brokenPlPatt : Str) -> Gender -> Species -> N -- broken plural
|
||||||
|
= brkN ;
|
||||||
|
mkN : N -> (attr : Str) -> N -- Compound nouns
|
||||||
|
= \n,attr -> n ** { s = \\num,s,c => n.s ! num ! s ! c ++ attr } ; --- IL (TODO: all kinds of compounds)
|
||||||
|
} ;
|
||||||
|
|
||||||
|
mkV = overload {
|
||||||
|
mkV : (imperfect : Str) -> V
|
||||||
|
= regV ;
|
||||||
|
mkV : (root : Str) -> (perf,impf : Vowel) -> V -- verb form I ; vowel = a|i|u
|
||||||
|
= v1 ;
|
||||||
|
mkV : (root : Str) -> VerbForm -> V -- FormI .. FormX (no VII, IX) ; default vowels a u for I
|
||||||
|
= formV ;
|
||||||
|
mkV : V -> (particle : Str) -> V = \v,p ->
|
||||||
|
v ** { s = \\vf => v.s ! vf ++ p } ;
|
||||||
|
} ;
|
||||||
|
|
||||||
regV : Str -> V = \wo ->
|
regV : Str -> V = \wo ->
|
||||||
let rau : Str * Vowel * Vowel =
|
let rau : Str * Vowel * Vowel =
|
||||||
case wo of {
|
case wo of {
|
||||||
@@ -282,7 +330,7 @@ resource ParadigmsAra = open
|
|||||||
lock_V = <>
|
lock_V = <>
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
va : Vowel = ResAra.a ;
|
|
||||||
|
|
||||||
v1' : Str -> Vowel -> Vowel -> Verb =
|
v1' : Str -> Vowel -> Vowel -> Verb =
|
||||||
\rootStr,vPerf,vImpf ->
|
\rootStr,vPerf,vImpf ->
|
||||||
@@ -378,8 +426,6 @@ resource ParadigmsAra = open
|
|||||||
_ => v10sound }
|
_ => v10sound }
|
||||||
} in lin V (v10fun rbT) ;
|
} in lin V (v10fun rbT) ;
|
||||||
|
|
||||||
Preposition = Str ;
|
|
||||||
|
|
||||||
mkFullN nsc gen spec =
|
mkFullN nsc gen spec =
|
||||||
{ s = nsc; --NTable
|
{ s = nsc; --NTable
|
||||||
g = gen;
|
g = gen;
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ flags coding=utf8 ;
|
|||||||
eiftacal = { h = "إِ"; m1 = "ْتَ" ; m2 = "َ" ; t = "" } ;
|
eiftacal = { h = "إِ"; m1 = "ْتَ" ; m2 = "َ" ; t = "" } ;
|
||||||
eufcil = { h = "أُ"; m1 = "ْ" ; m2 = "ِ" ; t = "" } ;
|
eufcil = { h = "أُ"; m1 = "ْ" ; m2 = "ِ" ; t = "" } ;
|
||||||
euftucil = { h = "أُ"; m1 = "ْتُ" ; m2 = "ِ" ; t = "" } ;
|
euftucil = { h = "أُ"; m1 = "ْتُ" ; m2 = "ِ" ; t = "" } ;
|
||||||
euttucil = euftucil ** { h = "اُتُّ" ; m1 = "ِ" } ; ---- IL assimilated VIII
|
euttucil = euftucil ** { h = "اُتُّ" ; m1 = "ِ" } ; ---- IL assimilated VIII
|
||||||
afcul = { h = "َ" ; m1 = "ْ" ; m2 = "ُ" ; t = "" } ;
|
afcul = { h = "َ" ; m1 = "ْ" ; m2 = "ُ" ; t = "" } ;
|
||||||
faccalo = { h = "" ; m1 = "َ" ; m2 = "َّ" ; t = "ْ" } ;
|
faccalo = { h = "" ; m1 = "َ" ; m2 = "َّ" ; t = "ْ" } ;
|
||||||
facal = { h = "" ; m1 = "َ" ; m2 = "َ" ; t = "" } ;
|
facal = { h = "" ; m1 = "َ" ; m2 = "َ" ; t = "" } ;
|
||||||
@@ -78,8 +78,8 @@ flags coding=utf8 ;
|
|||||||
ficlp = { h = "" ; m1 = "ِ" ; m2 = "ْ" ; t = "َة" } ;
|
ficlp = { h = "" ; m1 = "ِ" ; m2 = "ْ" ; t = "َة" } ;
|
||||||
ftacal = { h = "" ; m1 = "ْتَ" ; m2 = "َ" ; t = "" } ;
|
ftacal = { h = "" ; m1 = "ْتَ" ; m2 = "َ" ; t = "" } ;
|
||||||
ftacil = { h = "" ; m1 = "ْتَ" ; m2 = "ِ" ; t = "" } ;
|
ftacil = { h = "" ; m1 = "ْتَ" ; m2 = "ِ" ; t = "" } ;
|
||||||
ttacal = ftacal ** { m1 = "" ; h = "تَّ" } ; ---- IL assimilated VIII
|
ttacal = ftacal ** { m1 = "" ; h = "تَّ" } ; ---- IL assimilated VIII
|
||||||
ttacil = ftacil ** { m1 = "" ; h = "تَّ" } ; ---- IL assimilated VIII
|
ttacil = ftacil ** { m1 = "" ; h = "تَّ" } ; ---- IL assimilated VIII
|
||||||
fuccAl = { h = "" ; m1 = "ُ" ; m2 = "َّا" ; t = "" } ;
|
fuccAl = { h = "" ; m1 = "ُ" ; m2 = "َّا" ; t = "" } ;
|
||||||
fuccil = { h = "" ; m1 = "ُ" ; m2 = "ِّ" ; t = "" } ;
|
fuccil = { h = "" ; m1 = "ُ" ; m2 = "ِّ" ; t = "" } ;
|
||||||
fuccilo = { h = "" ; m1 = "ُ" ; m2 = "ِّ" ; t = "ْ" } ;
|
fuccilo = { h = "" ; m1 = "ُ" ; m2 = "ِّ" ; t = "ْ" } ;
|
||||||
|
|||||||
@@ -904,8 +904,7 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
|||||||
case st of {
|
case st of {
|
||||||
Def =>
|
Def =>
|
||||||
case stem of {
|
case stem of {
|
||||||
s@#sun + v@#vow + x => al + s + v + "ّ" + x ; -- vowel before shadda
|
s@#sun + x => fixShd (al + s) ("ّ" + x) ;
|
||||||
s@#sun + x => al + s + "ّ" + x;
|
|
||||||
x => al + x } ;
|
x => al + x } ;
|
||||||
_ => stem
|
_ => stem
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -99,12 +99,12 @@ concrete StructuralAra of Structural = CatAra **
|
|||||||
which_IQuant = {
|
which_IQuant = {
|
||||||
s = \\s,c => case <c,s> of {
|
s = \\s,c => case <c,s> of {
|
||||||
<Bare,_> => "أيّ" ;
|
<Bare,_> => "أيّ" ;
|
||||||
<Nom,Indef> => "أيٌّ" ;
|
<Nom,Indef> => "أيٌّ" ;
|
||||||
<Nom,_> => "أيُّ" ;
|
<Nom,_> => "أيُّ" ;
|
||||||
<Acc,Indef> => "أيّاً" ;
|
<Acc,Indef> => "أيّاً" ;
|
||||||
<Acc,_> => "أيَّ" ;
|
<Acc,_> => "أيَّ" ;
|
||||||
<Gen,Indef> => "أيٍّ" ;
|
<Gen,Indef> => "أيٍّ" ;
|
||||||
<Gen,_> => "أيِّ"
|
<Gen,_> => "أيِّ"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
whoSg_IP = mkIP "مَنْ" Sg ;
|
whoSg_IP = mkIP "مَنْ" Sg ;
|
||||||
|
|||||||
Reference in New Issue
Block a user