RULE PRECEDENCE


TABLE: substitution

PASS: 1

0 - RULE 1.0, Scheherazade.gdl(119):  _  cAlefPlusMark  >  absAlef:2  cAlefMark  ;


1 - RULE 1.1, Scheherazade.gdl(121):  *GC1*  >  *GC0*  ;


PASS: 2

0 - RULE 2.0, Scheherazade.gdl(136):  _  cMark234  cMark1  >  @5:5  @2  _   /  _  _  ^  cMark234  cMark234  _  ;


1 - RULE 2.3, Scheherazade.gdl(137):  _  cMark34  cMark2  >  @5:5  @2  _   /  _  _  ^  cMark34  cMark34  _  ;


2 - RULE 2.6, Scheherazade.gdl(138):  _  cMark4  cMark3  >  @5:5  @2  _   /  _  _  ^  cMark4  cMark4  _  ;


3 - RULE 2.1, Scheherazade.gdl(136):  _  cMark234  cMark1  >  @4:4  @2  _   /  _  _  ^  cMark234  _  ;


4 - RULE 2.4, Scheherazade.gdl(137):  _  cMark34  cMark2  >  @4:4  @2  _   /  _  _  ^  cMark34  _  ;


5 - RULE 2.7, Scheherazade.gdl(138):  _  cMark4  cMark3  >  @4:4  @2  _   /  _  _  ^  cMark4  _  ;


6 - RULE 2.2, Scheherazade.gdl(136):  _  cMark234  cMark1  >  @3:3  @2  _   /  _  _  ^  _  ;


7 - RULE 2.5, Scheherazade.gdl(137):  _  cMark34  cMark2  >  @3:3  @2  _   /  _  _  ^  _  ;


8 - RULE 2.8, Scheherazade.gdl(138):  _  cMark4  cMark3  >  @3:3  @2  _   /  _  _  ^  _  ;


PASS: 3

0 - RULE 3.0, Scheherazade.gdl(150):  if (shaddaKasra == 0) if (selectDiac) absShadda  cShaddaKasraMarks  >  _  cShaddaKasraLigatures:(1 2) { comp.shadda.ref = @1; comp.kasra.ref = @2;  }  ; endif;  endif; 


1 - RULE 3.1, Scheherazade.gdl(153):  if (shaddaKasra == 0) if (!(selectDiac)) absShadda  cShaddaKasraMarks  >  _  cShaddaKasraLigatures:(1 2)  ; endif;  endif; 


PASS: 4

0 - RULE 4.0, Scheherazade.gdl(176):  cLamIso  cAlefIso  >  cLamIniBeforeAlef { user1 = 0;  }  cAlefFinAfterLamIni   /  _  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  ^  _  ;


1 - RULE 4.5, Scheherazade.gdl(177):  cLamFin  cAlefIso  >  cLamMedBeforeAlef { user1 = 0;  }  cAlefFinAfterLamMed   /  _  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  ^  _  ;


2 - RULE 4.10, Scheherazade.gdl(181):  *GC4*  *GC5*  >  *GC2*  *GC3*   /  _  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  ^  _  ;


3 - RULE 4.1, Scheherazade.gdl(176):  cLamIso  cAlefIso  >  cLamIniBeforeAlef { user1 = 0;  }  cAlefFinAfterLamIni   /  _  cAnyMarks  cAnyMarks  cAnyMarks  ^  _  ;


4 - RULE 4.6, Scheherazade.gdl(177):  cLamFin  cAlefIso  >  cLamMedBeforeAlef { user1 = 0;  }  cAlefFinAfterLamMed   /  _  cAnyMarks  cAnyMarks  cAnyMarks  ^  _  ;


5 - RULE 4.11, Scheherazade.gdl(181):  *GC4*  *GC5*  >  *GC2*  *GC3*   /  _  cAnyMarks  cAnyMarks  cAnyMarks  ^  _  ;


6 - RULE 4.15, Scheherazade.gdl(188):  cSignTakes4  cDigitsAny  cDigitsAny  cDigitsAny  cDigitsAny  >  cSign4  cDigitsAnyMedium  cDigitsAnyMedium  cDigitsAnyMedium  cDigitsAnyMedium  ;


7 - RULE 4.2, Scheherazade.gdl(176):  cLamIso  cAlefIso  >  cLamIniBeforeAlef { user1 = 0;  }  cAlefFinAfterLamIni   /  _  cAnyMarks  cAnyMarks  ^  _  ;


8 - RULE 4.7, Scheherazade.gdl(177):  cLamFin  cAlefIso  >  cLamMedBeforeAlef { user1 = 0;  }  cAlefFinAfterLamMed   /  _  cAnyMarks  cAnyMarks  ^  _  ;


