Lines Matching refs:self

111 		$type = self::indic_get_categories($u);
120 $cat = self::OT_X;
123 if ($cat == self::OT_X && self::in_range($u, 0x17CB, 0x17D3)) { /* Khmer Various signs */
125 $cat = self::OT_M;
126 $pos = self::POS_ABOVE_C;
130 $cat = self::OT_N;
134 $cat = self::OT_COENG;
145 //if ($u == 0x0952) $cat = self::OT_A;
146 if (self::in_range($u, 0x0951, 0x0954)) {
147 $cat = self::OT_VD;
151 $cat = self::OT_ZWNJ;
153 $cat = self::OT_ZWJ;
155 $cat = self::OT_DOTTEDCIRCLE;
157 $cat = self::OT_SM;
160 if ($cat == self::OT_REPHA) {
168 $cat = self::OT_N;
176 if ((self::FLAG($cat) & (self::FLAG(self::OT_C) | self::FLAG(self::OT_CM) | self::FLAG(self::OT_RA) | self::FLAG(self::OT_V) | self::FLAG(self::OT_NBSP) | self::FLAG(self::OT_DOTTEDCIRCLE)))) { // = CONSONANT_FLAGS like is_consonant
178 $pos = self::POS_BELOW_C;
181 $pos = self::POS_BASE_C;
184 if (self::is_ra($u)) {
185 $cat = self::OT_RA;
187 } elseif ($cat == self::OT_M) {
188 $pos = self::matra_position($u, $pos);
189 } elseif ($cat == self::OT_SM || $cat == self::OT_VD) {
190 $pos = self::POS_SMVD;
194 $pos = self::POS_BEFORE_SUB;
217 $syllable_type = self::NON_INDIC_CLUSTER;
224 $syllable_type = self::CONSONANT_SYLLABLE;
231 $syllable_type = self::VOWEL_SYLLABLE;
242 $syllable_type = self::STANDALONE_CLUSTER;
249 $syllable_type = self::BROKEN_CLUSTER;
274 $syllable_type = self::NON_INDIC_CLUSTER;
279 $syllable_type = self::CONSONANT_SYLLABLE;
284 $syllable_type = self::VOWEL_SYLLABLE;
307 $syllable_type = self::NON_INDIC_CLUSTER;
311 $syllable_type = self::CONSONANT_SYLLABLE;
315 $syllable_type = self::VOWEL_SYLLABLE;
320 $syllable_type = self::BROKEN_CLUSTER;
339 self::update_consonant_positions($info, $GSUBdata);
342 self::insert_dotted_circles($info, $dottedcircle);
353 self::initial_reordering_syllable($info, $GSUBdata, $indic_config, $scriptblock, $is_old_spec, $last, $i);
358 self::initial_reordering_syllable($info, $GSUBdata, $indic_config, $scriptblock, $is_old_spec, $last, $count);
365 if ($info[$i]['indic_position'] == self::POS_BASE_C) {
369 $info[$i]['indic_position'] = self::POS_POST_C;
371 $info[$i]['indic_position'] = self::POS_BELOW_C;
373 $info[$i]['indic_position'] = self::POS_POST_C;
386 if ($last_syllable != $syllable && $syllable_type == self::BROKEN_CLUSTER) {
392 while ($idx < count($info) && $last_syllable == $info[$idx]['syllable'] && $info[$idx]['indic_category'] == self::OT_REPHA) {
409 //if ($last_syllable != $syllable && $syllable_type == self::BROKEN_CLUSTER) {
425 if ($syllable_type == self::NON_INDIC_CLUSTER) {
428 if ($syllable_type == self::BROKEN_CLUSTER || $syllable_type == self::STANDALONE_CLUSTER) {
433 if ($info[$end - 1]['indic_category'] == self::OT_DOTTEDCIRCLE) {
462 ($indic_config[4] == self::REPH_MODE_IMPLICIT && !self::is_joiner($info[$start + 2])) ||
463 ($indic_config[4] == self::REPH_MODE_EXPLICIT && $info[$start + 2]['indic_category'] == self::OT_ZWJ)
468 if (isset($GSUBdata['rphf'][$info[$start]['uni']]) && self::is_halant_or_coeng($info[$start + 1])) {
470 while ($limit < $end && self::is_joiner($info[$limit])) {
476 } elseif ($indic_config[4] == self::REPH_MODE_LOG_REPHA && $info[$start]['indic_category'] == self::OT_REPHA) {
478 while ($limit < $end && self::is_joiner($info[$limit])) {
487 case self::BASE_POS_LAST:
494 if (self::is_consonant($info[$i])) {
497 if ($info[$i]['indic_position'] != self::POS_BELOW_C && ($info[$i]['indic_position'] != self::POS_POST_C || $seen_below)) {
501 if ($info[$i]['indic_position'] == self::POS_BELOW_C) {
522 if ($start < $i && $info[$i]['indic_category'] == self::OT_ZWJ && $info[$i - 1]['indic_category'] == self::OT_H) {
529 if ($start < $i && $info[$i]['indic_category'] == self::OT_ZWNJ) {
536 case self::BASE_POS_FIRST:
546 if (self::is_consonant($info[$i]) && $info[$i]['indic_position'] == self::POS_BASE_C) {
547 if ($limit < $i && $info[$i - 1]['indic_category'] == self::OT_ZWJ) {
557 if (self::is_consonant($info[$i]) && $info[$i]['indic_position'] == self::POS_BASE_C) {
558 $info[$i]['indic_position'] = self::POS_BELOW_C;
613 $info[$i]['indic_position'] = min(self::POS_PRE_C, $info[$i]['indic_position']);
617 $info[$base]['indic_position'] = self::POS_BASE_C;
623 if ($info[$i]['indic_category'] == self::OT_M) {
625 if (self::is_consonant($info[$j])) {
626 $info[$j]['indic_position'] = self::POS_FINAL_C;
637 $info[$start]['indic_position'] = self::POS_RA_TO_BECOME_REPH;
647 if ($info[$i]['indic_category'] == self::OT_H) {
649 if (self::is_consonant($info[$j]) || $info[$j]['indic_category'] == self::OT_H) {
653 if ($info[$j]['indic_category'] != self::OT_H && $j > $i) {
655 self::_move_info_pos($info, $i, $j + 1);
663 $last_pos = self::POS_START;
665 if ((self::FLAG($info[$i]['indic_category']) & (self::FLAG(self::OT_ZWJ) | self::FLAG(self::OT_ZWNJ) | self::FLAG(self::OT_N) | self::FLAG(self::OT_RS) | self::FLAG(self::OT_H) | self::FLAG(self::OT_COENG) ))) {
667 if ($info[$i]['indic_category'] == self::OT_H && $info[$i]['indic_position'] == self::POS_PRE_M) {
678 if ($info[$j - 1]['indic_position'] != self::POS_PRE_M) {
684 } elseif ($info[$i]['indic_position'] != self::POS_SMVD) {
692 if (self::is_halant_or_coeng($info[$i])) {
694 } elseif (self::is_consonant($info[$i])) {
696 if ($info[$j]['indic_position'] != self::POS_SMVD) {
708 if (self::is_halant_or_coeng($info[$i]) && self::is_ra($info[$i + 1]['uni'])) {
709 $info[$i]['indic_position'] = self::POS_PRE_C;
710 $info[$i + 1]['indic_position'] = self::POS_PRE_C;
723 if ($info[$i]['indic_category'] == self::OT_ZWNJ) { $ZWNJ_found = true; }
724 else if ($ZWNJ_found && $info[$i]['indic_category'] == self::OT_C) { $POST_ZWNJ_c_found = true; }
725 else if ($POST_ZWNJ_c_found && $info[$i]['indic_position'] == self::POS_BEFORE_SUB) { $info[$i]['indic_position'] = self::POS_AFTER_SUB; }
738 $mask = self::FLAG(self::PREF);
740 if (self::is_halant_or_coeng($info[$i]) && self::is_ra($info[$i + 1]['uni'])) {
741 $info[$i]['mask'] |= self::FLAG(self::PREF);
742 $info[$i + 1]['mask'] |= self::FLAG(self::PREF);
751 $info[$j]['mask'] |= self::FLAG(self::CFAR);
762 self::bubble_sort($info, $start, $end - $start);
767 if ($info[$i]['indic_position'] == self::POS_BASE_C) {
776 if ($info[$i]['indic_position'] == self::POS_RA_TO_BECOME_REPH) {
777 $info[$i]['mask'] |= self::FLAG(self::RPHF);
782 $mask = self::FLAG(self::HALF);
789 $mask = (self::FLAG(self::BLWF) | self::FLAG(self::ABVF) | self::FLAG(self::PSTF));
802 if (self::is_consonant($info[$i])) {
803 if (self::is_halant_or_coeng($info[$i + 1]) && self::is_ra($info[$i + 2]['uni'])) {
806 $info[$i + 1]['mask'] |= self::FLAG(self::BLWF);
807 $info[$i + 2]['mask'] |= self::FLAG(self::BLWF);
808 } /* If would not substitute as blwf, mark Ra+Halant for RPHF using following Halant (if present) */ elseif (self::is_halant_or_coeng($info[$i + 3])) {
809 $info[$i + 2]['mask'] |= self::FLAG(self::RPHF);
810 $info[$i + 3]['mask'] |= self::FLAG(self::RPHF);
840 if ($info[$i]['indic_category'] == self::OT_RA && $info[$i + 1]['indic_category'] == self::OT_H &&
841 ($i + 2 == $base || $info[$i + 2]['indic_category'] != self::OT_ZWJ)) {
842 $info[$i]['mask'] |= self::FLAG(self::BLWF);
843 $info[$i + 1]['mask'] |= self::FLAG(self::BLWF);
853 if ((isset($GSUBdata['pref'][$info[$i + 1]['uni']]) && self::is_halant_or_coeng($info[$i]) && self::is_ra($info[$i + 1]['uni']) ) ||
854 ($is_old_spec && isset($GSUBdata['pref'][$info[$i]['uni']]) && self::is_halant_or_coeng($info[$i + 1]) && self::is_ra($info[$i]['uni']) )
856 $info[$i++]['mask'] |= self::FLAG(self::PREF);
857 $info[$i++]['mask'] |= self::FLAG(self::PREF);
867 if (self::is_joiner($info[$i])) {
868 $non_joiner = ($info[$i]['indic_category'] == self::OT_ZWNJ);
874 if (!self::is_consonant($info[$j])) {
886 $info[$j]['mask'] &= ~(self::FLAG(self::HALF) | self::FLAG(self::BLWF));
903 self::final_reordering_syllable($info, $GSUBdata, $indic_config, $scriptblock, $is_old_spec, $last, $i);
908 self::final_reordering_syllable($info, $GSUBdata, $indic_config, $scriptblock, $is_old_spec, $last, $count);
924 if ($info[$base]['indic_position'] >= self::POS_BASE_C) {
925 if ($start < $base && $info[$base]['indic_position'] > self::POS_BASE_C) {
931 if ($base == $end && $start < $base && $info[$base - 1]['indic_category'] != self::OT_ZWJ) {
934 while ($start < $base && isset($info[$base]) && ($info[$base]['indic_category'] == self::OT_H || $info[$base]['indic_category'] == self::OT_N)) {
959 while ($new_pos > $start && !(self::is_one_of($info[$new_pos], (self::FLAG(self::OT_M) | self::FLAG(self::OT_H) | self::FLAG(self::OT_COENG))))) {
966 if (self::is_halant_or_coeng($info[$new_pos]) && $info[$new_pos]['indic_position'] != self::POS_PRE_M) {
968 if ($new_pos + 1 < $end && self::is_joiner($info[$new_pos + 1])) {
976 if ($start < $new_pos && $info[$new_pos]['indic_position'] != self::POS_PRE_M) {
979 if ($info[$i - 1]['indic_position'] == self::POS_PRE_M) {
982 self::_move_info_pos($info, $old_pos, $new_pos + 1);
1007 $info[$start]['indic_position'] == self::POS_RA_TO_BECOME_REPH && $info[$start + 1]['indic_position'] != self::POS_RA_TO_BECOME_REPH) {
1015 if ($reph_pos == self::REPH_POS_AFTER_POST) {
1034 while ($new_reph_pos < $base && !self::is_halant_or_coeng($info[$new_reph_pos])) {
1038 if ($new_reph_pos < $base && self::is_halant_or_coeng($info[$new_reph_pos])) {
1040 if ($new_reph_pos + 1 < $base && self::is_joiner($info[$new_reph_pos + 1])) {
1051 if ($reph_pos == self::REPH_POS_AFTER_MAIN && !$skip_to_reph_move && !$skip_to_reph_step_5) {
1054 while ($new_reph_pos + 1 < $end && $info[$new_reph_pos + 1]['indic_position'] <= self::POS_AFTER_MAIN) {
1068 if ($reph_pos == self::REPH_POS_AFTER_SUB && !$skip_to_reph_move && !$skip_to_reph_step_5) {
1071 !( self::FLAG($info[$new_reph_pos + 1]['indic_position']) & (self::FLAG(self::POS_POST_C) | self::FLAG(self::POS_AFTER_POST) | self::FLAG(self::POS_SMVD)))) {
1089 while ($new_reph_pos < $base && !self::is_halant_or_coeng($info[$new_reph_pos])) {
1093 if ($new_reph_pos < $base && self::is_halant_or_coeng($info[$new_reph_pos])) {
1095 if ($new_reph_pos + 1 < $base && self::is_joiner($info[$new_reph_pos + 1])) {
1107 while ($new_reph_pos > $start && $info[$new_reph_pos]['indic_position'] == self::POS_SMVD) {
1118 //if (!$hb_options.uniscribe_bug_compatible && self::is_halant_or_coeng($info[$new_reph_pos])) {
1119 if (self::is_halant_or_coeng($info[$new_reph_pos])) {
1121 if ($info[$i]['indic_category'] == self::OT_M) {
1131 self::_move_info_pos($info, $start, $new_reph_pos + 1);
1148 if ($info[$i]['mask'] & self::FLAG(self::PREF)) {
1154 if ($i + 1 == $end || ($info[$i + 1]['mask'] & self::FLAG(self::PREF)) == 0) {
1169 !(self::is_one_of($info[$new_pos - 1], self::FLAG(self::OT_M) | self::FLAG(self::OT_H) | self::FLAG(self::OT_COENG)))) {
1175 if ($new_pos > $start && $info[$new_pos - 1]['indic_category'] == self::OT_M) {
1178 if ($info[$i]['indic_category'] == self::OT_M) {
1186 if ($new_pos > $start && self::is_halant_or_coeng($info[$new_pos - 1])) {
1188 if ($new_pos < $end && self::is_joiner($info[$new_pos])) {
1194 self::_move_info_pos($info, $old_pos, $new_pos);
1208 if ($info[$start]['indic_position'] == self::POS_PRE_M &&
1212 $info[$start]['mask'] |= self::FLAG(self::INIT);
1251 return isset(self::$ra_chars[$u]);
1259 return !!(self::FLAG($info['indic_category']) & $flags);
1264 return self::is_one_of($info, (self::FLAG(self::OT_ZWJ) | self::FLAG(self::OT_ZWNJ)));
1271 return self::is_one_of($info, (self::FLAG(self::OT_C) | self::FLAG(self::OT_CM) | self::FLAG(self::OT_RA) | self::FLAG(self::OT_V) | self::FLAG(self::OT_NBSP) | self::FLAG(self::OT_DOTTEDCIRCLE)));
1276 return self::is_one_of($info, (self::FLAG(self::OT_H) | self::FLAG(self::OT_COENG)));
1614 return self::$indic_table[$u - 0x0900 + 0]; // offset 0 for Most "indic"
1617 return self::$indic_table[$u - 0x1CD0 + 1152]; // offset for Vedic extensions
1620 return self::$khmer_table[$u - 0x1780]; // Khmer
1643 return self::IN_HALF_BLOCK($u, 0x0900);
1648 return self::IN_HALF_BLOCK($u, 0x0980);
1653 return self::IN_HALF_BLOCK($u, 0x0A00);
1658 return self::IN_HALF_BLOCK($u, 0x0A80);
1663 return self::IN_HALF_BLOCK($u, 0x0B00);
1668 return self::IN_HALF_BLOCK($u, 0x0B80);
1673 return self::IN_HALF_BLOCK($u, 0x0C00);
1678 return self::IN_HALF_BLOCK($u, 0x0C80);
1683 return self::IN_HALF_BLOCK($u, 0x0D00);
1688 return self::IN_HALF_BLOCK($u, 0x0D80);
1693 return self::IN_HALF_BLOCK($u, 0x1780);
1698 return self::POS_PRE_M;
1704 (self::IS_DEVA($u) ? self::POS_AFTER_SUB :
1705 (self::IS_BENG($u) ? self::POS_AFTER_POST :
1706 (self::IS_GURU($u) ? self::POS_AFTER_POST :
1707 (self::IS_GUJR($u) ? self::POS_AFTER_POST :
1708 (self::IS_ORYA($u) ? self::POS_AFTER_POST :
1709 (self::IS_TAML($u) ? self::POS_AFTER_POST :
1710 (self::IS_TELU($u) ? ($u <= 0x0C42 ? self::POS_BEFORE_SUB : self::POS_AFTER_SUB) :
1711 (self::IS_KNDA($u) ? ($u < 0x0CC3 || $u > 0xCD6 ? self::POS_BEFORE_SUB : self::POS_AFTER_SUB) :
1712 (self::IS_MLYM($u) ? self::POS_AFTER_POST :
1713 (self::IS_SINH($u) ? self::POS_AFTER_SUB :
1714 (self::IS_KHMR($u) ? self::POS_AFTER_POST :
1715 self::POS_AFTER_SUB))))))))))); /* default */
1721 (self::IS_DEVA($u) ? self::POS_AFTER_SUB :
1722 (self::IS_GURU($u) ? self::POS_AFTER_POST : /* Deviate from spec */
1723 (self::IS_GUJR($u) ? self::POS_AFTER_SUB :
1724 (self::IS_ORYA($u) ? self::POS_AFTER_MAIN :
1725 (self::IS_TAML($u) ? self::POS_AFTER_SUB :
1726 (self::IS_TELU($u) ? self::POS_BEFORE_SUB :
1727 (self::IS_KNDA($u) ? self::POS_BEFORE_SUB :
1728 (self::IS_SINH($u) ? self::POS_AFTER_SUB :
1729 (self::IS_KHMR($u) ? self::POS_AFTER_POST :
1730 self::POS_AFTER_SUB))))))))); /* default */
1736 (self::IS_DEVA($u) ? self::POS_AFTER_SUB :
1737 (self::IS_BENG($u) ? self::POS_AFTER_SUB :
1738 (self::IS_GURU($u) ? self::POS_AFTER_POST :
1739 (self::IS_GUJR($u) ? self::POS_AFTER_POST :
1740 (self::IS_ORYA($u) ? self::POS_AFTER_SUB :
1741 (self::IS_TAML($u) ? self::POS_AFTER_POST :
1742 (self::IS_TELU($u) ? self::POS_BEFORE_SUB :
1743 (self::IS_KNDA($u) ? self::POS_BEFORE_SUB :
1744 (self::IS_MLYM($u) ? self::POS_AFTER_POST :
1745 (self::IS_SINH($u) ? self::POS_AFTER_SUB :
1746 (self::IS_KHMR($u) ? self::POS_AFTER_POST :
1747 self::POS_AFTER_SUB))))))))))); /* default */
1753 case self::POS_PRE_C:
1754 return self::MATRA_POS_LEFT($u);
1755 case self::POS_POST_C:
1756 return self::MATRA_POS_RIGHT($u);
1757 case self::POS_ABOVE_C:
1758 return self::MATRA_POS_TOP($u);
1759 case self::POS_BELOW_C:
1760 return self::MATRA_POS_BOTTOM($u);