From 0bce38800cf14ab8a70bcb618695e4738429a8c8 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Fri, 12 Oct 2018 15:40:48 +0200 Subject: [PATCH 1/2] (Ara) Remove some LTR (U+200E) chars that had been copypasted in error --- src/arabic/LexiconAra.gf | 4 ++-- src/arabic/OrthoAra.gf | 2 +- src/arabic/ResAra.gf | 2 +- src/arabic/VerbAra.gf | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/arabic/LexiconAra.gf b/src/arabic/LexiconAra.gf index b6b12a45d..3ff631384 100644 --- a/src/arabic/LexiconAra.gf +++ b/src/arabic/LexiconAra.gf @@ -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 "علم") ; diff --git a/src/arabic/OrthoAra.gf b/src/arabic/OrthoAra.gf index 5c5602d9d..a15dc7cfd 100644 --- a/src/arabic/OrthoAra.gf +++ b/src/arabic/OrthoAra.gf @@ -12,7 +12,7 @@ flags coding=utf8 ; sun : pattern Str = #("ت"|"ث"|"د"|"ذ"|"ر"|"ز"|"س"|"ش"|"ص"|"ض"|"ط"|"ظ"|"ل"|"ن") ; -- Hamza - hamza : pattern Str = #("ء‎"|"؟") ; + hamza : pattern Str = #("ء"|"؟") ; rectifyHmz: Str -> Str = \word -> case word of { diff --git a/src/arabic/ResAra.gf b/src/arabic/ResAra.gf index 15e4d6668..7d07fe75d 100644 --- a/src/arabic/ResAra.gf +++ b/src/arabic/ResAra.gf @@ -952,7 +952,7 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf -> Const => table { Nom => "َا"; - _ => "َيْ‎" + _ => "َيْ" }; _ => table { diff --git a/src/arabic/VerbAra.gf b/src/arabic/VerbAra.gf index 9602b19b1..ea33158c3 100644 --- a/src/arabic/VerbAra.gf +++ b/src/arabic/VerbAra.gf @@ -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 } ; From 145fc773cb587655c7951061be01779019bed12b Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Fri, 12 Oct 2018 15:42:33 +0200 Subject: [PATCH 2/2] =?UTF-8?q?(Ara)=20Normalise=20the=20order=20of=20comb?= =?UTF-8?q?ining=20characters=20=D9=91=20+=20vowel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/arabic/OrthoAra.gf | 7 +++++++ src/arabic/ParadigmsAra.gf | 2 +- src/arabic/ResAra.gf | 13 ++++++------- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/arabic/OrthoAra.gf b/src/arabic/OrthoAra.gf index a15dc7cfd..3a24690cd 100644 --- a/src/arabic/OrthoAra.gf +++ b/src/arabic/OrthoAra.gf @@ -11,6 +11,13 @@ 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 = #("ء"|"؟") ; diff --git a/src/arabic/ParadigmsAra.gf b/src/arabic/ParadigmsAra.gf index 3aaa804ff..089421cc3 100644 --- a/src/arabic/ParadigmsAra.gf +++ b/src/arabic/ParadigmsAra.gf @@ -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 = <> }; diff --git a/src/arabic/ResAra.gf b/src/arabic/ResAra.gf index 7d07fe75d..c3cc2aa9f 100644 --- a/src/arabic/ResAra.gf +++ b/src/arabic/ResAra.gf @@ -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