forked from GitHub/gf-rgl
@@ -73,7 +73,7 @@ flags
|
|||||||
drink_V2 = dirV2 (regV "شَرِب") ;
|
drink_V2 = dirV2 (regV "شَرِب") ;
|
||||||
-- drink_V2 = dirV2 (v1 "شرب" i a) ;
|
-- drink_V2 = dirV2 (v1 "شرب" i a) ;
|
||||||
easy_A2V = mkA2 (sndA "سهل" "فَعل") "لِ" ;
|
easy_A2V = mkA2 (sndA "سهل" "فَعل") "لِ" ;
|
||||||
eat_V2 = dirV2 (mkV "ءكل" FormI) ;
|
eat_V2 = dirV2 (mkV "ءكل" FormI) ;
|
||||||
empty_A = sndA "فرغ" "فاعِل" ;
|
empty_A = sndA "فرغ" "فاعِل" ;
|
||||||
enemy_N = brkN "عدو" "فَعُلّ" "أَفعاء" Masc Hum ;
|
enemy_N = brkN "عدو" "فَعُلّ" "أَفعاء" Masc Hum ;
|
||||||
factory_N = brkN "صنع" "مَفعَل" "مَفاعِل" Masc NoHum ;
|
factory_N = brkN "صنع" "مَفعَل" "مَفاعِل" Masc NoHum ;
|
||||||
@@ -111,7 +111,7 @@ flags
|
|||||||
iron_N = brkN "حدّ" "فَعِيل" "فَعائِل" Masc NoHum ;
|
iron_N = brkN "حدّ" "فَعِيل" "فَعائِل" Masc NoHum ;
|
||||||
king_N = brkN "ملك" "فَعِل" "فُعُول" Masc Hum ;
|
king_N = brkN "ملك" "فَعِل" "فُعُول" Masc Hum ;
|
||||||
know_V2 = dirV2 (regV "عَرِف") ;
|
know_V2 = dirV2 (regV "عَرِف") ;
|
||||||
know_VS = mkVS (regV "عَرِف") ; -- or with ع ل م?
|
know_VS = mkVS (regV "عَرِف") ; -- or with ع ل م?
|
||||||
lake_N = sdfN "بحر" "فُعَيلة" Fem NoHum ;
|
lake_N = sdfN "بحر" "فُعَيلة" Fem NoHum ;
|
||||||
lamp_N = brkN "صبح" "مِفعال" "مَفاعِيل" Masc NoHum ; --qanDIl, fAnUs
|
lamp_N = brkN "صبح" "مِفعال" "مَفاعِيل" Masc NoHum ; --qanDIl, fAnUs
|
||||||
learn_V2 = dirV2 (v5 "علم") ;
|
learn_V2 = dirV2 (v5 "علم") ;
|
||||||
|
|||||||
@@ -11,8 +11,15 @@ flags coding=utf8 ;
|
|||||||
-- "Sun letters": assimilate with def. article
|
-- "Sun letters": assimilate with def. article
|
||||||
sun : pattern Str = #("ت"|"ث"|"د"|"ذ"|"ر"|"ز"|"س"|"ش"|"ص"|"ض"|"ط"|"ظ"|"ل"|"ن") ;
|
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
|
||||||
|
} ;
|
||||||
|
|
||||||
-- Hamza
|
-- Hamza
|
||||||
hamza : pattern Str = #("ء"|"؟") ;
|
hamza : pattern Str = #("ء"|"؟") ;
|
||||||
|
|
||||||
rectifyHmz: Str -> Str = \word ->
|
rectifyHmz: Str -> Str = \word ->
|
||||||
case word of {
|
case word of {
|
||||||
|
|||||||
@@ -438,7 +438,7 @@ resource ParadigmsAra = open
|
|||||||
|
|
||||||
-- e.g. al-jamii3, 2a7ad
|
-- e.g. al-jamii3, 2a7ad
|
||||||
regNP : Str -> Number -> NP = \word,n ->
|
regNP : Str -> Number -> NP = \word,n ->
|
||||||
{ s = \\c => word ++ vowel ! c ; ---- gives strange chars
|
{ s = \\c => fixShd word (dec1sg ! Def ! c) ;
|
||||||
a = {pgn = Per3 Masc n; isPron = False };
|
a = {pgn = Per3 Masc n; isPron = False };
|
||||||
lock_NP = <>
|
lock_NP = <>
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -842,13 +842,12 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
|||||||
|
|
||||||
-- takes a singular or broken plural word and tests the ending to
|
-- takes a singular or broken plural word and tests the ending to
|
||||||
-- determine the declension and gives the corresponding inf table
|
-- determine the declension and gives the corresponding inf table
|
||||||
sing : Str -> State => Case => Str =
|
sing : Str -> State => Case => Str = \word ->
|
||||||
\word ->
|
\\s,c => defArt s (case word of {
|
||||||
case word of {
|
lemma + "ِي" => fixShd lemma (dec2sg ! s ! c) ;
|
||||||
lemma + "ِي" => \\s,c => defArt s lemma + dec2sg ! s ! c ;
|
_ + ("ا"|"ى") => fixShd word (dec3sg ! s ! c) ;
|
||||||
_ + ("ا"|"ى") => \\s,c => defArt s word + dec3sg ! s ! c ;
|
_ => fixShd word (dec1sg ! s ! c)
|
||||||
_ => \\s,c => defArt s word + dec1sg ! s ! c
|
}) ;
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
-- takes a singular word and tests the ending to
|
-- takes a singular word and tests the ending to
|
||||||
@@ -952,7 +951,7 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
|||||||
Const =>
|
Const =>
|
||||||
table {
|
table {
|
||||||
Nom => "َا";
|
Nom => "َا";
|
||||||
_ => "َيْ"
|
_ => "َيْ"
|
||||||
};
|
};
|
||||||
_ =>
|
_ =>
|
||||||
table {
|
table {
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra in {
|
|||||||
ComplVV vv vp = let vvVP = predV vv in --- IL
|
ComplVV vv vp = let vvVP = predV vv in --- IL
|
||||||
vp ** {
|
vp ** {
|
||||||
s = \\pgn,vpf => vvVP.s ! pgn ! vpf
|
s = \\pgn,vpf => vvVP.s ! pgn ! vpf
|
||||||
++ vv.c2 -- أَنْ
|
++ vv.c2 -- أَنْ
|
||||||
++ vp.s ! pgn ! VPImpf Cnj
|
++ vp.s ! pgn ! VPImpf Cnj
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user