9 - RULE 4.12, Scheherazade.gdl(181):  *GC4*  *GC5*  >  *GC2*  *GC3*   /  _  cAnyMarks  cAnyMarks  ^  _  ;


10 - RULE 4.16, Scheherazade.gdl(191):  cSignTakes3Medium  cDigitsAny  cDigitsAny  cDigitsAny  >  cSign3Medium  cDigitsAnyMedium  cDigitsAnyMedium  cDigitsAnyMedium  ;


11 - RULE 4.17, Scheherazade.gdl(194):  cSignTakes3Small  cDigitsAny  cDigitsAny  cDigitsAny  >  cSign3Small  cDigitsAnySmall  cDigitsAnySmall  cDigitsAnySmall  ;


12 - RULE 4.3, Scheherazade.gdl(176):  cLamIso  cAlefIso  >  cLamIniBeforeAlef { user1 = 0;  }  cAlefFinAfterLamIni   /  _  cAnyMarks  ^  _  ;


13 - RULE 4.8, Scheherazade.gdl(177):  cLamFin  cAlefIso  >  cLamMedBeforeAlef { user1 = 0;  }  cAlefFinAfterLamMed   /  _  cAnyMarks  ^  _  ;


14 - RULE 4.13, Scheherazade.gdl(181):  *GC4*  *GC5*  >  *GC2*  *GC3*   /  _  cAnyMarks  ^  _  ;


15 - RULE 4.18, Scheherazade.gdl(197):  cSignTakes2  cDigitsAny  cDigitsAny  >  cSign2  cDigitsAnyMedium  cDigitsAnyMedium  ;


16 - RULE 4.4, Scheherazade.gdl(176):  cLamIso  cAlefIso  >  cLamIniBeforeAlef { user1 = 0;  }  cAlefFinAfterLamIni   /  _  ^  _  ;


17 - RULE 4.9, Scheherazade.gdl(177):  cLamFin  cAlefIso  >  cLamMedBeforeAlef { user1 = 0;  }  cAlefFinAfterLamMed   /  _  ^  _  ;


18 - RULE 4.14, Scheherazade.gdl(181):  *GC4*  *GC5*  >  *GC2*  *GC3*   /  _  ^  _  ;


19 - RULE 4.19, Scheherazade.gdl(200):  cSignTakes1  cDigitsAny  >  cSign1  cDigitsAnyMedium  ;


PASS: 5

0 - RULE 5.0, Scheherazade.gdl(207):  absSuperscriptAlef  >  absSuperscriptAlef_large   /  cTakesLargeDaggerAlef  _  ;


1 - RULE 5.1, Scheherazade.gdl(210):  if (selectDiac) cLowHamzaBase  absHamzaAbove  >  cLowHamzaComposed:(2 3) { comp.base.ref = @2; comp.hamza.ref = @3;  }  _   /  ANY  _  _  ; endif; 


2 - RULE 5.2, Scheherazade.gdl(213):  if (!(selectDiac)) cLowHamzaBase  absHamzaAbove  >  cLowHamzaComposed:(2 3)  _   /  ANY  _  _  ; endif; 


3 - RULE 5.3, Scheherazade.gdl(219):  if (meemAlt == 1) cno_Meem  >  cMeemSindhi   /  ANY  _  ; endif; 


4 - RULE 5.4, Scheherazade.gdl(223):  if (hehAlt == 1) cno_Heh  >  cHehKurdish   /  ANY  _  ; endif; 


5 - RULE 5.5, Scheherazade.gdl(226):  if (hehAlt == 2) cno_Heh  >  cHehSindhi   /  ANY  _  ; endif; 


6 - RULE 5.6, Scheherazade.gdl(229):  if (hehAlt == 3) cno_Heh  >  cHehUrdu   /  ANY  _  ; endif; 


7 - RULE 5.7, Scheherazade.gdl(233):  if (easternDigits == 1) cEasternDigit  >  cEasternDigitSindhi   /  ANY  _  ; endif; 


8 - RULE 5.8, Scheherazade.gdl(236):  if (easternDigits == 2) cEasternDigit  >  cEasternDigitUrdu   /  ANY  _  ; endif; 


9 - RULE 5.9, Scheherazade.gdl(240):  if (sukunAlt == 1) cno_Sukun  >  cSukunDownOpen   /  ANY  _  ; endif; 


10 - RULE 5.10, Scheherazade.gdl(243):  if (sukunAlt == 2) cno_Sukun  >  cSukunLeftOpen   /  ANY  _  ; endif; 


11 - RULE 5.11, Scheherazade.gdl(247):  if (headOfKhahAlt == 1) cno_OpenLeft  >  cOpenLeft   /  ANY  _  ; endif; 


