diff --git a/src/arabic/ParadigmsAra.gf b/src/arabic/ParadigmsAra.gf index a7b31606e..2905bb7f7 100644 --- a/src/arabic/ParadigmsAra.gf +++ b/src/arabic/ParadigmsAra.gf @@ -374,15 +374,15 @@ resource ParadigmsAra = open v1' : Str -> Vowel -> Vowel -> Verb = \rootStr,vPerf,vImpf -> - let { root = mkRoot3 rootStr } in - case of { - <"ّ", _> => v1geminate rootStr vPerf vImpf ; - <"و"|"ي",_> => case vPerf of { - i => v1defective_i root vImpf ; - _ => v1defective_a root vImpf } ; - <_,"و"|"ي"> => v1hollow root vImpf ; - _ => v1sound root vPerf vImpf - }; + let root = mkRoot3 rootStr + in case rootStr of { + _ + "ّ" => v1geminate rootStr vPerf vImpf ; + ? + #hamza + #weak => v1doubleweak root ; + ? + ? + #weak => case vPerf of { + i => v1defective_i root vImpf ; + _ => v1defective_a root vImpf } ; + ? + #weak + ? => v1hollow root vImpf ; + _ => v1sound root vPerf vImpf } ; v2 = \rootStr -> diff --git a/src/arabic/ResAra.gf b/src/arabic/ResAra.gf index 7e041c634..9fdb5c91c 100644 --- a/src/arabic/ResAra.gf +++ b/src/arabic/ResAra.gf @@ -553,6 +553,12 @@ v1defective_i : Root3 -> Vowel -> Verb = \bqy,vowImpf -> -- IL (conjugation 1d4) x => vforms_a ! x } ; in verbDef vforms_i vowImpf ; +v1doubleweak : Root3 -> Verb = \r'y -> + let ry = r'y ** {c = ""} ; + vforms : DefForms = \\x => rmSukun (v1DefForms_perfA ry a ! x) ; -- only remove the first sukun + in verbDoubleDef vforms i ; -- sukun in suffixes is removed in verbDoubleDef + + patDef1 : Vowel => Pattern = table { u => fcu ; @@ -642,7 +648,6 @@ v4doubleweak : Root3 -> Verb = \r'y -> vforms : DefForms = \\x => rmSukun (v4DefForms ry ! x) ; -- only remove the first sukun in verbDoubleDef vforms i ; -- sukun in suffixes is removed in verbDoubleDef - v5sound : Root3 -> Verb = \nfs -> let {