[indic/khmer/myanmar] Add Khmer/Myanmar categories to indic_category_t

This commit is contained in:
Behdad Esfahbod 2022-06-09 13:30:00 -06:00
parent 25793075e2
commit 40aa4e8320
5 changed files with 474 additions and 390 deletions

View File

@ -57,19 +57,35 @@ enum indic_category_t {
OT_PLACEHOLDER = 10,
OT_DOTTEDCIRCLE = 11,
OT_RS = 12, /* Register Shifter, used in Khmer OT spec. */
OT_Coeng = 13, /* Khmer-style Virama. */
OT_Repha = 14, /* Atomically-encoded logical or visual repha. */
OT_Ra = 15,
OT_CM = 16, /* Consonant-Medial. */
OT_Symbol = 17, /* Avagraha, etc that take marks (SM,A,VD). */
OT_CS = 18,
/* The following are used by Khmer & Myanmar shapers. Defined
* here for them to share. */
OT_VAbv = 26,
OT_VBlw = 27,
OT_VPre = 28,
OT_VPst = 29,
/* Khmer & Myanmar shapers. */
OT_VAbv = 20,
OT_VBlw = 21,
OT_VPre = 22,
OT_VPst = 23,
/* Khmer. */
OT_Coeng = 24,
OT_Robatic = 25,
OT_Xgroup = 26,
OT_Ygroup = 27,
/* Myanmar */
OT_As = 32, // Asat
OT_D0 = 33, // Digit zero
OT_MH = 34, // Medial
OT_MR = 35, // Medial
OT_MW = 36, // Medial
OT_MY = 37, // Medial
OT_PT = 38, // Pwo and other tones
OT_VS = 39, // Variation selectors
OT_P = 40, // Punctuation
OT_ML = 41, // Consonant medials
};
#define MEDIAL_FLAGS (FLAG (OT_CM))

View File