12 - RULE 5.12, Scheherazade.gdl(251):  if (commaAlt) cno_Downward  >  cDownward   /  ANY  _  ; endif; 


13 - RULE 5.13, Scheherazade.gdl(255):  if (dammatanAlt) cno_SixNine  >  cSixNine   /  ANY  _  ; endif; 


14 - RULE 5.14, Scheherazade.gdl(259):  if (endOfAyah == 1) cEndOfAyah  >  cEndOfAyahCircle   /  ANY  _  ; endif; 


15 - RULE 5.15, Scheherazade.gdl(262):  if (endOfAyah == 2) cEndOfAyah  >  cEndOfAyahSquare   /  ANY  _  ; endif; 


16 - RULE 5.16, Scheherazade.gdl(268):  if (!(invis)) cInvisible  >  zeroWidthSpace { dir = @2.dir;  }   /  ANY  _  ; endif; 


PASS: 6

0 - RULE 6.0, Scheherazade.gdl(379):  cKafLikeIniMed  _  >  @1  absAutoKashida:7   /  _  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  _  absRnoonMed  ;


1 - RULE 6.5, Scheherazade.gdl(380):  absFarsiYehIni  _  >  @1  absAutoKashida:7   /  _  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  _  *GC12*  ;


2 - RULE 6.10, Scheherazade.gdl(381):  *GC13*  _  >  @1  absAutoKashida:7   /  _  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  _  absRrehFin  ;


3 - RULE 6.1, Scheherazade.gdl(379):  cKafLikeIniMed  _  >  @1  absAutoKashida:6   /  _  cAnyMarks  cAnyMarks  cAnyMarks  _  absRnoonMed  ;


4 - RULE 6.6, Scheherazade.gdl(380):  absFarsiYehIni  _  >  @1  absAutoKashida:6   /  _  cAnyMarks  cAnyMarks  cAnyMarks  _  *GC12*  ;


5 - RULE 6.11, Scheherazade.gdl(381):  *GC13*  _  >  @1  absAutoKashida:6   /  _  cAnyMarks  cAnyMarks  cAnyMarks  _  absRrehFin  ;


6 - RULE 6.2, Scheherazade.gdl(379):  cKafLikeIniMed  _  >  @1  absAutoKashida:5   /  _  cAnyMarks  cAnyMarks  _  absRnoonMed  ;


7 - RULE 6.7, Scheherazade.gdl(380):  absFarsiYehIni  _  >  @1  absAutoKashida:5   /  _  cAnyMarks  cAnyMarks  _  *GC12*  ;


8 - RULE 6.12, Scheherazade.gdl(381):  *GC13*  _  >  @1  absAutoKashida:5   /  _  cAnyMarks  cAnyMarks  _  absRrehFin  ;


9 - RULE 6.3, Scheherazade.gdl(379):  cKafLikeIniMed  _  >  @1  absAutoKashida:4   /  _  cAnyMarks  _  absRnoonMed  ;


10 - RULE 6.8, Scheherazade.gdl(380):  absFarsiYehIni  _  >  @1  absAutoKashida:4   /  _  cAnyMarks  _  *GC12*  ;


11 - RULE 6.13, Scheherazade.gdl(381):  *GC13*  _  >  @1  absAutoKashida:4   /  _  cAnyMarks  _  absRrehFin  ;


12 - RULE 6.4, Scheherazade.gdl(379):  cKafLikeIniMed  _  >  @1  absAutoKashida:3   /  _  _  absRnoonMed  ;


13 - RULE 6.9, Scheherazade.gdl(380):  absFarsiYehIni  _  >  @1  absAutoKashida:3   /  _  _  *GC12*  ;


14 - RULE 6.14, Scheherazade.gdl(381):  *GC13*  _  >  @1  absAutoKashida:3   /  _  _  absRrehFin  ;


PASS 7: bidi

TABLE: positioning

PASS: 8

0 - RULE 8.0, Scheherazade.gdl(284):  cHasExit { user1 = 1;  }  cHasEntry {  attach {to = @1; at = exit; with = entry; } insert = 1;  }   /  ^  _ { user1 == 0 }  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  _  ;


1 - RULE 8.1, Scheherazade.gdl(284):  cHasExit { user1 = 1;  }  cHasEntry {  attach {to = @1; at = exit; with = entry; } insert = 1;  }   /  ^  _ { user1 == 0 }  cAnyMarks  cAnyMarks  cAnyMarks  _  ;


2 - RULE 8.6, Scheherazade.gdl(294):  absShadda  *GC6* {  attach {to = @1; at.x = diaA.x; at.y = diaA.y - 80; with = diaA_; } insert = selectDiac;  }   /  _  ^  cAnyMarksBelow  cAnyMarksBelow  cAnyMarksBelow  _  ;


