Behdad Esfahbod 3 years ago
parent eb2f2e318a
commit e1826c3714
  1. 2
      src/hb-ot-shaper-indic.hh
  2. 232
      src/hb-ot-shaper-khmer-machine.hh
  3. 2
      src/hb-ot-shaper-khmer-machine.rl

@ -76,7 +76,7 @@ enum ot_category_t {
OT_VPst = 23,
/* Khmer. */
OT_Coeng = 24,
OT_Coeng = OT_H,
OT_Robatic = 25,
OT_Xgroup = 26,
OT_Ygroup = 27,

@ -50,7 +50,7 @@ enum khmer_syllable_type_t {
#line 52 "hb-ot-shaper-khmer-machine.hh"
#define khmer_syllable_machine_ex_C 1u
#define khmer_syllable_machine_ex_Coeng 24u
#define khmer_syllable_machine_ex_Coeng 4u
#define khmer_syllable_machine_ex_DOTTEDCIRCLE 11u
#define khmer_syllable_machine_ex_PLACEHOLDER 10u
#define khmer_syllable_machine_ex_Ra 15u
@ -68,28 +68,28 @@ enum khmer_syllable_type_t {
#line 70 "hb-ot-shaper-khmer-machine.hh"
static const unsigned char _khmer_syllable_machine_trans_keys[] = {
5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 1u, 15u, 5u, 26u, 5u, 26u,
5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 1u, 15u, 5u, 26u,
5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 1u, 27u, 5u, 27u, 5u, 27u, 5u, 27u,
5u, 27u, 27u, 27u, 5u, 27u, 5u, 27u, 5u, 27u, 1u, 15u, 5u, 26u, 5u, 27u,
5u, 27u, 5u, 27u, 27u, 27u, 5u, 27u, 5u, 27u, 1u, 15u, 5u, 27u, 5u, 27u,
5u, 26u, 5u, 26u, 1u, 15u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u,
5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 1u, 15u, 5u, 26u, 5u, 26u, 5u, 26u,
5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 1u, 27u, 4u, 27u, 1u, 15u, 4u, 27u,
27u, 27u, 4u, 27u, 4u, 27u, 4u, 27u, 4u, 27u, 4u, 27u, 1u, 15u, 4u, 27u,
4u, 27u, 27u, 27u, 4u, 27u, 4u, 27u, 4u, 27u, 4u, 27u, 4u, 27u, 5u, 26u,
0
};
static const char _khmer_syllable_machine_key_spans[] = {
22, 22, 22, 22, 22, 15, 22, 22,
22, 22, 22, 22, 22, 22, 15, 22,
22, 22, 22, 22, 27, 23, 23, 23,
23, 1, 23, 23, 23, 15, 22, 23,
23, 23, 1, 23, 23, 15, 23, 23
22, 22, 15, 22, 22, 22, 22, 22,
22, 22, 22, 22, 15, 22, 22, 22,
22, 22, 22, 22, 27, 24, 15, 24,
1, 24, 24, 24, 24, 24, 15, 24,
24, 1, 24, 24, 24, 24, 24, 22
};
static const short _khmer_syllable_machine_index_offsets[] = {
0, 23, 46, 69, 92, 115, 131, 154,
177, 200, 223, 246, 269, 292, 315, 331,
354, 377, 400, 423, 446, 474, 498, 522,
546, 570, 572, 596, 620, 644, 660, 683,
707, 731, 755, 757, 781, 805, 821, 845
0, 23, 46, 62, 85, 108, 131, 154,
177, 200, 223, 246, 269, 285, 308, 331,
354, 377, 400, 423, 446, 474, 499, 515,
540, 542, 567, 592, 617, 642, 667, 683,
708, 733, 735, 760, 785, 810, 835, 860
};
static const char _khmer_syllable_machine_indicies[] = {
@ -98,16 +98,16 @@ static const char _khmer_syllable_machine_indicies[] = {
0, 0, 0, 0, 3, 4, 0, 1,
1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 4, 0, 1, 1,
0, 0, 0, 0, 4, 0, 5, 5,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 0, 0,
0, 0, 0, 4, 0, 5, 5, 0,
0, 0, 0, 0, 5, 0, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 0, 0,
0, 0, 0, 4, 0, 6, 6, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 2, 0, 6, 6, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 2, 0, 7, 7, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 7, 0, 8, 8, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 8, 0, 9, 9, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
@ -122,104 +122,106 @@ static const char _khmer_syllable_machine_indicies[] = {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 12, 0, 14,
14, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 15, 13,
13, 13, 13, 16, 17, 13, 14, 14,
18, 18, 18, 18, 18, 18, 18, 18,
18, 18, 18, 18, 18, 18, 18, 18,
18, 18, 18, 17, 18, 19, 19, 13,
13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 19, 13, 14, 14, 13,
13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 15, 13, 13, 13,
13, 13, 17, 13, 20, 20, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13,
13, 15, 13, 21, 21, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 15, 13, 14, 14,
16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 17, 16, 16,
16, 16, 16, 15, 16, 18, 18, 16,
16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 17, 16, 19, 19, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16,
16, 20, 16, 21, 21, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16,
16, 21, 16, 22, 22, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 17, 16, 16, 16, 16, 16,
23, 16, 22, 22, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 23,
16, 24, 24, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16,
17, 16, 16, 16, 16, 16, 25, 16,
24, 24, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 25, 16, 14,
14, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 17, 16,
16, 16, 16, 26, 15, 16, 28, 28,
27, 27, 29, 29, 27, 27, 27, 3,
22, 13, 23, 23, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13,
13, 15, 13, 13, 13, 13, 13, 24,
13, 23, 23, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 24, 13,
25, 25, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 15,
13, 13, 13, 13, 13, 26, 13, 25,
25, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 26, 13, 28, 28,
27, 29, 30, 30, 27, 27, 27, 3,
3, 27, 27, 27, 28, 27, 27, 27,
27, 17, 23, 25, 20, 30, 27, 15,
21, 27, 32, 32, 31, 31, 31, 31,
27, 15, 24, 26, 22, 27, 27, 17,
19, 27, 32, 33, 33, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31,
31, 2, 10, 12, 7, 33, 3, 4,
8, 31, 34, 34, 31, 31, 31, 31,
31, 31, 2, 10, 12, 8, 31, 3,
4, 5, 31, 28, 28, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31,
31, 2, 10, 12, 7, 35, 31, 4,
8, 31, 5, 5, 31, 31, 31, 31,
31, 28, 31, 34, 35, 35, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 7, 35, 31, 2,
8, 31, 6, 6, 31, 31, 31, 31,
31, 31, 31, 2, 10, 12, 8, 31,
31, 4, 5, 31, 5, 31, 34, 6,
6, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 35, 31, 7,
8, 31, 8, 31, 36, 36, 31, 31,
31, 8, 31, 31, 2, 5, 31, 34,
7, 7, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 2, 31, 31, 7, 35,
31, 10, 8, 31, 37, 37, 31, 31,
31, 31, 31, 31, 31, 8, 5, 31,
34, 36, 36, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 2, 10, 31, 7, 35,
31, 12, 8, 31, 34, 34, 31, 31,
2, 31, 31, 8, 31, 31, 10, 5,
31, 34, 37, 37, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 2, 10, 12, 7, 33,
31, 4, 8, 31, 28, 28, 31, 31,
31, 2, 10, 31, 8, 31, 31, 12,
5, 31, 32, 35, 35, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 28, 31, 14, 14, 38, 38,
31, 31, 2, 10, 12, 8, 31, 31,
4, 5, 31, 39, 39, 38, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38,
38, 39, 38, 29, 40, 40, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38,
38, 38, 38, 15, 24, 26, 22, 38,
16, 17, 19, 38, 41, 42, 42, 38,
38, 38, 38, 38, 38, 38, 38, 38,
38, 38, 38, 38, 15, 24, 26, 22,
38, 38, 17, 19, 38, 19, 38, 41,
20, 20, 38, 38, 38, 38, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38,
38, 38, 38, 17, 38, 38, 38, 38,
38, 15, 38, 40, 40, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 17, 23, 25, 20, 41, 39,
15, 21, 39, 18, 18, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 20, 41, 39,
17, 21, 39, 19, 19, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 41, 39,
20, 21, 39, 21, 39, 42, 42, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 17, 39, 39, 20,
41, 39, 23, 21, 39, 43, 43, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 17, 23, 39, 20,
41, 39, 25, 21, 39, 44, 44, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 44, 39, 45, 45, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 17, 23, 25, 20,
30, 26, 15, 21, 39, 40, 40, 39,
39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 17, 23, 25, 20,
30, 39, 15, 21, 39, 0
38, 38, 22, 38, 38, 15, 19, 38,
41, 21, 21, 38, 38, 38, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38,
38, 38, 38, 38, 38, 38, 22, 19,
38, 41, 43, 43, 38, 38, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38,
38, 15, 38, 38, 22, 38, 38, 24,
19, 38, 41, 44, 44, 38, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38,
38, 38, 15, 24, 38, 22, 38, 38,
26, 19, 38, 29, 42, 42, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38,
38, 38, 38, 15, 24, 26, 22, 38,
38, 17, 19, 38, 14, 14, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 15, 45, 45, 45, 45,
45, 17, 45, 0
};
static const char _khmer_syllable_machine_trans_targs[] = {
20, 1, 23, 28, 22, 3, 4, 24,
25, 7, 26, 9, 27, 20, 10, 31,
20, 32, 12, 13, 33, 34, 16, 35,
18, 36, 39, 20, 21, 30, 37, 20,
0, 29, 2, 5, 6, 8, 20, 20,
11, 14, 15, 17, 38, 19
20, 1, 25, 29, 23, 24, 4, 5,
26, 7, 27, 9, 28, 20, 11, 34,
38, 32, 20, 33, 14, 15, 35, 17,
36, 19, 37, 20, 21, 30, 39, 20,
22, 0, 2, 3, 6, 8, 20, 31,
10, 12, 13, 16, 18, 20
};
static const char _khmer_syllable_machine_trans_actions[] = {
1, 0, 2, 2, 2, 0, 0, 2,
0, 0, 2, 0, 2, 3, 0, 4,
5, 2, 0, 0, 2, 0, 0, 2,
0, 2, 4, 8, 2, 9, 0, 10,
0, 0, 0, 0, 0, 0, 11, 12,
0, 0, 0, 0, 4, 0
1, 0, 2, 2, 2, 0, 0, 0,
2, 0, 2, 0, 2, 3, 0, 2,
4, 4, 5, 0, 0, 0, 2, 0,
2, 0, 2, 8, 2, 0, 9, 10,
0, 0, 0, 0, 0, 0, 11, 4,
0, 0, 0, 0, 0, 12
};
static const char _khmer_syllable_machine_to_state_actions[] = {
@ -240,10 +242,10 @@ static const char _khmer_syllable_machine_from_state_actions[] = {
static const unsigned char _khmer_syllable_machine_eof_trans[] = {
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 14, 17, 17, 17, 17, 17,
17, 17, 17, 17, 0, 32, 32, 32,
32, 32, 32, 32, 32, 32, 39, 40,
40, 40, 40, 40, 40, 40, 40, 40
1, 1, 14, 19, 14, 14, 14, 14,
14, 14, 14, 14, 0, 32, 32, 32,
32, 32, 32, 32, 32, 32, 39, 39,
39, 39, 39, 39, 39, 39, 39, 46
};
static const int khmer_syllable_machine_start = 20;
@ -276,7 +278,7 @@ find_syllables_khmer (hb_buffer_t *buffer)
int cs;
hb_glyph_info_t *info = buffer->info;
#line 280 "hb-ot-shaper-khmer-machine.hh"
#line 282 "hb-ot-shaper-khmer-machine.hh"
{
cs = khmer_syllable_machine_start;
ts = 0;
@ -292,7 +294,7 @@ find_syllables_khmer (hb_buffer_t *buffer)
unsigned int syllable_serial = 1;
#line 296 "hb-ot-shaper-khmer-machine.hh"
#line 298 "hb-ot-shaper-khmer-machine.hh"
{
int _slen;
int _trans;
@ -306,7 +308,7 @@ _resume:
#line 1 "NONE"
{ts = p;}
break;
#line 310 "hb-ot-shaper-khmer-machine.hh"
#line 312 "hb-ot-shaper-khmer-machine.hh"
}
_keys = _khmer_syllable_machine_trans_keys + (cs<<1);
@ -336,11 +338,11 @@ _eof_trans:
#line 96 "hb-ot-shaper-khmer-machine.rl"
{te = p;p--;{ found_syllable (khmer_consonant_syllable); }}
break;
case 12:
case 11:
#line 97 "hb-ot-shaper-khmer-machine.rl"
{te = p;p--;{ found_syllable (khmer_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
break;
case 11:
case 12:
#line 98 "hb-ot-shaper-khmer-machine.rl"
{te = p;p--;{ found_syllable (khmer_non_khmer_cluster); }}
break;
@ -348,11 +350,11 @@ _eof_trans:
#line 96 "hb-ot-shaper-khmer-machine.rl"
{{p = ((te))-1;}{ found_syllable (khmer_consonant_syllable); }}
break;
case 5:
case 3:
#line 97 "hb-ot-shaper-khmer-machine.rl"
{{p = ((te))-1;}{ found_syllable (khmer_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
break;
case 3:
case 5:
#line 1 "NONE"
{ switch( act ) {
case 2:
@ -376,7 +378,7 @@ _eof_trans:
#line 98 "hb-ot-shaper-khmer-machine.rl"
{act = 3;}
break;
#line 380 "hb-ot-shaper-khmer-machine.hh"
#line 382 "hb-ot-shaper-khmer-machine.hh"
}
_again:
@ -385,7 +387,7 @@ _again:
#line 1 "NONE"
{ts = 0;}
break;
#line 389 "hb-ot-shaper-khmer-machine.hh"
#line 391 "hb-ot-shaper-khmer-machine.hh"
}
if ( ++p != pe )

@ -70,7 +70,7 @@ export VBlw = 21;
export VPre = 22;
export VPst = 23;
export Coeng = 24;
export Coeng = 4;
export Robatic = 25;
export Xgroup = 26;
export Ygroup = 27;

Loading…
Cancel
Save