Merge pull request #41 from inariksit/master

Arabic orthography
This commit is contained in:
Inari Listenmaa
2018-10-12 16:33:43 +02:00
committed by GitHub
5 changed files with 19 additions and 13 deletions

View File

@@ -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 "علم") ;

View File

@@ -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 {

View File

@@ -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 = <>
};

View File

@@ -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 {

View File

@@ -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
} ;