3 - RULE 8.10, Scheherazade.gdl(299):  absHamzaAbove  *GC7* {  attach {to = @1; at.x = diaA.x + 40; at.y = diaA.y - 80; with = diaA_; } insert = selectDiac;  }   /  _  ^  cAnyMarksBelow  cAnyMarksBelow  cAnyMarksBelow  _  ;


4 - RULE 8.14, Scheherazade.gdl(306):  *GC8*  *GC9* {  attach {to = @1; at = diaA; with = diaA_; } insert = selectDiac;  }   /  _  ^  cAnyMarksBelow  cAnyMarksBelow  cAnyMarksBelow  _  ;


5 - RULE 8.18, Scheherazade.gdl(313):  cSign4  cSignDigit {  attach {to = @3; at = digit; with = digit_; } insert = 1;  }  cSignDigit {  attach {to = @4; at = digit; with = digit_; } insert = 1;  }  cSignDigit {  attach {to = @5; at = digit; with = digit_; } insert = 1;  }  cSignDigit {  attach {to = @1; at = digit; with = digit_; } insert = 1;  }  ;


6 - RULE 8.2, Scheherazade.gdl(284):  cHasExit { user1 = 1;  }  cHasEntry {  attach {to = @1; at = exit; with = entry; } insert = 1;  }   /  ^  _ { user1 == 0 }  cAnyMarks  cAnyMarks  _  ;


7 - RULE 8.7, Scheherazade.gdl(294):  absShadda  *GC6* {  attach {to = @1; at.x = diaA.x; at.y = diaA.y - 80; with = diaA_; } insert = selectDiac;  }   /  _  ^  cAnyMarksBelow  cAnyMarksBelow  _  ;


8 - RULE 8.11, Scheherazade.gdl(299):  absHamzaAbove  *GC7* {  attach {to = @1; at.x = diaA.x + 40; at.y = diaA.y - 80; with = diaA_; } insert = selectDiac;  }   /  _  ^  cAnyMarksBelow  cAnyMarksBelow  _  ;


9 - RULE 8.15, Scheherazade.gdl(306):  *GC8*  *GC9* {  attach {to = @1; at = diaA; with = diaA_; } insert = selectDiac;  }   /  _  ^  cAnyMarksBelow  cAnyMarksBelow  _  ;


10 - RULE 8.19, Scheherazade.gdl(319):  cSign3  cSignDigit {  attach {to = @3; at = digit; with = digit_; } insert = 1;  }  cSignDigit {  attach {to = @4; at = digit; with = digit_; } insert = 1;  }  cSignDigit {  attach {to = @1; at = digit; with = digit_; } insert = 1;  }  ;


11 - RULE 8.3, Scheherazade.gdl(284):  cHasExit { user1 = 1;  }  cHasEntry {  attach {to = @1; at = exit; with = entry; } insert = 1;  }   /  ^  _ { user1 == 0 }  cAnyMarks  _  ;


12 - RULE 8.8, Scheherazade.gdl(294):  absShadda  *GC6* {  attach {to = @1; at.x = diaA.x; at.y = diaA.y - 80; with = diaA_; } insert = selectDiac;  }   /  _  ^  cAnyMarksBelow  _  ;


13 - RULE 8.12, Scheherazade.gdl(299):  absHamzaAbove  *GC7* {  attach {to = @1; at.x = diaA.x + 40; at.y = diaA.y - 80; with = diaA_; } insert = selectDiac;  }   /  _  ^  cAnyMarksBelow  _  ;


14 - RULE 8.16, Scheherazade.gdl(306):  *GC8*  *GC9* {  attach {to = @1; at = diaA; with = diaA_; } insert = selectDiac;  }   /  _  ^  cAnyMarksBelow  _  ;


15 - RULE 8.20, Scheherazade.gdl(324):  cSign2  cSignDigit {  attach {to = @3; at = digit; with = digit_; } insert = 1;  }  cSignDigit {  attach {to = @1; at = digit; with = digit_; } insert = 1;  }  ;


16 - RULE 8.4, Scheherazade.gdl(284):  cHasExit { user1 = 1;  }  cHasEntry {  attach {to = @1; at = exit; with = entry; } insert = 1;  }   /  ^  _ { user1 == 0 }  _  ;


17 - RULE 8.5, Scheherazade.gdl(291):  cBaseAny  cMarkSuperscriptAlefs {  attach {to = @1; at = alef; with = alef_; } insert = 1;  }   /  _  ^  _  ;


18 - RULE 8.9, Scheherazade.gdl(294):  absShadda  *GC6* {  attach {to = @1; at.x = diaA.x; at.y = diaA.y - 80; with = diaA_; } insert = selectDiac;  }   /  _  ^  _  ;