@ -50,169 +50,173 @@ 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 13u
#define khmer_syllable_machine_ex_Coeng 24u
#define khmer_syllable_machine_ex_DOTTEDCIRCLE 11u
#define khmer_syllable_machine_ex_PLACEHOLDER 10u
#define khmer_syllable_machine_ex_Ra 15u
#define khmer_syllable_machine_ex_Robatic 20u
#define khmer_syllable_machine_ex_Robatic 25u
#define khmer_syllable_machine_ex_V 2u
#define khmer_syllable_machine_ex_VAbv 26u
#define khmer_syllable_machine_ex_VBlw 27u
#define khmer_syllable_machine_ex_VPre 28u
#define khmer_syllable_machine_ex_VPst 29u
#define khmer_syllable_machine_ex_Xgroup 21u
#define khmer_syllable_machine_ex_Ygroup 22u
#define khmer_syllable_machine_ex_VAbv 20u
#define khmer_syllable_machine_ex_VBlw 21u
#define khmer_syllable_machine_ex_VPre 22u
#define khmer_syllable_machine_ex_VPst 23u
#define khmer_syllable_machine_ex_Xgroup 26u
#define khmer_syllable_machine_ex_Ygroup 27u
#define khmer_syllable_machine_ex_ZWJ 6u
#define khmer_syllable_machine_ex_ZWNJ 5u
#line 70 "hb-ot-shaper-khmer-machine.hh"
static const unsigned char _khmer_syllable_machine_trans_keys[] = {
5u, 26u, 5u, 21u, 5u, 26u, 5u, 21u, 1u, 15u, 5u, 21u, 5u, 26u, 5u, 21u,
5u, 26u, 5u, 21u, 5u, 21u, 5u, 26u, 5u, 21u, 1u, 15u, 5u, 21u, 5u, 26u,
5u, 21u, 5u, 26u, 5u, 21u, 5u, 26u, 1u, 29u, 5u, 29u, 5u, 29u, 5u, 29u,
22u, 22u, 5u, 22u, 5u, 29u, 5u, 29u, 5u, 29u, 1u, 15u, 5u, 26u, 5u, 29u,
5u, 29u, 22u, 22u, 5u, 22u, 5u, 29u, 5u, 29u, 1u, 15u, 5u, 29u, 5u, 29u,
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,
0
};
static const char _khmer_syllable_machine_key_spans[] = {
22, 17, 22, 17, 15, 17, 22, 17,
22, 17, 17, 22, 17, 15, 17, 22,
17, 22, 17, 22, 29, 25, 25, 25,
1, 18, 25, 25, 25, 15, 22, 25,
25, 1, 18, 25, 25, 15, 25, 25
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
};
static const short _khmer_syllable_machine_index_offsets[] = {
0, 23, 41, 64, 82, 98, 116, 139,
157, 180, 198, 216, 239, 257, 273, 291,
314, 332, 355, 373, 396, 426, 452, 478,
504, 506, 525, 551, 577, 603, 619, 642,
668, 694, 696, 715, 741, 767, 783, 809
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
};
static const char _khmer_syllable_machine_indicies[] = {
1, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 2,
3, 0, 0, 0, 0, 4, 0, 1,
0, 0, 0, 0, 3, 4, 0, 1,
1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 3,
0, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 3, 0, 0, 0, 0, 4, 0,
5, 5, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 4, 0, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0,
4, 0, 6, 6, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 0, 0,
0, 0, 0, 4, 0, 5, 5, 0,
0, 0, 0, 0, 0, 0, 0, 0,
6, 0, 7, 7, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 8, 0, 9, 9, 0, 0,
0, 0, 2, 0, 6, 6, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 10, 0, 0, 0,
0, 4, 0, 9, 9, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 10, 0, 11, 11, 0,
0, 7, 0, 8, 8, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 12, 0, 0,
0, 0, 4, 0, 11, 11, 0, 0,
0, 8, 0, 9, 9, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 12, 0, 14, 14,
0, 0, 2, 0, 0, 0, 0, 0,
10, 0, 9, 9, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 10,
0, 11, 11, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
2, 0, 0, 0, 0, 0, 12, 0,
11, 11, 0, 0, 0, 0, 0, 0,
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, 13, 13,
13, 13, 13, 13, 13, 13, 15, 13,
14, 14, 16, 16, 16, 16, 16, 16,
13, 13, 13, 13, 15, 13, 14, 14,
16, 16, 16, 16, 16, 16, 16, 16,
15, 16, 16, 16, 16, 17, 16, 18,
18, 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, 19,
16, 20, 20, 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, 16, 23, 16, 16, 16, 16,
17, 16, 22, 22, 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, 23, 16, 24, 24, 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,
16, 16, 16, 16, 25, 16, 16, 16,
16, 17, 16, 24, 24, 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, 25, 16, 14, 14, 16,
16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 26, 15, 16, 16,
16, 16, 17, 16, 28, 28, 27, 27,
29, 29, 27, 27, 27, 2, 2, 27,
30, 27, 28, 27, 27, 27, 27, 27,
15, 19, 27, 27, 27, 17, 23, 25,
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,
3, 27, 27, 27, 28, 27, 27, 27,
27, 17, 23, 25, 20, 30, 27, 15,
21, 27, 32, 32, 31, 31, 31, 31,
31, 31, 33, 31, 31, 31, 31, 31,
31, 2, 3, 6, 31, 31, 31, 4,
10, 12, 8, 31, 34, 34, 31, 31,
31, 31, 31, 31, 35, 31, 31, 31,
31, 31, 31, 31, 3, 6, 31, 31,
31, 4, 10, 12, 8, 31, 5, 5,
31, 31, 31, 31, 31, 31, 35, 31,
31, 31, 31, 31, 31, 31, 4, 6,
31, 31, 31, 31, 31, 31, 8, 31,
6, 31, 7, 7, 31, 31, 31, 31,
31, 31, 35, 31, 31, 31, 31, 31,
31, 31, 8, 6, 31, 36, 36, 31,
31, 31, 31, 31, 31, 35, 31, 31,
31, 31, 31, 31, 31, 10, 6, 31,
31, 31, 4, 31, 31, 8, 31, 37,
37, 31, 31, 31, 31, 31, 31, 35,
31, 31, 31, 31, 31, 31, 31, 12,
6, 31, 31, 31, 4, 10, 31, 8,
31, 34, 34, 31, 31, 31, 31, 31,
31, 33, 31, 31, 31, 31, 31, 31,
31, 3, 6, 31, 31, 31, 4, 10,
12, 8, 31, 28, 28, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31,
31, 28, 31, 14, 14, 38, 38, 38,
31, 2, 10, 12, 7, 33, 3, 4,
8, 31, 34, 34, 31, 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, 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, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 35, 31, 7,
8, 31, 8, 31, 36, 36, 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, 31, 31, 31,
31, 31, 31, 2, 10, 31, 7, 35,
31, 12, 8, 31, 34, 34, 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, 31, 31, 31, 31, 31, 31, 31,
31, 31, 28, 31, 14, 14, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38,
38, 38, 38, 15, 38, 38, 38, 38,
17, 38, 40, 40, 39, 39, 39, 39,
39, 39, 41, 39, 39, 39, 39, 39,
39, 39, 15, 19, 39, 39, 39, 17,
23, 25, 21, 39, 18, 18, 39, 39,
39, 39, 39, 39, 41, 39, 39, 39,
39, 39, 39, 39, 17, 19, 39, 39,
39, 39, 39, 39, 21, 39, 19, 39,
20, 20, 39, 39, 39, 39, 39, 39,
41, 39, 39, 39, 39, 39, 39, 39,
21, 19, 39, 42, 42, 39, 39, 39,
39, 39, 39, 41, 39, 39, 39, 39,
39, 39, 39, 23, 19, 39, 39, 39,
17, 39, 39, 21, 39, 43, 43, 39,
39, 39, 39, 39, 39, 41, 39, 39,
39, 39, 39, 39, 39, 25, 19, 39,
39, 39, 17, 23, 39, 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, 30,
39, 39, 39, 39, 39, 39, 26, 15,
19, 39, 39, 39, 17, 23, 25, 21,
39, 40, 40, 39, 39, 39, 39, 39,
39, 30, 39, 39, 39, 39, 39, 39,
39, 15, 19, 39, 39, 39, 17, 23,
25, 21, 39, 0
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
};
static const char _khmer_syllable_machine_trans_targs[] = {
20, 1, 28, 22, 23, 3, 24, 5,
20, 1, 23, 28, 22, 3, 4, 24,
25, 7, 26, 9, 27, 20, 10, 31,
20, 32, 12, 33, 14, 34, 16, 35,
20, 32, 12, 13, 33, 34, 16, 35,
18, 36, 39, 20, 21, 30, 37, 20,
0, 29, 2, 4, 6, 8, 20, 20,
11, 13, 15, 17, 38, 19
0, 29, 2, 5, 6, 8, 20, 20,
11, 14, 15, 17, 38, 19
};
static const char _khmer_syllable_machine_trans_actions[] = {
1, 0, 2, 2, 2, 0, 0, 0,
2, 0, 2, 0, 2, 3, 0, 4,
5, 2, 0, 0, 0, 2, 0, 2,
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
@ -253,7 +257,7 @@ static const int khmer_syllable_machine_en_main = 20;
#line 96 "hb-ot-shaper-khmer-machine.rl"
#line 98 "hb-ot-shaper-khmer-machine.rl"
#define found_syllable(syllable_type) \
@ -272,7 +276,7 @@ find_syllables_khmer (hb_buffer_t *buffer)
int cs;
hb_glyph_info_t *info = buffer->info;
#line 276 "hb-ot-shaper-khmer-machine.hh"
#line 280 "hb-ot-shaper-khmer-machine.hh"
{
cs = khmer_syllable_machine_start;
ts = 0;
@ -280,7 +284,7 @@ find_syllables_khmer (hb_buffer_t *buffer)
act = 0;
}
#line 116 "hb-ot-shaper-khmer-machine.rl"
#line 118 "hb-ot-shaper-khmer-machine.rl"
p = 0;
@ -288,7 +292,7 @@ find_syllables_khmer (hb_buffer_t *buffer)
unsigned int syllable_serial = 1;
#line 292 "hb-ot-shaper-khmer-machine.hh"
#line 296 "hb-ot-shaper-khmer-machine.hh"
{
int _slen;
int _trans;
@ -302,7 +306,7 @@ _resume:
#line 1 "NONE"
{ts = p;}
break;
#line 306 "hb-ot-shaper-khmer-machine.hh"
#line 310 "hb-ot-shaper-khmer-machine.hh"
}
_keys = _khmer_syllable_machine_trans_keys + (cs<<1);
@ -325,27 +329,27 @@ _eof_trans:
{te = p+1;}
break;
case 8:
#line 92 "hb-ot-shaper-khmer-machine.rl"
#line 94 "hb-ot-shaper-khmer-machine.rl"
{te = p+1;{ found_syllable (khmer_non_khmer_cluster); }}
break;
case 10:
#line 90 "hb-ot-shaper-khmer-machine.rl"
#line 92 "hb-ot-shaper-khmer-machine.rl"
{te = p;p--;{ found_syllable (khmer_consonant_syllable); }}
break;
case 12:
#line 91 "hb-ot-shaper-khmer-machine.rl"
#line 93 "hb-ot-shaper-khmer-machine.rl"
{te = p;p--;{ found_syllable (khmer_broken_cluster); }}
break;
case 11:
#line 92 "hb-ot-shaper-khmer-machine.rl"
#line 94 "hb-ot-shaper-khmer-machine.rl"
{te = p;p--;{ found_syllable (khmer_non_khmer_cluster); }}
break;
case 1:
#line 90 "hb-ot-shaper-khmer-machine.rl"
#line 92 "hb-ot-shaper-khmer-machine.rl"
{{p = ((te))-1;}{ found_syllable (khmer_consonant_syllable); }}
break;
case 5:
#line 91 "hb-ot-shaper-khmer-machine.rl"
#line 93 "hb-ot-shaper-khmer-machine.rl"
{{p = ((te))-1;}{ found_syllable (khmer_broken_cluster); }}
break;
case 3:
@ -363,16 +367,16 @@ _eof_trans:
case 4:
#line 1 "NONE"
{te = p+1;}
#line 91 "hb-ot-shaper-khmer-machine.rl"
#line 93 "hb-ot-shaper-khmer-machine.rl"
{act = 2;}
break;
case 9:
#line 1 "NONE"
{te = p+1;}
#line 92 "hb-ot-shaper-khmer-machine.rl"
#line 94 "hb-ot-shaper-khmer-machine.rl"
{act = 3;}
break;
#line 376 "hb-ot-shaper-khmer-machine.hh"
#line 380 "hb-ot-shaper-khmer-machine.hh"
}
_again:
@ -381,7 +385,7 @@ _again:
#line 1 "NONE"
{ts = 0;}
break;
#line 385 "hb-ot-shaper-khmer-machine.hh"
#line 389 "hb-ot-shaper-khmer-machine.hh"
}
if ( ++p != pe )
@ -397,7 +401,7 @@ _again:
}
#line 124 "hb-ot-shaper-khmer-machine.rl"
#line 126 "hb-ot-shaper-khmer-machine.rl"
}

