|
|
|
@ -32,6 +32,7 @@ |
|
|
|
|
#define HB_OT_SHAPE_COMPLEX_USE_MACHINE_HH |
|
|
|
|
|
|
|
|
|
#include "hb.hh" |
|
|
|
|
#include "hb-ot-shape-complex-use.hh" |
|
|
|
|
|
|
|
|
|
/* buffer var allocations */ |
|
|
|
|
#define use_category() complex_var_u8_category() |
|
|
|
@ -50,7 +51,7 @@ enum use_syllable_type_t { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 54 "hb-ot-shape-complex-use-machine.hh" |
|
|
|
|
#line 55 "hb-ot-shape-complex-use-machine.hh" |
|
|
|
|
#define use_syllable_machine_ex_B 1u |
|
|
|
|
#define use_syllable_machine_ex_CMAbv 31u |
|
|
|
|
#define use_syllable_machine_ex_CMBlw 32u |
|
|
|
@ -92,7 +93,7 @@ enum use_syllable_type_t { |
|
|
|
|
#define use_syllable_machine_ex_ZWNJ 14u |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 96 "hb-ot-shape-complex-use-machine.hh" |
|
|
|
|
#line 97 "hb-ot-shape-complex-use-machine.hh" |
|
|
|
|
static const unsigned char _use_syllable_machine_trans_keys[] = { |
|
|
|
|
1u, 1u, 1u, 1u, 0u, 51u, 11u, 48u, 11u, 48u, 1u, 1u, 22u, 48u, 23u, 48u,
|
|
|
|
|
24u, 47u, 25u, 47u, 26u, 47u, 45u, 46u, 46u, 46u, 24u, 48u, 24u, 48u, 24u, 48u,
|
|
|
|
@ -361,11 +362,11 @@ static const int use_syllable_machine_error = -1; |
|
|
|
|
static const int use_syllable_machine_en_main = 2; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 55 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 56 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 168 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 173 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define found_syllable(syllable_type) \ |
|
|
|
@ -379,9 +380,9 @@ static const int use_syllable_machine_en_main = 2; |
|
|
|
|
|
|
|
|
|
static bool |
|
|
|
|
not_standard_default_ignorable (const hb_glyph_info_t &i) |
|
|
|
|
{ return !(i.use_category() == USE_O && _hb_glyph_info_is_default_ignorable (&i)); } |
|
|
|
|
{ return !(i.use_category() == USE(O) && _hb_glyph_info_is_default_ignorable (&i)); } |
|
|
|
|
|
|
|
|
|
static void |
|
|
|
|
static inline void |
|
|
|
|
find_syllables_use (hb_buffer_t *buffer) |
|
|
|
|
{ |
|
|
|
|
hb_glyph_info_t *info = buffer->info; |
|
|
|
@ -392,7 +393,7 @@ find_syllables_use (hb_buffer_t *buffer) |
|
|
|
|
hb_second) |
|
|
|
|
| hb_filter ([&] (const hb_pair_t<unsigned, const hb_glyph_info_t &> p) |
|
|
|
|
{ |
|
|
|
|
if (p.second.use_category() == USE_ZWNJ) |
|
|
|
|
if (p.second.use_category() == USE(ZWNJ)) |
|
|
|
|
for (unsigned i = p.first + 1; i < buffer->len; ++i) |
|
|
|
|
if (not_standard_default_ignorable (info[i])) |
|
|
|
|
return !_hb_glyph_info_is_unicode_mark (&info[i]); |
|
|
|
@ -408,7 +409,7 @@ find_syllables_use (hb_buffer_t *buffer) |
|
|
|
|
unsigned int act HB_UNUSED; |
|
|
|
|
int cs; |
|
|
|
|
|
|
|
|
|
#line 412 "hb-ot-shape-complex-use-machine.hh" |
|
|
|
|
#line 413 "hb-ot-shape-complex-use-machine.hh" |
|
|
|
|
{ |
|
|
|
|
cs = use_syllable_machine_start; |
|
|
|
|
ts = 0; |
|
|
|
@ -416,12 +417,12 @@ find_syllables_use (hb_buffer_t *buffer) |
|
|
|
|
act = 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#line 212 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 217 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
unsigned int syllable_serial = 1; |
|
|
|
|
|
|
|
|
|
#line 425 "hb-ot-shape-complex-use-machine.hh" |
|
|
|
|
#line 426 "hb-ot-shape-complex-use-machine.hh" |
|
|
|
|
{ |
|
|
|
|
int _slen; |
|
|
|
|
int _trans; |
|
|
|
@ -435,7 +436,7 @@ _resume: |
|
|
|
|
#line 1 "NONE" |
|
|
|
|
{ts = p;} |
|
|
|
|
break; |
|
|
|
|
#line 439 "hb-ot-shape-complex-use-machine.hh" |
|
|
|
|
#line 440 "hb-ot-shape-complex-use-machine.hh" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
_keys = _use_syllable_machine_trans_keys + (cs<<1); |
|
|
|
@ -458,62 +459,62 @@ _eof_trans: |
|
|
|
|
{te = p+1;} |
|
|
|
|
break; |
|
|
|
|
case 5: |
|
|
|
|
#line 155 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 160 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
{te = p+1;{ found_syllable (independent_cluster); }} |
|
|
|
|
break; |
|
|
|
|
case 9: |
|
|
|
|
#line 158 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 163 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
{te = p+1;{ found_syllable (standard_cluster); }} |
|
|
|
|
break; |
|
|
|
|
case 7: |
|
|
|
|
#line 163 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 168 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
{te = p+1;{ found_syllable (broken_cluster); }} |
|
|
|
|
break; |
|
|
|
|
case 6: |
|
|
|
|
#line 164 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 169 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
{te = p+1;{ found_syllable (non_cluster); }} |
|
|
|
|
break; |
|
|
|
|
case 10: |
|
|
|
|
#line 156 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 161 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
{te = p;p--;{ found_syllable (virama_terminated_cluster); }} |
|
|
|
|
break; |
|
|
|
|
case 11: |
|
|
|
|
#line 157 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 162 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
{te = p;p--;{ found_syllable (sakot_terminated_cluster); }} |
|
|
|
|
break; |
|
|
|
|
case 8: |
|
|
|
|
#line 158 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 163 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
{te = p;p--;{ found_syllable (standard_cluster); }} |
|
|
|
|
break; |
|
|
|
|
case 13: |
|
|
|
|
#line 159 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 164 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
{te = p;p--;{ found_syllable (number_joiner_terminated_cluster); }} |
|
|
|
|
break; |
|
|
|
|
case 12: |
|
|
|
|
#line 160 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 165 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
{te = p;p--;{ found_syllable (numeral_cluster); }} |
|
|
|
|
break; |
|
|
|
|
case 14: |
|
|
|
|
#line 161 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 166 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
{te = p;p--;{ found_syllable (symbol_cluster); }} |
|
|
|
|
break; |
|
|
|
|
case 17: |
|
|
|
|
#line 162 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 167 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
{te = p;p--;{ found_syllable (hieroglyph_cluster); }} |
|
|
|
|
break; |
|
|
|
|
case 15: |
|
|
|
|
#line 163 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 168 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
{te = p;p--;{ found_syllable (broken_cluster); }} |
|
|
|
|
break; |
|
|
|
|
case 16: |
|
|
|
|
#line 164 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 169 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
{te = p;p--;{ found_syllable (non_cluster); }} |
|
|
|
|
break; |
|
|
|
|
case 1: |
|
|
|
|
#line 163 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 168 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
{{p = ((te))-1;}{ found_syllable (broken_cluster); }} |
|
|
|
|
break; |
|
|
|
|
#line 517 "hb-ot-shape-complex-use-machine.hh" |
|
|
|
|
#line 518 "hb-ot-shape-complex-use-machine.hh" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
_again: |
|
|
|
@ -522,7 +523,7 @@ _again: |
|
|
|
|
#line 1 "NONE" |
|
|
|
|
{ts = 0;} |
|
|
|
|
break; |
|
|
|
|
#line 526 "hb-ot-shape-complex-use-machine.hh" |
|
|
|
|
#line 527 "hb-ot-shape-complex-use-machine.hh" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ( ++p != pe ) |
|
|
|
@ -538,7 +539,7 @@ _again: |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#line 217 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
#line 222 "hb-ot-shape-complex-use-machine.rl" |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|