19 - RULE 8.13, Scheherazade.gdl(299):  absHamzaAbove  *GC7* {  attach {to = @1; at.x = diaA.x + 40; at.y = diaA.y - 80; with = diaA_; } insert = selectDiac;  }   /  _  ^  _  ;


20 - RULE 8.17, Scheherazade.gdl(306):  *GC8*  *GC9* {  attach {to = @1; at = diaA; with = diaA_; } insert = selectDiac;  }   /  _  ^  _  ;


21 - RULE 8.21, Scheherazade.gdl(328):  cSign1  cSignDigit {  attach {to = @1; at = digit; with = digit_; } insert = 1;  }  ;


PASS: 9

0 - RULE 9.0, Scheherazade.gdl(337):  cAllAlefFinAfterLam  cAnyMarksBelow {  attach {to = @5; at = dia2B; with = dia2B_; } insert = selectDiac;  }   /  cAnyMarksBelow  cAnyMarksAbove  cAnyMarksAbove  cAnyMarksAbove  _  ^  cAnyMarksAbove  cAnyMarksAbove  cAnyMarksAbove  _  ;


1 - RULE 9.1, Scheherazade.gdl(337):  cAllAlefFinAfterLam  cAnyMarksBelow {  attach {to = @5; at = dia2B; with = dia2B_; } insert = selectDiac;  }   /  cAnyMarksBelow  cAnyMarksAbove  cAnyMarksAbove  cAnyMarksAbove  _  ^  cAnyMarksAbove  cAnyMarksAbove  _  ;


2 - RULE 9.4, Scheherazade.gdl(337):  cAllAlefFinAfterLam  cAnyMarksBelow {  attach {to = @5; at = dia2B; with = dia2B_; } insert = selectDiac;  }   /  ANY  cAnyMarksBelow  cAnyMarksAbove  cAnyMarksAbove  _  ^  cAnyMarksAbove  cAnyMarksAbove  cAnyMarksAbove  _  ;


3 - RULE 9.2, Scheherazade.gdl(337):  cAllAlefFinAfterLam  cAnyMarksBelow {  attach {to = @5; at = dia2B; with = dia2B_; } insert = selectDiac;  }   /  cAnyMarksBelow  cAnyMarksAbove  cAnyMarksAbove  cAnyMarksAbove  _  ^  cAnyMarksAbove  _  ;


4 - RULE 9.5, Scheherazade.gdl(337):  cAllAlefFinAfterLam  cAnyMarksBelow {  attach {to = @5; at = dia2B; with = dia2B_; } insert = selectDiac;  }   /  ANY  cAnyMarksBelow  cAnyMarksAbove  cAnyMarksAbove  _  ^  cAnyMarksAbove  cAnyMarksAbove  _  ;


5 - RULE 9.8, Scheherazade.gdl(337):  cAllAlefFinAfterLam  cAnyMarksBelow {  attach {to = @5; at = dia2B; with = dia2B_; } insert = selectDiac;  }   /  ANY  ANY  cAnyMarksBelow  cAnyMarksAbove  _  ^  cAnyMarksAbove  cAnyMarksAbove  cAnyMarksAbove  _  ;


6 - RULE 9.3, Scheherazade.gdl(337):  cAllAlefFinAfterLam  cAnyMarksBelow {  attach {to = @5; at = dia2B; with = dia2B_; } insert = selectDiac;  }   /  cAnyMarksBelow  cAnyMarksAbove  cAnyMarksAbove  cAnyMarksAbove  _  ^  _  ;


7 - RULE 9.6, Scheherazade.gdl(337):  cAllAlefFinAfterLam  cAnyMarksBelow {  attach {to = @5; at = dia2B; with = dia2B_; } insert = selectDiac;  }   /  ANY  cAnyMarksBelow  cAnyMarksAbove  cAnyMarksAbove  _  ^  cAnyMarksAbove  _  ;


8 - RULE 9.9, Scheherazade.gdl(337):  cAllAlefFinAfterLam  cAnyMarksBelow {  attach {to = @5; at = dia2B; with = dia2B_; } insert = selectDiac;  }   /  ANY  ANY  cAnyMarksBelow  cAnyMarksAbove  _  ^  cAnyMarksAbove  cAnyMarksAbove  _  ;


9 - RULE 9.12, Scheherazade.gdl(337):  cAllAlefFinAfterLam  cAnyMarksBelow {  attach {to = @5; at = dia2B; with = dia2B_; } insert = selectDiac;  }   /  ANY  ANY  ANY  cAnyMarksBelow  _  ^  cAnyMarksAbove  cAnyMarksAbove  cAnyMarksAbove  _  ;