View File

@ -60,15 +60,17 @@ export ZWNJ = 5;
export ZWJ = 6;
export PLACEHOLDER = 10;
export DOTTEDCIRCLE = 11;
export Coeng= 13;
export Ra = 15;
export Robatic = 20;
export Xgroup = 21;
export Ygroup = 22;
export VAbv = 26;
export VBlw = 27;
export VPre = 28;
export VPst = 29;
export VAbv = 20;
export VBlw = 21;
export VPre = 22;
export VPst = 23;
export Coeng = 24;
export Robatic = 25;
export Xgroup = 26;
export Ygroup = 27;
c = (C | Ra | V);
cn = c.((ZWJ|ZWNJ)?.Robatic)?;

View File

@ -53,265 +53,324 @@ enum myanmar_syllable_type_t {
#line 55 "hb-ot-shaper-myanmar-machine.hh"
#define myanmar_syllable_machine_ex_A 9u
#define myanmar_syllable_machine_ex_As 18u
#define myanmar_syllable_machine_ex_As 32u
#define myanmar_syllable_machine_ex_C 1u
#define myanmar_syllable_machine_ex_CS 19u
#define myanmar_syllable_machine_ex_CS 18u
#define myanmar_syllable_machine_ex_D 10u
#define myanmar_syllable_machine_ex_D0 20u
#define myanmar_syllable_machine_ex_D0 33u
#define myanmar_syllable_machine_ex_DB 3u
#define myanmar_syllable_machine_ex_GB 10u
#define myanmar_syllable_machine_ex_H 4u
#define myanmar_syllable_machine_ex_IV 2u
#define myanmar_syllable_machine_ex_MH 21u
#define myanmar_syllable_machine_ex_ML 32u
#define myanmar_syllable_machine_ex_MR 22u
#define myanmar_syllable_machine_ex_MW 23u
#define myanmar_syllable_machine_ex_MY 24u
#define myanmar_syllable_machine_ex_P 31u
#define myanmar_syllable_machine_ex_PT 25u
#define myanmar_syllable_machine_ex_MH 34u
#define myanmar_syllable_machine_ex_ML 41u
#define myanmar_syllable_machine_ex_MR 35u
#define myanmar_syllable_machine_ex_MW 36u
#define myanmar_syllable_machine_ex_MY 37u
#define myanmar_syllable_machine_ex_P 40u
#define myanmar_syllable_machine_ex_PT 38u
#define myanmar_syllable_machine_ex_Ra 15u
#define myanmar_syllable_machine_ex_V 8u
#define myanmar_syllable_machine_ex_VAbv 26u
#define myanmar_syllable_machine_ex_VBlw 27u
#define myanmar_syllable_machine_ex_VPre 28u
#define myanmar_syllable_machine_ex_VPst 29u
#define myanmar_syllable_machine_ex_VS 30u
#define myanmar_syllable_machine_ex_VAbv 20u
#define myanmar_syllable_machine_ex_VBlw 21u
#define myanmar_syllable_machine_ex_VPre 22u
#define myanmar_syllable_machine_ex_VPst 23u
#define myanmar_syllable_machine_ex_VS 39u
#define myanmar_syllable_machine_ex_ZWJ 6u
#define myanmar_syllable_machine_ex_ZWNJ 5u
#line 84 "hb-ot-shaper-myanmar-machine.hh"
static const unsigned char _myanmar_syllable_machine_trans_keys[] = {
1u, 32u, 3u, 32u, 5u, 29u, 5u, 8u, 5u, 29u, 3u, 25u, 5u, 25u, 5u, 25u,
3u, 32u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 32u, 1u, 15u, 3u, 32u, 3u, 32u,
3u, 29u, 3u, 29u, 3u, 29u, 3u, 30u, 3u, 29u, 3u, 32u, 3u, 32u, 3u, 32u,
3u, 32u, 3u, 32u, 5u, 29u, 5u, 8u, 5u, 29u, 3u, 25u, 5u, 25u, 5u, 25u,
3u, 32u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 32u, 1u, 15u, 3u, 32u, 3u, 32u,
3u, 32u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 30u, 3u, 29u, 3u, 32u, 3u, 32u,
3u, 32u, 3u, 32u, 3u, 32u, 3u, 32u, 3u, 32u, 1u, 32u, 1u, 15u, 8u, 8u,
1u, 41u, 3u, 41u, 5u, 38u, 5u, 8u, 3u, 41u, 3u, 38u, 3u, 38u, 5u, 38u,
5u, 38u, 3u, 38u, 3u, 38u, 3u, 41u, 5u, 38u, 1u, 15u, 3u, 38u, 3u, 38u,
3u, 39u, 3u, 38u, 3u, 41u, 3u, 41u, 3u, 38u, 3u, 41u, 3u, 41u, 3u, 41u,
3u, 41u, 3u, 41u, 5u, 38u, 5u, 8u, 3u, 41u, 3u, 38u, 3u, 38u, 5u, 38u,
5u, 38u, 3u, 38u, 3u, 38u, 3u, 41u, 5u, 38u, 1u, 15u, 3u, 41u, 3u, 38u,
3u, 38u, 3u, 39u, 3u, 38u, 3u, 41u, 3u, 41u, 3u, 38u, 3u, 41u, 3u, 41u,
3u, 41u, 3u, 41u, 3u, 41u, 3u, 41u, 3u, 41u, 1u, 41u, 1u, 15u, 8u, 8u,
0
};
static const char _myanmar_syllable_machine_key_spans[] = {
32, 30, 25, 4, 25, 23, 21, 21,
30, 27, 27, 27, 30, 15, 30, 30,
27, 27, 27, 28, 27, 30, 30, 30,
30, 30, 25, 4, 25, 23, 21, 21,
30, 27, 27, 27, 30, 15, 30, 30,
30, 27, 27, 27, 28, 27, 30, 30,
30, 30, 30, 30, 30, 32, 15, 1
41, 39, 34, 4, 39, 36, 36, 34,
34, 36, 36, 39, 34, 15, 36, 36,
37, 36, 39, 39, 36, 39, 39, 39,
39, 39, 34, 4, 39, 36, 36, 34,
34, 36, 36, 39, 34, 15, 39, 36,
36, 37, 36, 39, 39, 36, 39, 39,
39, 39, 39, 39, 39, 41, 15, 1
};
static const short _myanmar_syllable_machine_index_offsets[] = {
0, 33, 64, 90, 95, 121, 145, 167,
189, 220, 248, 276, 304, 335, 351, 382,
413, 441, 469, 497, 526, 554, 585, 616,
647, 678, 709, 735, 740, 766, 790, 812,
834, 865, 893, 921, 949, 980, 996, 1027,
1058, 1089, 1117, 1145, 1173, 1202, 1230, 1261,
1292, 1323, 1354, 1385, 1416, 1447, 1480, 1496
0, 42, 82, 117, 122, 162, 199, 236,
271, 306, 343, 380, 420, 455, 471, 508,
545, 583, 620, 660, 700, 737, 777, 817,
857, 897, 937, 972, 977, 1017, 1054, 1091,
1126, 1161, 1198, 1235, 1275, 1310, 1326, 1366,
1403, 1440, 1478, 1515, 1555, 1595, 1632, 1672,
1712, 1752, 1792, 1832, 1872, 1912, 1954, 1970
};
static const char _myanmar_syllable_machine_indicies[] = {
1, 1, 2, 3, 4, 4, 0, 5,
6, 1, 0, 0, 0, 0, 7, 0,
0, 8, 9, 0, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21,
0, 23, 24, 25, 25, 22, 26, 27,
0, 8, 0, 9, 10, 11, 12, 0,
0, 0, 0, 0, 0, 0, 0, 13,
0, 14, 15, 16, 17, 18, 19, 20,
21, 0, 23, 24, 25, 25, 22, 26,
27, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 28, 29, 30, 31, 22,
22, 22, 22, 22, 22, 22, 22, 32,
22, 33, 34, 35, 36, 37, 38, 22,
39, 22, 25, 25, 22, 26, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
28, 22, 22, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 22, 39, 22,
25, 25, 22, 26, 22, 22, 22, 22,
22, 22, 22, 22, 31, 22, 22, 22,
22, 22, 22, 22, 22, 40, 22, 22,
22, 22, 22, 22, 33, 22, 22, 22,
37, 22, 25, 25, 22, 26, 22, 25,
22, 22, 22, 37, 22, 25, 25, 22,
26, 22, 23, 22, 25, 25, 22, 26,
27, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 41, 22, 22, 31, 22,
22, 22, 22, 22, 22, 22, 22, 42,
22, 43, 22, 22, 22, 37, 22, 22,
42, 22, 23, 22, 25, 25, 22, 26,
27, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 31, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 37, 22, 44,
22, 25, 25, 22, 26, 37, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 45, 22, 22, 22,
22, 22, 37, 22, 25, 25, 22, 26,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 45,
22, 22, 22, 22, 22, 37, 22, 25,
25, 22, 26, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 33, 22, 22, 22, 37,
22, 41, 22, 25, 25, 22, 26, 33,
22, 22, 22, 22, 22, 22, 22, 22,
42, 22, 22, 22, 22, 22, 22, 33,
22, 25, 25, 22, 26, 22, 22, 22,
22, 22, 22, 22, 22, 22, 42, 22,
22, 22, 22, 22, 22, 33, 22, 25,
25, 22, 26, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 33, 22, 23, 22, 25,
25, 22, 26, 27, 22, 22, 22, 22,
22, 22, 22, 22, 43, 22, 22, 44,
22, 22, 22, 33, 45, 22, 22, 37,
22, 22, 43, 22, 23, 22, 25, 25,
22, 26, 27, 22, 22, 22, 22, 22,
37, 22, 23, 22, 25, 25, 22, 26,
27, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 41, 22, 22, 31, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 33, 22, 22, 22, 37, 22,
23, 22, 25, 25, 22, 26, 27, 22,
22, 22, 22, 22, 22, 22, 22, 43,
22, 22, 22, 22, 22, 22, 33, 45,
22, 22, 22, 22, 22, 37, 22, 23,
22, 25, 25, 22, 26, 27, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
41, 22, 22, 31, 22, 22, 22, 22,
22, 22, 22, 22, 42, 22, 22, 22,
22, 22, 37, 22, 23, 22, 25, 25,
22, 26, 27, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 41, 22, 22,
31, 22, 22, 22, 22, 22, 22, 22,
22, 42, 22, 22, 22, 22, 22, 37,
22, 22, 42, 22, 25, 25, 22, 26,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 33, 45, 22, 22, 37, 22,
23, 22, 25, 25, 22, 26, 27, 22,
22, 22, 22, 22, 22, 22, 22, 43,
22, 22, 22, 22, 22, 22, 33, 45,
22, 22, 37, 22, 22, 43, 22, 1,
22, 22, 22, 22, 22, 22, 31, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 37, 22, 1,
1, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 1, 22, 23,
22, 25, 25, 22, 26, 27, 22, 22,
22, 22, 22, 22, 22, 22, 28, 22,
22, 29, 30, 31, 32, 33, 34, 35,
36, 37, 22, 22, 39, 22, 23, 22,
25, 25, 22, 26, 27, 22, 22, 22,
22, 22, 22, 22, 22, 46, 22, 22,
22, 22, 22, 22, 33, 34, 35, 36,
37, 22, 22, 39, 22, 23, 22, 25,
25, 22, 26, 27, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 33, 34, 35, 36, 37,
28, 29, 22, 31, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 37, 22, 23, 22, 25, 25,
22, 26, 27, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 29, 22,
31, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 37,
22, 23, 22, 25, 25, 22, 26, 27,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 33,
34, 35, 22, 37, 22, 23, 22, 25,
25, 22, 26, 27, 22, 22, 22, 22,
22, 22, 28, 29, 30, 31, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 33, 22, 35, 22, 37,
22, 23, 22, 25, 25, 22, 26, 27,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 33,
34, 35, 36, 37, 46, 22, 23, 22,
25, 25, 22, 26, 27, 22, 22, 22,
22, 22, 22, 22, 22, 46, 22, 22,
22, 22, 22, 22, 33, 34, 35, 36,
37, 22, 23, 22, 25, 25, 22, 26,
27, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 29, 22, 31, 22,
33, 34, 35, 36, 37, 22, 22, 39,
22, 23, 22, 25, 25, 22, 26, 27,
22, 22, 22, 22, 22, 22, 22, 22,
46, 22, 22, 29, 22, 22, 22, 33,
34, 35, 36, 37, 22, 22, 39, 22,
23, 22, 25, 25, 22, 26, 27, 22,
22, 22, 22, 22, 22, 22, 22, 47,
22, 22, 29, 30, 31, 22, 33, 34,
35, 36, 37, 22, 22, 39, 22, 23,
22, 22, 22, 22, 37, 46, 22, 23,
22, 25, 25, 22, 26, 27, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 29, 30, 31, 22, 33, 34, 35,
36, 37, 22, 22, 39, 22, 23, 24,
25, 25, 22, 26, 27, 22, 22, 22,
22, 22, 22, 22, 22, 28, 22, 22,
29, 30, 31, 32, 33, 34, 35, 36,
37, 22, 22, 39, 22, 49, 49, 48,
5, 48, 48, 48, 48, 48, 48, 48,
48, 48, 50, 48, 48, 48, 48, 48,
48, 14, 48, 48, 48, 18, 48, 49,
49, 48, 5, 48, 49, 49, 48, 5,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
14, 48, 48, 48, 18, 48, 51, 48,
49, 49, 48, 5, 14, 48, 48, 48,
48, 48, 48, 48, 48, 52, 48, 48,
48, 48, 48, 48, 14, 48, 49, 49,
48, 5, 48, 48, 48, 48, 48, 48,
48, 48, 48, 52, 48, 48, 48, 48,
48, 48, 14, 48, 49, 49, 48, 5,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
14, 48, 2, 48, 49, 49, 48, 5,
6, 48, 48, 48, 48, 48, 48, 48,
48, 53, 48, 48, 54, 48, 48, 48,
14, 55, 48, 48, 18, 48, 48, 53,
48, 2, 48, 49, 49, 48, 5, 6,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 14,
48, 48, 48, 18, 48, 2, 48, 49,
49, 48, 5, 6, 48, 48, 48, 48,
48, 48, 48, 48, 53, 48, 48, 48,
48, 48, 48, 14, 55, 48, 48, 18,
48, 2, 48, 49, 49, 48, 5, 6,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 14,
55, 48, 48, 18, 48, 2, 48, 49,
49, 48, 5, 6, 48, 48, 48, 48,
48, 48, 48, 48, 53, 48, 48, 48,
48, 48, 48, 14, 55, 48, 48, 18,
48, 48, 53, 48, 56, 56, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 56, 48, 2, 3, 49, 49,
48, 5, 6, 48, 48, 48, 48, 48,
48, 48, 48, 8, 48, 48, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19,
48, 21, 48, 2, 48, 49, 49, 48,
5, 6, 48, 48, 48, 48, 48, 48,
48, 48, 8, 48, 48, 10, 11, 12,
13, 14, 15, 16, 17, 18, 48, 48,
21, 48, 2, 48, 49, 49, 48, 5,
6, 48, 48, 48, 48, 48, 48, 48,
48, 57, 48, 48, 48, 48, 48, 48,
14, 15, 16, 17, 18, 48, 48, 21,
48, 2, 48, 49, 49, 48, 5, 6,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 14,
15, 16, 17, 18, 48, 2, 48, 49,
49, 48, 5, 6, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 14, 15, 16, 48, 18,
48, 2, 48, 49, 49, 48, 5, 6,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 14,
48, 16, 48, 18, 48, 2, 48, 49,
49, 48, 5, 6, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 14, 15, 16, 17, 18,
57, 48, 2, 48, 49, 49, 48, 5,
6, 48, 48, 48, 48, 48, 48, 48,
48, 57, 48, 48, 48, 48, 48, 48,
14, 15, 16, 17, 18, 48, 2, 48,
49, 49, 48, 5, 6, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
10, 48, 12, 48, 14, 15, 16, 17,
18, 48, 48, 21, 48, 2, 48, 49,
49, 48, 5, 6, 48, 48, 48, 48,
48, 48, 48, 48, 57, 48, 48, 10,
48, 48, 48, 14, 15, 16, 17, 18,
48, 48, 21, 48, 2, 48, 49, 49,
48, 5, 6, 48, 48, 48, 48, 48,
48, 48, 48, 58, 48, 48, 10, 11,
12, 48, 14, 15, 16, 17, 18, 48,
48, 21, 48, 2, 48, 49, 49, 48,
5, 6, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 10, 11, 12,
48, 14, 15, 16, 17, 18, 48, 48,
21, 48, 2, 3, 49, 49, 48, 5,
6, 48, 48, 48, 48, 48, 48, 48,
48, 8, 48, 48, 10, 11, 12, 13,
14, 15, 16, 17, 18, 48, 48, 21,
48, 23, 24, 25, 25, 22, 26, 27,
28, 29, 30, 31, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
59, 22, 22, 29, 30, 31, 32, 33,
22, 22, 37, 22, 23, 22, 25, 25,
22, 26, 27, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 28, 29, 30,
31, 22, 22, 22, 22, 22, 22, 22,
22, 32, 22, 33, 34, 35, 36, 37,
22, 22, 39, 22, 23, 22, 25, 25,
22, 26, 27, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 28, 29, 30,
31, 22, 22, 22, 22, 22, 22, 22,
22, 46, 22, 22, 22, 22, 22, 37,
22, 22, 39, 22, 23, 22, 25, 25,
22, 26, 27, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 28, 29, 30,
31, 22, 22, 22, 22, 22, 22, 22,
22, 46, 22, 22, 22, 22, 22, 37,
22, 23, 22, 25, 25, 22, 26, 27,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 28, 29, 30, 31, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
33, 22, 35, 22, 37, 22, 22, 39,
22, 23, 22, 25, 25, 22, 26, 27,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 28, 29, 30, 31, 22, 22,
22, 22, 22, 22, 22, 22, 46, 22,
33, 22, 22, 22, 37, 22, 22, 39,
22, 23, 22, 25, 25, 22, 26, 27,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 28, 29, 30, 31, 22, 22,
22, 22, 22, 22, 22, 22, 47, 22,
33, 34, 35, 22, 37, 22, 22, 39,
22, 23, 22, 25, 25, 22, 26, 27,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 28, 29, 30, 31, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
33, 34, 35, 22, 37, 22, 22, 39,
22, 23, 24, 25, 25, 22, 26, 27,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 28, 29, 30, 31, 22, 22,
22, 22, 22, 22, 22, 22, 32, 22,
33, 34, 35, 36, 37, 22, 22, 39,
22, 49, 49, 48, 5, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 12, 48, 48, 48, 48,
48, 48, 48, 48, 50, 48, 48, 48,
48, 48, 18, 48, 49, 49, 48, 5,
48, 2, 48, 49, 49, 48, 5, 6,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 51, 48, 48, 12, 48, 48,
48, 48, 48, 48, 48, 48, 52, 48,
53, 48, 48, 48, 18, 48, 48, 52,
48, 2, 48, 49, 49, 48, 5, 6,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 12, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 18, 48, 54, 48,
49, 49, 48, 5, 18, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 55, 48, 48, 48, 48,
48, 18, 48, 49, 49, 48, 5, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 55, 48,
48, 48, 48, 48, 18, 48, 49, 49,
48, 5, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 18,
48, 2, 48, 49, 49, 48, 5, 6,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 51, 48, 48, 12, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 18, 48, 2, 48,
49, 49, 48, 5, 6, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 51,
48, 48, 12, 48, 48, 48, 48, 48,
48, 48, 48, 52, 48, 48, 48, 48,
48, 18, 48, 2, 48, 49, 49, 48,
5, 6, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 51, 48, 48, 12,
48, 48, 48, 48, 48, 48, 48, 48,
52, 48, 48, 48, 48, 48, 18, 48,
48, 52, 48, 49, 49, 48, 5, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 12, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 18, 48, 56, 56,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 56, 48, 2, 3,
49, 49, 48, 5, 6, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 9,
10, 11, 12, 48, 48, 48, 48, 48,
48, 48, 48, 13, 48, 14, 15, 16,
17, 18, 19, 48, 21, 48, 2, 48,
49, 49, 48, 5, 6, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 9,
10, 48, 12, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 18, 48, 2, 48, 49, 49, 48,
5, 6, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 10, 48, 12,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 18, 48,
2, 48, 49, 49, 48, 5, 6, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 9, 10, 11, 12, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 18, 57, 48, 2, 48,
49, 49, 48, 5, 6, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 9,
10, 11, 12, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 18, 48, 2, 48, 49, 49, 48,
5, 6, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 9, 10, 11, 12,
48, 48, 48, 48, 48, 48, 48, 48,
13, 48, 14, 15, 16, 17, 18, 48,
48, 21, 48, 2, 48, 49, 49, 48,
5, 6, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 9, 10, 11, 12,
48, 48, 48, 48, 48, 48, 48, 48,
57, 48, 48, 48, 48, 48, 18, 48,
48, 21, 48, 2, 48, 49, 49, 48,
5, 6, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 9, 10, 11, 12,
48, 48, 48, 48, 48, 48, 48, 48,
57, 48, 48, 48, 48, 48, 18, 48,
2, 48, 49, 49, 48, 5, 6, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 9, 10, 11, 12, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 14,
48, 16, 48, 18, 48, 48, 21, 48,
2, 48, 49, 49, 48, 5, 6, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 9, 10, 11, 12, 48, 48, 48,
48, 48, 48, 48, 48, 57, 48, 14,
48, 48, 48, 18, 48, 48, 21, 48,
2, 48, 49, 49, 48, 5, 6, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 9, 10, 11, 12, 48, 48, 48,
48, 48, 48, 48, 48, 58, 48, 14,
15, 16, 48, 18, 48, 48, 21, 48,
2, 48, 49, 49, 48, 5, 6, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 9, 10, 11, 12, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 14,
15, 16, 48, 18, 48, 48, 21, 48,
2, 3, 49, 49, 48, 5, 6, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 9, 10, 11, 12, 48, 48, 48,
48, 48, 48, 48, 48, 13, 48, 14,
15, 16, 17, 18, 48, 48, 21, 48,
23, 24, 25, 25, 22, 26, 27, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 28, 29, 30, 31, 22, 22, 22,
22, 22, 22, 22, 22, 59, 22, 33,
34, 35, 36, 37, 38, 22, 39, 22,
23, 60, 25, 25, 22, 26, 27, 22,
22, 22, 22, 22, 22, 22, 22, 28,
22, 22, 29, 30, 31, 32, 33, 34,
35, 36, 37, 22, 22, 39, 22, 1,
1, 2, 3, 49, 49, 48, 5, 6,
1, 48, 48, 48, 48, 1, 48, 48,
8, 48, 48, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 48, 21, 48,
1, 1, 61, 61, 61, 61, 61, 61,
61, 1, 61, 61, 61, 61, 1, 61,
62, 61, 0
22, 22, 22, 22, 22, 22, 22, 22,
22, 28, 29, 30, 31, 22, 22, 22,
22, 22, 22, 22, 22, 32, 22, 33,
34, 35, 36, 37, 22, 22, 39, 22,
1, 1, 2, 3, 49, 49, 48, 5,
6, 1, 48, 48, 48, 48, 1, 48,
48, 48, 48, 9, 10, 11, 12, 48,
48, 48, 48, 48, 48, 48, 48, 13,
48, 14, 15, 16, 17, 18, 19, 48,
21, 48, 1, 1, 61, 61, 61, 61,
61, 61, 61, 1, 61, 61, 61, 61,
1, 61, 62, 61, 0
};
static const char _myanmar_syllable_machine_trans_targs[] = {
0, 1, 26, 37, 0, 27, 33, 51,
39, 54, 40, 46, 47, 48, 29, 42,
43, 44, 32, 50, 55, 45, 0, 2,
13, 0, 3, 9, 14, 15, 21, 22,
23, 5, 17, 18, 19, 8, 25, 20,
4, 6, 7, 10, 12, 11, 16, 24,
0, 0, 28, 30, 31, 34, 36, 35,
38, 41, 49, 52, 53, 0, 0
0, 1, 26, 37, 0, 27, 29, 51,
54, 39, 40, 41, 28, 43, 44, 46,
47, 48, 30, 50, 55, 45, 0, 2,
13, 0, 3, 5, 14, 15, 16, 4,
18, 19, 21, 22, 23, 6, 25, 20,
12, 9, 10, 11, 7, 8, 17, 24,
0, 0, 36, 33, 34, 35, 31, 32,
38, 42, 49, 52, 53, 0, 0
};
static const char _myanmar_syllable_machine_trans_actions[] = {
@ -366,7 +425,7 @@ static const int myanmar_syllable_machine_en_main = 0;
#line 114 "hb-ot-shaper-myanmar-machine.rl"
#line 117 "hb-ot-shaper-myanmar-machine.rl"
#define found_syllable(syllable_type) \
@ -385,7 +444,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
int cs;
hb_glyph_info_t *info = buffer->info;
#line 389 "hb-ot-shaper-myanmar-machine.hh"
#line 448 "hb-ot-shaper-myanmar-machine.hh"
{
cs = myanmar_syllable_machine_start;
ts = 0;
@ -393,7 +452,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
act = 0;
}
#line 134 "hb-ot-shaper-myanmar-machine.rl"
#line 137 "hb-ot-shaper-myanmar-machine.rl"
p = 0;
@ -401,7 +460,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
unsigned int syllable_serial = 1;
#line 405 "hb-ot-shaper-myanmar-machine.hh"
#line 464 "hb-ot-shaper-myanmar-machine.hh"
{
int _slen;
int _trans;
@ -415,7 +474,7 @@ _resume:
#line 1 "NONE"
{ts = p;}
break;
#line 419 "hb-ot-shaper-myanmar-machine.hh"
#line 478 "hb-ot-shaper-myanmar-machine.hh"
}
_keys = _myanmar_syllable_machine_trans_keys + (cs<<1);
@ -434,38 +493,38 @@ _eof_trans:
switch ( _myanmar_syllable_machine_trans_actions[_trans] ) {
case 6:
#line 106 "hb-ot-shaper-myanmar-machine.rl"
#line 109 "hb-ot-shaper-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_consonant_syllable); }}
break;
case 4:
#line 107 "hb-ot-shaper-myanmar-machine.rl"
#line 110 "hb-ot-shaper-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
break;
case 10:
#line 108 "hb-ot-shaper-myanmar-machine.rl"
#line 111 "hb-ot-shaper-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_punctuation_cluster); }}
break;
case 8:
#line 109 "hb-ot-shaper-myanmar-machine.rl"
#line 112 "hb-ot-shaper-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_broken_cluster); }}
break;
case 3:
#line 110 "hb-ot-shaper-myanmar-machine.rl"
#line 113 "hb-ot-shaper-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
break;
case 5:
#line 106 "hb-ot-shaper-myanmar-machine.rl"
#line 109 "hb-ot-shaper-myanmar-machine.rl"
{te = p;p--;{ found_syllable (myanmar_consonant_syllable); }}
break;
case 7:
#line 109 "hb-ot-shaper-myanmar-machine.rl"
#line 112 "hb-ot-shaper-myanmar-machine.rl"
{te = p;p--;{ found_syllable (myanmar_broken_cluster); }}
break;
case 9:
#line 110 "hb-ot-shaper-myanmar-machine.rl"
#line 113 "hb-ot-shaper-myanmar-machine.rl"
{te = p;p--;{ found_syllable (myanmar_non_myanmar_cluster); }}
break;
#line 469 "hb-ot-shaper-myanmar-machine.hh"
#line 528 "hb-ot-shaper-myanmar-machine.hh"
}
_again:
@ -474,7 +533,7 @@ _again:
#line 1 "NONE"
{ts = 0;}
break;
#line 478 "hb-ot-shaper-myanmar-machine.hh"
#line 537 "hb-ot-shaper-myanmar-machine.hh"
}
if ( ++p != pe )
@ -490,7 +549,7 @@ _again:
}
#line 142 "hb-ot-shaper-myanmar-machine.rl"
#line 145 "hb-ot-shaper-myanmar-machine.rl"
}

