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