10 - RULE 9.7, Scheherazade.gdl(337):  cAllAlefFinAfterLam  cAnyMarksBelow {  attach {to = @5; at = dia2B; with = dia2B_; } insert = selectDiac;  }   /  ANY  cAnyMarksBelow  cAnyMarksAbove  cAnyMarksAbove  _  ^  _  ;


11 - RULE 9.10, Scheherazade.gdl(337):  cAllAlefFinAfterLam  cAnyMarksBelow {  attach {to = @5; at = dia2B; with = dia2B_; } insert = selectDiac;  }   /  ANY  ANY  cAnyMarksBelow  cAnyMarksAbove  _  ^  cAnyMarksAbove  _  ;


12 - RULE 9.13, Scheherazade.gdl(337):  cAllAlefFinAfterLam  cAnyMarksBelow {  attach {to = @5; at = dia2B; with = dia2B_; } insert = selectDiac;  }   /  ANY  ANY  ANY  cAnyMarksBelow  _  ^  cAnyMarksAbove  cAnyMarksAbove  _  ;


13 - RULE 9.16, Scheherazade.gdl(342):  *GC10*  *GC11* {  attach {to = @5; at = diaB; with = diaB_; } insert = selectDiac;  }   /  ANY  ANY  ANY  ANY  _  ^  cAnyMarksAbove  cAnyMarksAbove  cAnyMarksAbove  _  ;


14 - RULE 9.11, Scheherazade.gdl(337):  cAllAlefFinAfterLam  cAnyMarksBelow {  attach {to = @5; at = dia2B; with = dia2B_; } insert = selectDiac;  }   /  ANY  ANY  cAnyMarksBelow  cAnyMarksAbove  _  ^  _  ;


15 - RULE 9.14, Scheherazade.gdl(337):  cAllAlefFinAfterLam  cAnyMarksBelow {  attach {to = @5; at = dia2B; with = dia2B_; } insert = selectDiac;  }   /  ANY  ANY  ANY  cAnyMarksBelow  _  ^  cAnyMarksAbove  _  ;


16 - RULE 9.17, Scheherazade.gdl(342):  *GC10*  *GC11* {  attach {to = @5; at = diaB; with = diaB_; } insert = selectDiac;  }   /  ANY  ANY  ANY  ANY  _  ^  cAnyMarksAbove  cAnyMarksAbove  _  ;


17 - RULE 9.15, Scheherazade.gdl(337):  cAllAlefFinAfterLam  cAnyMarksBelow {  attach {to = @5; at = dia2B; with = dia2B_; } insert = selectDiac;  }   /  ANY  ANY  ANY  cAnyMarksBelow  _  ^  _  ;


18 - RULE 9.18, Scheherazade.gdl(342):  *GC10*  *GC11* {  attach {to = @5; at = diaB; with = diaB_; } insert = selectDiac;  }   /  ANY  ANY  ANY  ANY  _  ^  cAnyMarksAbove  _  ;


19 - RULE 9.19, Scheherazade.gdl(342):  *GC10*  *GC11* {  attach {to = @5; at = diaB; with = diaB_; } insert = selectDiac;  }   /  ANY  ANY  ANY  ANY  _  ^  _  ;


PASS: 10

0 - RULE 10.46, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  _  _  _  ;


1 - RULE 10.47, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  _  _  ;


2 - RULE 10.51, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  _  _  ;


3 - RULE 10.48, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  _  ;


4 - RULE 10.52, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  _  ;


5 - RULE 10.56, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  _  ;


6 - RULE 10.49, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  ;


7 - RULE 10.53, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  ;


8 - RULE 10.57, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  ;


9 - RULE 10.61, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  ;