View File

@ -57,32 +57,35 @@ enum myanmar_syllable_type_t {
%%{
export A = 9;
export As = 18; # Asat
export C = 1;
export D = 10; # Digits except zero = GB
export D0 = 20; # Digit zero
export DB = 3; # Dot below = OT_N
export GB = 10; # = OT_PLACEHOLDER
export H = 4;
export IV = 2;
export MH = 21; # Medial
export MR = 22; # Medial
export MW = 23; # Medial
export MY = 24; # Medial
export ML = 32; # Consonant medials
export PT = 25; # Pwo and other tones
export V = 8; # Visarga and Shan tones
export VAbv = 26;
export VBlw = 27;
export VPre = 28;
export VPst = 29;
export VS = 30; # Variation selectors
export ZWJ = 6;
export DB = 3; # Dot below = OT_N
export H = 4;
export ZWNJ = 5;
export ZWJ = 6;
export V = 8; # Visarga and Shan tones
export GB = 10; # = OT_PLACEHOLDER
export D = 10; # Digits except zero = GB
export A = 9;
export Ra = 15;
export P = 31; # Punctuation
export CS = 19;
export CS = 18;
export VAbv = 20;
export VBlw = 21;
export VPre = 22;
export VPst = 23;
export As = 32; # Asat
export D0 = 33; # Digit zero
export MH = 34; # Medial
export MR = 35; # Medial
export MW = 36; # Medial
export MY = 37; # Medial
export PT = 38; # Pwo and other tones
export VS = 39; # Variation selectors
export P = 40; # Punctuation
export ML = 41; # Consonant medials
j = ZWJ|ZWNJ; # Joiners
k = (Ra As H); # Kinzi