RULE PRECEDENCE


TABLE: substitution

PASS: 0 - no rules

PASS: 1 (GDL #1)

0 - RULE 1.0, SchMain.gdl(119):  cUnencodedChar  >  cUnencodedGlyph  ;


1 - RULE 1.1, SchMain.gdl(122):  cUnencodedChar2Parts  _  >  cUnencodedGlyphPart1  cUnencodedGlyphPart2$1:1  ;


2 - RULE 1.2, SchMain.gdl(126):  _  cAlefPlusMark  >  absAlef:2  cAlefMark  ;


3 - RULE 1.3, SchMain.gdl(128):  *GC1*  >  *GC0*  ;


PASS: 2 (GDL #2)

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


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


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


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


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


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


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


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


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


PASS: 3 (GDL #3)

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


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


PASS: 4 (GDL #4)

0 - RULE 4.10, SchMain.gdl(199):  *GC12*  *GC13*  >  *GC10*  *GC11*   /  _  cDiaDigit  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  ^  _  ;


1 - RULE 4.0, SchMain.gdl(193):  cLamIso  cAlefIso  >  cLamIniPreAlef { user1 = 0;  }  cAlefFinPostLamIni   /  _  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  ^  _  ;


2 - RULE 4.5, SchMain.gdl(194):  cLamFin  cAlefIso  >  cLamMedPreAlef { user1 = 0;  }  cAlefFinPostLamMed   /  _  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  ^  _  ;


3 - RULE 4.11, SchMain.gdl(199):  *GC12*  *GC13*  >  *GC10*  *GC11*   /  _  cDiaDigit  cAnyMarks  cAnyMarks  cAnyMarks  ^  _  ;


4 - RULE 4.15, SchMain.gdl(199):  *GC12*  *GC13*  >  *GC10*  *GC11*   /  _  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  ^  _  ;


5 - RULE 4.1, SchMain.gdl(193):  cLamIso  cAlefIso  >  cLamIniPreAlef { user1 = 0;  }  cAlefFinPostLamIni   /  _  cAnyMarks  cAnyMarks  cAnyMarks  ^  _  ;


6 - RULE 4.6, SchMain.gdl(194):  cLamFin  cAlefIso  >  cLamMedPreAlef { user1 = 0;  }  cAlefFinPostLamMed   /  _  cAnyMarks  cAnyMarks  cAnyMarks  ^  _  ;


7 - RULE 4.12, SchMain.gdl(199):  *GC12*  *GC13*  >  *GC10*  *GC11*   /  _  cDiaDigit  cAnyMarks  cAnyMarks  ^  _  ;


8 - RULE 4.16, SchMain.gdl(199):  *GC12*  *GC13*  >  *GC10*  *GC11*   /  _  cAnyMarks  cAnyMarks  cAnyMarks  ^  _  ;


9 - RULE 4.20, SchMain.gdl(206):  cSignTakes4  cDigitNormal  cDigitNormal  cDigitNormal  cDigitNormal  >  cSign4  cDigitMedium  cDigitMedium  cDigitMedium  cDigitMedium  ;


10 - RULE 4.2, SchMain.gdl(193):  cLamIso  cAlefIso  >  cLamIniPreAlef { user1 = 0;  }  cAlefFinPostLamIni   /  _  cAnyMarks  cAnyMarks  ^  _  ;


11 - RULE 4.7, SchMain.gdl(194):  cLamFin  cAlefIso  >  cLamMedPreAlef { user1 = 0;  }  cAlefFinPostLamMed   /  _  cAnyMarks  cAnyMarks  ^  _  ;


12 - RULE 4.13, SchMain.gdl(199):  *GC12*  *GC13*  >  *GC10*  *GC11*   /  _  cDiaDigit  cAnyMarks  ^  _  ;


13 - RULE 4.17, SchMain.gdl(199):  *GC12*  *GC13*  >  *GC10*  *GC11*   /  _  cAnyMarks  cAnyMarks  ^  _  ;


14 - RULE 4.21, SchMain.gdl(209):  cSignTakes3Medium  cDigitNormal  cDigitNormal  cDigitNormal  >  cSign3Medium  cDigitMedium  cDigitMedium  cDigitMedium  ;


15 - RULE 4.22, SchMain.gdl(212):  cSignTakes3Small  cDigitNormal  cDigitNormal  cDigitNormal  >  cSign3Small  cDigitSmall  cDigitSmall  cDigitSmall  ;


16 - RULE 4.3, SchMain.gdl(193):  cLamIso  cAlefIso  >  cLamIniPreAlef { user1 = 0;  }  cAlefFinPostLamIni   /  _  cAnyMarks  ^  _  ;


17 - RULE 4.8, SchMain.gdl(194):  cLamFin  cAlefIso  >  cLamMedPreAlef { user1 = 0;  }  cAlefFinPostLamMed   /  _  cAnyMarks  ^  _  ;


18 - RULE 4.14, SchMain.gdl(199):  *GC12*  *GC13*  >  *GC10*  *GC11*   /  _  cDiaDigit  ^  _  ;


19 - RULE 4.18, SchMain.gdl(199):  *GC12*  *GC13*  >  *GC10*  *GC11*   /  _  cAnyMarks  ^  _  ;


20 - RULE 4.23, SchMain.gdl(215):  cSignTakes2  cDigitNormal  cDigitNormal  >  cSign2  cDigitMedium  cDigitMedium  ;


21 - RULE 4.4, SchMain.gdl(193):  cLamIso  cAlefIso  >  cLamIniPreAlef { user1 = 0;  }  cAlefFinPostLamIni   /  _  ^  _  ;


22 - RULE 4.9, SchMain.gdl(194):  cLamFin  cAlefIso  >  cLamMedPreAlef { user1 = 0;  }  cAlefFinPostLamMed   /  _  ^  _  ;


23 - RULE 4.19, SchMain.gdl(199):  *GC12*  *GC13*  >  *GC10*  *GC11*   /  _  ^  _  ;


24 - RULE 4.24, SchMain.gdl(218):  cSignTakes1  cDigitNormal  >  cSign1  cDigitMedium  ;


PASS: 5 (GDL #5)

0 - RULE 5.0, SchMain.gdl(225):  absSuperscriptAlef  >  absSuperscriptAlef__large   /  cNeedsLargeDaggerAlef  _  ;


1 - RULE 5.1, SchMain.gdl(228):  if (selectDiac) cNeedsLoweredHamza  absHamzaAbove  >  cWithLoweredHamza:(2 3) { comp.base.ref = @2; comp.hamza.ref = @3;  }  _   /  ANY  _  _  ; endif; 


2 - RULE 5.2, SchMain.gdl(231):  if (!(selectDiac)) cNeedsLoweredHamza  absHamzaAbove  >  cWithLoweredHamza:(2 3)  _   /  ANY  _  _  ; endif; 


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


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


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


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


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


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


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


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


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


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


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


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


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


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


PASS: 6 (GDL #6)

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


1 - RULE 6.5, SchMain.gdl(410):  absFarsiYehIni  _  >  @1  absAutoKashida:7   /  _  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  _  *GC16*  ;


2 - RULE 6.10, SchMain.gdl(411):  *GC17*  _  >  @1  absAutoKashida:7   /  _  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  _  absRrehFin  ;


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


4 - RULE 6.6, SchMain.gdl(410):  absFarsiYehIni  _  >  @1  absAutoKashida:6   /  _  cAnyMarks  cAnyMarks  cAnyMarks  _  *GC16*  ;


5 - RULE 6.11, SchMain.gdl(411):  *GC17*  _  >  @1  absAutoKashida:6   /  _  cAnyMarks  cAnyMarks  cAnyMarks  _  absRrehFin  ;


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


7 - RULE 6.7, SchMain.gdl(410):  absFarsiYehIni  _  >  @1  absAutoKashida:5   /  _  cAnyMarks  cAnyMarks  _  *GC16*  ;


8 - RULE 6.12, SchMain.gdl(411):  *GC17*  _  >  @1  absAutoKashida:5   /  _  cAnyMarks  cAnyMarks  _  absRrehFin  ;


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


10 - RULE 6.8, SchMain.gdl(410):  absFarsiYehIni  _  >  @1  absAutoKashida:4   /  _  cAnyMarks  _  *GC16*  ;


11 - RULE 6.13, SchMain.gdl(411):  *GC17*  _  >  @1  absAutoKashida:4   /  _  cAnyMarks  _  absRrehFin  ;


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


13 - RULE 6.9, SchMain.gdl(410):  absFarsiYehIni  _  >  @1  absAutoKashida:3   /  _  _  *GC16*  ;


14 - RULE 6.14, SchMain.gdl(411):  *GC17*  _  >  @1  absAutoKashida:3   /  _  _  absRrehFin  ;


TABLE: positioning

PASS: 0 - no rules

PASS: 7 (GDL #1)

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


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


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


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


4 - RULE 7.15, SchMain.gdl(330):  cHasDiaA  cMatchesDiaA {  attach {to = @1; at = diaA; with = diaA_; } insert = selectDiac;  }   /  _  ^  cAnyMarksBelow  cAnyMarksBelow  cAnyMarksBelow  _  ;


5 - RULE 7.19, SchMain.gdl(337):  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 7.2, SchMain.gdl(302):  cHasExit { user1 = 1;  }  cHasEntry {  attach {to = @1; at = exit; with = entry; } insert = 1;  }   /  ^  _{ user1 == 0 }  cAnyMarks  cAnyMarks  _  ;


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


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


9 - RULE 7.16, SchMain.gdl(330):  cHasDiaA  cMatchesDiaA {  attach {to = @1; at = diaA; with = diaA_; } insert = selectDiac;  }   /  _  ^  cAnyMarksBelow  cAnyMarksBelow  _  ;


10 - RULE 7.20, SchMain.gdl(343):  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 7.3, SchMain.gdl(302):  cHasExit { user1 = 1;  }  cHasEntry {  attach {to = @1; at = exit; with = entry; } insert = 1;  }   /  ^  _{ user1 == 0 }  cAnyMarks  _  ;


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


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


14 - RULE 7.17, SchMain.gdl(330):  cHasDiaA  cMatchesDiaA {  attach {to = @1; at = diaA; with = diaA_; } insert = selectDiac;  }   /  _  ^  cAnyMarksBelow  _  ;


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


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


17 - RULE 7.5, SchMain.gdl(309):  cHasAlef  cMatchesAlef {  attach {to = @1; at = alef; with = alef_; } insert = 1;  }   /  _  ^  _  ;


18 - RULE 7.9, SchMain.gdl(312):  absShadda  *GC14* {  attach {to = @1; at.x = diaA.x; at.y = diaA.y - 80; with = diaA_; } insert = selectDiac;  }   /  _  ^  _  ;


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


20 - RULE 7.14, SchMain.gdl(325):  cTakesDiaDigitA  cDiaDigitAbove {  attach {to = @1; at = diaDigitA; with = diaDigitA_; }  }   /  _  ^  _  ;


21 - RULE 7.18, SchMain.gdl(330):  cHasDiaA  cMatchesDiaA {  attach {to = @1; at = diaA; with = diaA_; } insert = selectDiac;  }   /  _  ^  _  ;


22 - RULE 7.22, SchMain.gdl(352):  cSign1  cSignDigit {  attach {to = @1; at = digit; with = digit_; } insert = 1;  }  ;


PASS: 8 (GDL #2)

0 - RULE 8.2, SchMain.gdl(372):  cHasDiaB  cMatchesDiaB {  attach {to = @1; at = diaB; with = diaB_; } insert = selectDiac;  }   /  _  ^  cAnyMarksAbove  cAnyMarksAbove  cAnyMarksAbove  _  ;


1 - RULE 8.3, SchMain.gdl(372):  cHasDiaB  cMatchesDiaB {  attach {to = @1; at = diaB; with = diaB_; } insert = selectDiac;  }   /  _  ^  cAnyMarksAbove  cAnyMarksAbove  _  ;


2 - RULE 8.4, SchMain.gdl(372):  cHasDiaB  cMatchesDiaB {  attach {to = @1; at = diaB; with = diaB_; } insert = selectDiac;  }   /  _  ^  cAnyMarksAbove  _  ;


3 - RULE 8.0, SchMain.gdl(361):  cHasDia2B  cMatchesDia2B {  attach {to = @1; at = dia2B; with = dia2B_; } insert = selectDiac;  }   /  _  ^  _  ;


4 - RULE 8.1, SchMain.gdl(367):  cTakesDiaDigitB  cDiaDigitBelow {  attach {to = @1; at = diaDigitB; with = diaDigitB_; }  }   /  _  ^  _  ;


5 - RULE 8.5, SchMain.gdl(372):  cHasDiaB  cMatchesDiaB {  attach {to = @1; at = diaB; with = diaB_; } insert = selectDiac;  }   /  _  ^  _  ;


PASS 9: bidi

PASS: 9 (GDL #3)

0 - RULE 9.51, SchMain.gdl(478):  *GC27*  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  _  _  _  ;


1 - RULE 9.52, SchMain.gdl(478):  *GC27*  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  _  _  ;


2 - RULE 9.56, SchMain.gdl(478):  *GC27*  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  _  _  ;


3 - RULE 9.53, SchMain.gdl(478):  *GC27*  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  _  ;


4 - RULE 9.57, SchMain.gdl(478):  *GC27*  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  _  ;


5 - RULE 9.61, SchMain.gdl(478):  *GC27*  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  _  ;


6 - RULE 9.25, SchMain.gdl(447):  *GC22*  cDiaDigitAbove  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  *GC23*  absNameMarker { shift.x = 275;  }   /  ANY  _  _  _  _  _  _  _  _  ;


7 - RULE 9.54, SchMain.gdl(478):  *GC27*  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  ;


8 - RULE 9.58, SchMain.gdl(478):  *GC27*  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  ;


9 - RULE 9.62, SchMain.gdl(478):  *GC27*  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  ;


10 - RULE 9.66, SchMain.gdl(478):  *GC27*  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  _  ;


11 - RULE 9.0, SchMain.gdl(427):  cKafLikeIniMed  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  absRnoonMed { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  _  _  _  _  ;


12 - RULE 9.5, SchMain.gdl(430):  absFarsiYehIni  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  *GC18* { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  _  _  _  _  ;


13 - RULE 9.10, SchMain.gdl(433):  *GC19*  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -40; advance.x = aw + -40;  }  absRrehFin { shift.x = -40; advance.x = aw + -40;  }   /  ANY  _  _  _  _  _  _  _  ;


14 - RULE 9.20, SchMain.gdl(442):  *GC20*  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  *GC21*  absNameMarker { shift.y = 220;  }   /  ANY  _  _  _  _  _  _  _  ;


15 - RULE 9.26, SchMain.gdl(447):  *GC22*  cDiaDigitAbove  cAnyMarks  cAnyMarks  cAnyMarks  *GC23*  absNameMarker { shift.x = 275;  }   /  ANY  _  _  _  _  _  _  _  ;


16 - RULE 9.55, SchMain.gdl(478):  *GC27*  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  ;


17 - RULE 9.59, SchMain.gdl(478):  *GC27*  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  ;


18 - RULE 9.63, SchMain.gdl(478):  *GC27*  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  ;


19 - RULE 9.67, SchMain.gdl(478):  *GC27*  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  ;


20 - RULE 9.71, SchMain.gdl(478):  *GC27*  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  _  ;


21 - RULE 9.1, SchMain.gdl(427):  cKafLikeIniMed  cAnyMarks  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  absRnoonMed { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  _  _  _  ;


22 - RULE 9.6, SchMain.gdl(430):  absFarsiYehIni  cAnyMarks  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  *GC18* { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  _  _  _  ;


23 - RULE 9.11, SchMain.gdl(433):  *GC19*  cAnyMarks  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -40; advance.x = aw + -40;  }  absRrehFin { shift.x = -40; advance.x = aw + -40;  }   /  ANY  _  _  _  _  _  _  ;


24 - RULE 9.15, SchMain.gdl(439):  absAlef  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absRreh { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  _  _  ;


25 - RULE 9.21, SchMain.gdl(442):  *GC20*  cAnyMarks  cAnyMarks  cAnyMarks  *GC21*  absNameMarker { shift.y = 220;  }   /  ANY  _  _  _  _  _  _  ;


26 - RULE 9.27, SchMain.gdl(447):  *GC22*  cDiaDigitAbove  cAnyMarks  cAnyMarks  *GC23*  absNameMarker { shift.x = 275;  }   /  ANY  _  _  _  _  _  _  ;


27 - RULE 9.41, SchMain.gdl(474):  cBehLikeIniMed  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absRehBarFin { shift.x = 50; advance.x = aw + 50;  }   /  ANY  _  _  _  _  _  _  ;


28 - RULE 9.46, SchMain.gdl(475):  cPehLikeIniMed  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  absRehBarFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  _  _  ;


29 - RULE 9.60, SchMain.gdl(478):  *GC27*  cAnyMarks  cAnyMarks  cAnyMarks  cMark2Above  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  ;


30 - RULE 9.64, SchMain.gdl(478):  *GC27*  cAnyMarks  cAnyMarks  cMark2Above  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  ;


31 - RULE 9.68, SchMain.gdl(478):  *GC27*  cAnyMarks  cMark2Above  cAnyMarks  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  ;


32 - RULE 9.72, SchMain.gdl(478):  *GC27*  cMark2Above  cAnyMarks  cAnyMarks  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  _  ;


33 - RULE 9.76, SchMain.gdl(481):  *GC28*  cAnyMarks  cAnyMarks  cAnyMarks  cAnyMarks  cKehehLikeFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  _  _  ;


34 - RULE 9.2, SchMain.gdl(427):  cKafLikeIniMed  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  absRnoonMed { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  _  _  ;


35 - RULE 9.7, SchMain.gdl(430):  absFarsiYehIni  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  *GC18* { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  _  _  ;


36 - RULE 9.12, SchMain.gdl(433):  *GC19*  cAnyMarks  cAnyMarks  absAutoKashida { shift.x = -40; advance.x = aw + -40;  }  absRrehFin { shift.x = -40; advance.x = aw + -40;  }   /  ANY  _  _  _  _  _  ;


37 - RULE 9.16, SchMain.gdl(439):  absAlef  cAnyMarks  cAnyMarks  cAnyMarks  absRreh { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  _  ;


38 - RULE 9.22, SchMain.gdl(442):  *GC20*  cAnyMarks  cAnyMarks  *GC21*  absNameMarker { shift.y = 220;  }   /  ANY  _  _  _  _  _  ;


39 - RULE 9.28, SchMain.gdl(447):  *GC22*  cDiaDigitAbove  cAnyMarks  *GC23*  absNameMarker { shift.x = 275;  }   /  ANY  _  _  _  _  _  ;


40 - RULE 9.42, SchMain.gdl(474):  cBehLikeIniMed  cAnyMarks  cAnyMarks  cAnyMarks  absRehBarFin { shift.x = 50; advance.x = aw + 50;  }   /  ANY  _  _  _  _  _  ;


41 - RULE 9.47, SchMain.gdl(475):  cPehLikeIniMed  cAnyMarks  cAnyMarks  cAnyMarks  absRehBarFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  _  ;


42 - RULE 9.65, SchMain.gdl(478):  *GC27*  cAnyMarks  cAnyMarks  cMark2Above  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  ;


43 - RULE 9.69, SchMain.gdl(478):  *GC27*  cAnyMarks  cMark2Above  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  ;


44 - RULE 9.73, SchMain.gdl(478):  *GC27*  cMark2Above  cAnyMarks  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  _  ;


45 - RULE 9.77, SchMain.gdl(481):  *GC28*  cAnyMarks  cAnyMarks  cAnyMarks  cKehehLikeFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  _  ;


46 - RULE 9.3, SchMain.gdl(427):  cKafLikeIniMed  cAnyMarks  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  absRnoonMed { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  _  ;


47 - RULE 9.8, SchMain.gdl(430):  absFarsiYehIni  cAnyMarks  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  *GC18* { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  _  ;


48 - RULE 9.13, SchMain.gdl(433):  *GC19*  cAnyMarks  absAutoKashida { shift.x = -40; advance.x = aw + -40;  }  absRrehFin { shift.x = -40; advance.x = aw + -40;  }   /  ANY  _  _  _  _  ;


49 - RULE 9.17, SchMain.gdl(439):  absAlef  cAnyMarks  cAnyMarks  absRreh { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  ;


50 - RULE 9.23, SchMain.gdl(442):  *GC20*  cAnyMarks  *GC21*  absNameMarker { shift.y = 220;  }   /  ANY  _  _  _  _  ;


51 - RULE 9.29, SchMain.gdl(447):  *GC22*  cDiaDigitAbove  *GC23*  absNameMarker { shift.x = 275;  }   /  ANY  _  _  _  _  ;


52 - RULE 9.43, SchMain.gdl(474):  cBehLikeIniMed  cAnyMarks  cAnyMarks  absRehBarFin { shift.x = 50; advance.x = aw + 50;  }   /  ANY  _  _  _  _  ;


53 - RULE 9.48, SchMain.gdl(475):  cPehLikeIniMed  cAnyMarks  cAnyMarks  absRehBarFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  ;


54 - RULE 9.70, SchMain.gdl(478):  *GC27*  cAnyMarks  cMark2Above  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  ;


55 - RULE 9.74, SchMain.gdl(478):  *GC27*  cMark2Above  cAnyMarks  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  _  ;


56 - RULE 9.78, SchMain.gdl(481):  *GC28*  cAnyMarks  cAnyMarks  cKehehLikeFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  _  ;


57 - RULE 9.4, SchMain.gdl(427):  cKafLikeIniMed  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  absRnoonMed { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  ;


58 - RULE 9.9, SchMain.gdl(430):  absFarsiYehIni  absAutoKashida { shift.x = -30; advance.x = aw + -30;  }  *GC18* { shift.x = -30; advance.x = aw + -30;  }   /  ANY  _  _  _  ;


59 - RULE 9.14, SchMain.gdl(433):  *GC19*  absAutoKashida { shift.x = -40; advance.x = aw + -40;  }  absRrehFin { shift.x = -40; advance.x = aw + -40;  }   /  ANY  _  _  _  ;


60 - RULE 9.18, SchMain.gdl(439):  absAlef  cAnyMarks  absRreh { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  ;


61 - RULE 9.24, SchMain.gdl(442):  *GC20*  *GC21*  absNameMarker { shift.y = 220;  }   /  ANY  _  _  _  ;


62 - RULE 9.30, SchMain.gdl(452):  cNoonGhunna  *GC25* { shift.y = -75;  }   /  *GC24*  _  _  ;


63 - RULE 9.32, SchMain.gdl(458):  if (kasraTcheh == 2) cBehLikeIniMed  absKasra { shift.x = -60; shift.y = 125;  }  cTchehLikeFin   /  ANY  _  _  _  ; endif; 


64 - RULE 9.33, SchMain.gdl(459):  if (kasraTcheh == 2) cBehLikeIniMed  absKasratan { shift.x = -100; shift.y = 30;  }  cTchehLikeFin   /  ANY  _  _  _  ; endif; 


65 - RULE 9.34, SchMain.gdl(462):  if (kasraTcheh == 1) cBehLikeIniMed  absKasra { shift.x = -40; shift.y = -200;  }  cTchehLikeFin   /  ANY  _  _  _  ; endif; 


66 - RULE 9.35, SchMain.gdl(463):  if (kasraTcheh == 1) cBehLikeIniMed  absKasratan { shift.x = -60; shift.y = -130;  }  cTchehLikeFin   /  ANY  _  _  _  ; endif; 


67 - RULE 9.36, SchMain.gdl(465):  cPehLikeIniMed  absKasra { shift.y = -50;  }  cTchehLikeFin   /  ANY  _  _  _  ;


68 - RULE 9.37, SchMain.gdl(466):  cPehLikeIniMed  absKasratan { shift.x = -50;  }  cTchehLikeFin   /  ANY  _  _  _  ;


69 - RULE 9.38, SchMain.gdl(467):  cTehLikeIniMed  absKasratan { shift.x = -80;  }  cTchehLikeFin   /  ANY  _  _  _  ;


70 - RULE 9.39, SchMain.gdl(470):  absAlef  absMaddahAbove { shift.x = -130;  }  absGaf { shift.x = 30; advance.x = aw + 30;  }   /  ANY  _  _  _  ;


71 - RULE 9.40, SchMain.gdl(471):  absAlef  absMaddahAbove { shift.x = -120;  }  absGafIni { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  ;


72 - RULE 9.44, SchMain.gdl(474):  cBehLikeIniMed  cAnyMarks  absRehBarFin { shift.x = 50; advance.x = aw + 50;  }   /  ANY  _  _  _  ;


73 - RULE 9.49, SchMain.gdl(475):  cPehLikeIniMed  cAnyMarks  absRehBarFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  ;


74 - RULE 9.75, SchMain.gdl(478):  *GC27*  cMark2Above  absJehRetro1Fin { shift.x = 65; advance.x = aw + 65;  }   /  ANY  _  _  _  ;


75 - RULE 9.79, SchMain.gdl(481):  *GC28*  cAnyMarks  cKehehLikeFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  _  ;


76 - RULE 9.19, SchMain.gdl(439):  absAlef  absRreh { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  ;


77 - RULE 9.31, SchMain.gdl(454):  cNoonGhunna  *GC26* { shift.y = -150;  }   /  ANY  _  _  ;


78 - RULE 9.45, SchMain.gdl(474):  cBehLikeIniMed  absRehBarFin { shift.x = 50; advance.x = aw + 50;  }   /  ANY  _  _  ;


79 - RULE 9.50, SchMain.gdl(475):  cPehLikeIniMed  absRehBarFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  ;


80 - RULE 9.80, SchMain.gdl(481):  *GC28*  cKehehLikeFin { shift.x = 70; advance.x = aw + 70;  }   /  ANY  _  _  ;