10 - RULE 10.0, Scheherazade.gdl(394):  cKafLikeIniMed  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  absRnoonMed { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  _  _  _  _  ;


11 - RULE 10.5, Scheherazade.gdl(397):  absFarsiYehIni  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  *GC14* { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  _  _  _  _  ;


12 - RULE 10.10, Scheherazade.gdl(400):  *GC15*  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -40; advance.x = aw + -40;  }  absRrehFin { shift.x = -40; advance.x = aw + -40;  }   /  ANY  _  _  _  _  _  _  _  ;


13 - RULE 10.20, Scheherazade.gdl(409):  *GC16*  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  *GC17*  absNameMarker { shift.y = 220;  }   /  ANY  _  _  _  _  _  _  _  ;


14 - RULE 10.50, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  ;


15 - RULE 10.54, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  ;


16 - RULE 10.58, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  ;


17 - RULE 10.62, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  ;


18 - RULE 10.66, Scheherazade.gdl(439):  *GC21*  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  ;


19 - RULE 10.1, Scheherazade.gdl(394):  cKafLikeIniMed  cAnyMarks  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  absRnoonMed { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  _  _  _  ;


20 - RULE 10.6, Scheherazade.gdl(397):  absFarsiYehIni  cAnyMarks  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  *GC14* { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  _  _  _  ;


21 - RULE 10.11, Scheherazade.gdl(400):  *GC15*  cAnyMarks  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -40; advance.x = aw + -40;  }  absRrehFin { shift.x = -40; advance.x = aw + -40;  }   /  ANY  _  _  _  _  _  _  ;


22 - RULE 10.15, Scheherazade.gdl(406):  absAlef  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absRreh { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  _  _  ;


23 - RULE 10.21, Scheherazade.gdl(409):  *GC16*  cAnyMarks  cAnyMarks  cAnyMarks  *GC17*  absNameMarker { shift.y = 220;  }   /  ANY  _  _  _  _  _  _  ;


24 - RULE 10.36, Scheherazade.gdl(435):  cBehLikeIniMed  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absRehBarFin { shift.x = 50; advance.x = aw + 50;  }   /  ANY  _  _  _  _  _  _  ;


25 - RULE 10.41, Scheherazade.gdl(436):  cPehLikeIniMed  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absRehBarFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  _  _  ;


26 - RULE 10.55, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  ;


27 - RULE 10.59, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  ;


28 - RULE 10.63, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  ;


29 - RULE 10.67, Scheherazade.gdl(439):  *GC21*  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  ;


30 - RULE 10.71, Scheherazade.gdl(442):  *GC22*  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  cKehehLikeFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  _  _  ;


31 - RULE 10.2, Scheherazade.gdl(394):  cKafLikeIniMed  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  absRnoonMed { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  _  _  ;


32 - RULE 10.7, Scheherazade.gdl(397):  absFarsiYehIni  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  *GC14* { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  _  _  ;


33 - RULE 10.12, Scheherazade.gdl(400):  *GC15*  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -40; advance.x = aw + -40;  }  absRrehFin { shift.x = -40; advance.x = aw + -40;  }   /  ANY  _  _  _  _  _  ;


34 - RULE 10.16, Scheherazade.gdl(406):  absAlef  cAnyMarks  cAnyMarks  cAnyMarks  absRreh { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  _  ;


35 - RULE 10.22, Scheherazade.gdl(409):  *GC16*  cAnyMarks  cAnyMarks  *GC17*  absNameMarker { shift.y = 220;  }   /  ANY  _  _  _  _  _  ;


36 - RULE 10.37, Scheherazade.gdl(435):  cBehLikeIniMed  cAnyMarks  cAnyMarks  cAnyMarks  absRehBarFin { shift.x = 50; advance.x = aw + 50;  }   /  ANY  _  _  _  _  _  ;


37 - RULE 10.42, Scheherazade.gdl(436):  cPehLikeIniMed  cAnyMarks  cAnyMarks  cAnyMarks  absRehBarFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  _  ;


38 - RULE 10.60, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cAnyMarks  cMark2Above  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  ;


39 - RULE 10.64, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cMark2Above  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  ;


40 - RULE 10.68, Scheherazade.gdl(439):  *GC21*  cMark2Above  cAnyMarks  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  ;


41 - RULE 10.72, Scheherazade.gdl(442):  *GC22*  cAnyMarks  cAnyMarks  cAnyMarks  cKehehLikeFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  _  ;


42 - RULE 10.3, Scheherazade.gdl(394):  cKafLikeIniMed  cAnyMarks  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  absRnoonMed { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  _  ;


43 - RULE 10.8, Scheherazade.gdl(397):  absFarsiYehIni  cAnyMarks  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  *GC14* { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  _  ;


44 - RULE 10.13, Scheherazade.gdl(400):  *GC15*  cAnyMarks  absAutoKashida { shift.x = -40; advance.x = aw + -40;  }  absRrehFin { shift.x = -40; advance.x = aw + -40;  }   /  ANY  _  _  _  _  ;


45 - RULE 10.17, Scheherazade.gdl(406):  absAlef  cAnyMarks  cAnyMarks  absRreh { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  ;


46 - RULE 10.23, Scheherazade.gdl(409):  *GC16*  cAnyMarks  *GC17*  absNameMarker { shift.y = 220;  }   /  ANY  _  _  _  _  ;


47 - RULE 10.38, Scheherazade.gdl(435):  cBehLikeIniMed  cAnyMarks  cAnyMarks  absRehBarFin { shift.x = 50; advance.x = aw + 50;  }   /  ANY  _  _  _  _  ;


48 - RULE 10.43, Scheherazade.gdl(436):  cPehLikeIniMed  cAnyMarks  cAnyMarks  absRehBarFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  ;


49 - RULE 10.65, Scheherazade.gdl(439):  *GC21*  cAnyMarks  cMark2Above  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  ;


50 - RULE 10.69, Scheherazade.gdl(439):  *GC21*  cMark2Above  cAnyMarks  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  ;


51 - RULE 10.73, Scheherazade.gdl(442):  *GC22*  cAnyMarks  cAnyMarks  cKehehLikeFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  ;


52 - RULE 10.4, Scheherazade.gdl(394):  cKafLikeIniMed  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  absRnoonMed { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  ;


53 - RULE 10.9, Scheherazade.gdl(397):  absFarsiYehIni  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  *GC14* { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  ;


54 - RULE 10.14, Scheherazade.gdl(400):  *GC15*  absAutoKashida { shift.x = -40; advance.x = aw + -40;  }  absRrehFin { shift.x = -40; advance.x = aw + -40;  }   /  ANY  _  _  _  ;


55 - RULE 10.18, Scheherazade.gdl(406):  absAlef  cAnyMarks  absRreh { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  ;


56 - RULE 10.24, Scheherazade.gdl(409):  *GC16*  *GC17*  absNameMarker { shift.y = 220;  }   /  ANY  _  _  _  ;


57 - RULE 10.25, Scheherazade.gdl(413):  cNoonGhunna  *GC19* { shift.y = -75;  }   /  *GC18*  _  _  ;


58 - RULE 10.27, Scheherazade.gdl(419):  if (kasraTcheh == 2) cBehLikeIniMed  absKasra { shift.x = -60; shift.y = 125;  }  cTchehLikeFin   /  ANY  _  _  _  ; endif; 


59 - RULE 10.28, Scheherazade.gdl(420):  if (kasraTcheh == 2) cBehLikeIniMed  absKasratan { shift.x = -100; shift.y = 30;  }  cTchehLikeFin   /  ANY  _  _  _  ; endif; 


60 - RULE 10.29, Scheherazade.gdl(423):  if (kasraTcheh == 1) cBehLikeIniMed  absKasra { shift.x = -40; shift.y = -200;  }  cTchehLikeFin   /  ANY  _  _  _  ; endif; 


61 - RULE 10.30, Scheherazade.gdl(424):  if (kasraTcheh == 1) cBehLikeIniMed  absKasratan { shift.x = -60; shift.y = -130;  }  cTchehLikeFin   /  ANY  _  _  _  ; endif; 


62 - RULE 10.31, Scheherazade.gdl(426):  cPehLikeIniMed  absKasra { shift.y = -50;  }  cTchehLikeFin   /  ANY  _  _  _  ;


63 - RULE 10.32, Scheherazade.gdl(427):  cPehLikeIniMed  absKasratan { shift.x = -50;  }  cTchehLikeFin   /  ANY  _  _  _  ;


64 - RULE 10.33, Scheherazade.gdl(428):  cTehLikeIniMed  absKasratan { shift.x = -80;  }  cTchehLikeFin   /  ANY  _  _  _  ;


65 - RULE 10.34, Scheherazade.gdl(431):  absAlef  absMaddahAbove { shift.x = -130;  }  absGaf { shift.x = 30; advance.x = aw + 30;  }   /  ANY  _  _  _  ;


66 - RULE 10.35, Scheherazade.gdl(432):  absAlef  absMaddahAbove { shift.x = -120;  }  absGafIni { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  ;


67 - RULE 10.39, Scheherazade.gdl(435):  cBehLikeIniMed  cAnyMarks  absRehBarFin { shift.x = 50; advance.x = aw + 50;  }   /  ANY  _  _  _  ;


68 - RULE 10.44, Scheherazade.gdl(436):  cPehLikeIniMed  cAnyMarks  absRehBarFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  ;


69 - RULE 10.70, Scheherazade.gdl(439):  *GC21*  cMark2Above  absRehSmallTahTwoDotsFin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  ;


70 - RULE 10.74, Scheherazade.gdl(442):  *GC22*  cAnyMarks  cKehehLikeFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  ;


71 - RULE 10.19, Scheherazade.gdl(406):  absAlef  absRreh { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  ;


72 - RULE 10.26, Scheherazade.gdl(415):  cNoonGhunna  *GC20* { shift.y = -150;  }   /  ANY  _  _  ;


73 - RULE 10.40, Scheherazade.gdl(435):  cBehLikeIniMed  absRehBarFin { shift.x = 50; advance.x = aw + 50;  }   /  ANY  _  _  ;


74 - RULE 10.45, Scheherazade.gdl(436):  cPehLikeIniMed  absRehBarFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  ;


75 - RULE 10.75, Scheherazade.gdl(442):  *GC22*  cKehehLikeFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  ;

