[myanmar] Fold category P into GB

Fixes https://github.com/harfbuzz/harfbuzz/issues/3649

This actually now allows Asat after the Myanmar punctuation marks;
something I see in Wikipedia data.
This commit is contained in:
Behdad Esfahbod 2022-06-11 08:57:21 -06:00
parent b350e30186
commit 2cbb775866
5 changed files with 312 additions and 333 deletions

View File

@ -130,7 +130,6 @@ categories = {
'MY',
'PT',
'VS',
'P',
'ML',
],
}
@ -372,8 +371,7 @@ category_overrides = {
0x109B: 'SM',
0x109C: 'SM',
0x104A: 'P',
0x104B: 'P',
0x104A: 'PLACEHOLDER',
}
position_overrides = {

View File

@ -62,8 +62,6 @@ static_assert (OT_VPre == M_Cat(VPre), "");
static_assert (OT_VPst == M_Cat(VPst), "");
#define OT_IV M_Cat(IV)
#define OT_As M_Cat(As)
#define OT_D M_Cat(D)
#define OT_D0 M_Cat(D0)
#define OT_DB M_Cat(DB)
#define OT_GB M_Cat(GB )
#define OT_MH M_Cat(MH)
@ -72,7 +70,6 @@ static_assert (OT_VPst == M_Cat(VPst), "");
#define OT_MY M_Cat(MY)
#define OT_PT M_Cat(PT)
#define OT_VS M_Cat(VS)
#define OT_P M_Cat(P)
#define OT_ML M_Cat(ML)
@ -90,8 +87,7 @@ static_assert (OT_VPst == M_Cat(VPst), "");
#define _OT_MW OT_MW /* 2 chars; MW */
#define _OT_MY OT_MY /* 3 chars; MY */
#define _OT_N OT_N /* 17 chars; N */
#define _OT_P OT_P /* 2 chars; P */
#define _OT_GB OT_PLACEHOLDER /* 172 chars; PLACEHOLDER */
#define _OT_GB OT_PLACEHOLDER /* 174 chars; PLACEHOLDER */
#define _OT_PT OT_PT /* 8 chars; PT */
#define _OT_R OT_Ra /* 15 chars; Ra */
#define _OT_Rf OT_Repha /* 1 chars; Repha */
@ -114,10 +110,10 @@ static_assert (OT_VPst == M_Cat(VPst), "");
#define _POS_A POS_AFTER_MAIN /* 3 chars; AFTER_MAIN */
#define _POS_AP POS_AFTER_POST /* 50 chars; AFTER_POST */
#define _POS_AS POS_AFTER_SUB /* 60 chars; AFTER_SUB */
#define _POS_C POS_BASE_C /* 899 chars; BASE_C */
#define _POS_C POS_BASE_C /* 901 chars; BASE_C */
#define _POS_BS POS_BEFORE_SUB /* 31 chars; BEFORE_SUB */
#define _POS_B POS_BELOW_C /* 13 chars; BELOW_C */
#define _POS_X POS_END /* 73 chars; END */
#define _POS_X POS_END /* 71 chars; END */
#define _POS_R POS_POST_C /* 13 chars; POST_C */
#define _POS_L POS_PRE_C /* 5 chars; PRE_C */
#define _POS_LM POS_PRE_M /* 16 chars; PRE_M */
@ -359,7 +355,7 @@ static const uint16_t indic_table[] = {
/* 1030 */ _(VB,B), _(VL,L), _(A,SM), _(VA,T), _(VA,T), _(VA,T), _(A,SM), _(N,X),
/* 1038 */_(SM,SM), _(H,X), _(As,X), _(MY,X), _(MR,X), _(MW,X), _(MH,X), _(C,C),
/* 1040 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C),
/* 1048 */ _(GB,C), _(GB,C), _(P,X), _(P,X), _(X,X), _(X,X), _(C,C), _(X,X),
/* 1048 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(X,X), _(X,X), _(C,C), _(X,X),
/* 1050 */ _(C,C), _(C,C), _(V,C), _(V,C), _(V,C), _(V,C), _(VR,R), _(VR,R),
/* 1058 */ _(VB,B), _(VB,B), _(R,C), _(C,C), _(C,C), _(C,C), _(MY,X), _(MY,X),
/* 1060 */ _(ML,X), _(C,C), _(VR,R), _(PT,X), _(PT,X), _(C,C), _(C,C), _(VR,R),
@ -551,7 +547,6 @@ hb_indic_get_categories (hb_codepoint_t u)
#undef _OT_MW
#undef _OT_MY
#undef _OT_N
#undef _OT_P
#undef _OT_GB
#undef _OT_PT
#undef _OT_R

View File

@ -45,13 +45,12 @@ using myanmar_position_t = ot_position_t;
enum myanmar_syllable_type_t {
myanmar_consonant_syllable,
myanmar_punctuation_cluster,
myanmar_broken_cluster,
myanmar_non_myanmar_cluster,
};
#line 55 "hb-ot-shaper-myanmar-machine.hh"
#line 54 "hb-ot-shaper-myanmar-machine.hh"
#define myanmar_syllable_machine_ex_A 9u
#define myanmar_syllable_machine_ex_As 32u
#define myanmar_syllable_machine_ex_C 1u
@ -62,11 +61,10 @@ enum myanmar_syllable_type_t {
#define myanmar_syllable_machine_ex_H 4u
#define myanmar_syllable_machine_ex_IV 2u
#define myanmar_syllable_machine_ex_MH 35u
#define myanmar_syllable_machine_ex_ML 42u
#define myanmar_syllable_machine_ex_ML 41u
#define myanmar_syllable_machine_ex_MR 36u
#define myanmar_syllable_machine_ex_MW 37u
#define myanmar_syllable_machine_ex_MY 38u
#define myanmar_syllable_machine_ex_P 41u
#define myanmar_syllable_machine_ex_PT 39u
#define myanmar_syllable_machine_ex_Ra 15u
#define myanmar_syllable_machine_ex_SM 8u
@ -79,36 +77,35 @@ enum myanmar_syllable_type_t {
#define myanmar_syllable_machine_ex_ZWNJ 5u
#line 83 "hb-ot-shaper-myanmar-machine.hh"
#line 81 "hb-ot-shaper-myanmar-machine.hh"
static const unsigned char _myanmar_syllable_machine_trans_keys[] = {
1u, 42u, 3u, 42u, 5u, 39u, 5u, 8u, 3u, 42u, 3u, 39u, 3u, 39u, 5u, 39u,
5u, 39u, 3u, 39u, 3u, 39u, 3u, 42u, 5u, 39u, 1u, 15u, 3u, 39u, 3u, 39u,
3u, 40u, 3u, 39u, 3u, 42u, 3u, 42u, 3u, 39u, 3u, 42u, 3u, 42u, 3u, 42u,
3u, 42u, 3u, 42u, 5u, 39u, 5u, 8u, 3u, 42u, 3u, 39u, 3u, 39u, 5u, 39u,
5u, 39u, 3u, 39u, 3u, 39u, 3u, 42u, 5u, 39u, 1u, 15u, 3u, 42u, 3u, 39u,
3u, 39u, 3u, 40u, 3u, 39u, 3u, 42u, 3u, 42u, 3u, 39u, 3u, 42u, 3u, 42u,
3u, 42u, 3u, 42u, 3u, 42u, 3u, 42u, 3u, 42u, 1u, 42u, 1u, 15u, 8u, 8u,
0
1u, 41u, 3u, 41u, 5u, 39u, 5u, 8u, 3u, 41u, 3u, 39u, 3u, 39u, 5u, 39u,
5u, 39u, 3u, 39u, 3u, 39u, 3u, 41u, 5u, 39u, 1u, 15u, 3u, 39u, 3u, 39u,
3u, 40u, 3u, 39u, 3u, 41u, 3u, 41u, 3u, 39u, 3u, 41u, 3u, 41u, 3u, 41u,
3u, 41u, 3u, 41u, 5u, 39u, 5u, 8u, 3u, 41u, 3u, 39u, 3u, 39u, 5u, 39u,
5u, 39u, 3u, 39u, 3u, 39u, 3u, 41u, 5u, 39u, 1u, 15u, 3u, 41u, 3u, 39u,
3u, 39u, 3u, 40u, 3u, 39u, 3u, 41u, 3u, 41u, 3u, 39u, 3u, 41u, 3u, 41u,
3u, 41u, 3u, 41u, 3u, 41u, 3u, 41u, 3u, 41u, 1u, 41u, 1u, 15u, 0
};
static const char _myanmar_syllable_machine_key_spans[] = {
42, 40, 35, 4, 40, 37, 37, 35,
35, 37, 37, 40, 35, 15, 37, 37,
38, 37, 40, 40, 37, 40, 40, 40,
40, 40, 35, 4, 40, 37, 37, 35,
35, 37, 37, 40, 35, 15, 40, 37,
37, 38, 37, 40, 40, 37, 40, 40,
40, 40, 40, 40, 40, 42, 15, 1
41, 39, 35, 4, 39, 37, 37, 35,
35, 37, 37, 39, 35, 15, 37, 37,
38, 37, 39, 39, 37, 39, 39, 39,
39, 39, 35, 4, 39, 37, 37, 35,
35, 37, 37, 39, 35, 15, 39, 37,
37, 38, 37, 39, 39, 37, 39, 39,
39, 39, 39, 39, 39, 41, 15
};
static const short _myanmar_syllable_machine_index_offsets[] = {
0, 43, 84, 120, 125, 166, 204, 242,
278, 314, 352, 390, 431, 467, 483, 521,
559, 598, 636, 677, 718, 756, 797, 838,
879, 920, 961, 997, 1002, 1043, 1081, 1119,
1155, 1191, 1229, 1267, 1308, 1344, 1360, 1401,
1439, 1477, 1516, 1554, 1595, 1636, 1674, 1715,
1756, 1797, 1838, 1879, 1920, 1961, 2004, 2020
0, 42, 82, 118, 123, 163, 201, 239,
275, 311, 349, 387, 427, 463, 479, 517,
555, 594, 632, 672, 712, 750, 790, 830,
870, 910, 950, 986, 991, 1031, 1069, 1107,
1143, 1179, 1217, 1255, 1295, 1331, 1347, 1387,
1425, 1463, 1502, 1540, 1580, 1620, 1658, 1698,
1738, 1778, 1818, 1858, 1898, 1938, 1980
};
static const char _myanmar_syllable_machine_indicies[] = {
@ -117,276 +114,273 @@ static const char _myanmar_syllable_machine_indicies[] = {
0, 8, 0, 9, 10, 11, 12, 0,
0, 0, 0, 0, 0, 0, 0, 13,
0, 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, 22, 33, 34, 35, 36, 37,
38, 22, 39, 22, 25, 25, 22, 26,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 31, 22,
22, 22, 22, 22, 22, 22, 22, 40,
22, 22, 22, 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, 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, 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, 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, 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, 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, 41, 22, 22, 31, 22,
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, 41, 22, 22, 31, 22, 22, 22,
22, 22, 22, 22, 22, 42, 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, 41,
22, 22, 31, 22, 22, 22, 22, 22,
22, 22, 22, 42, 22, 22, 22, 22,
22, 22, 37, 22, 22, 42, 22, 25,
25, 22, 26, 22, 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,
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, 22, 22, 28, 29, 22, 31,
22, 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, 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, 22, 22,
22, 22, 22, 37, 46, 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, 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, 32, 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, 28, 29,
30, 31, 22, 22, 22, 22, 22, 22,
22, 22, 46, 22, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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,
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, 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, 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,
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, 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, 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, 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, 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, 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,
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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 22,
22, 28, 29, 30, 31, 22, 22, 22,
22, 22, 22, 22, 22, 32, 22, 22,
33, 34, 35, 36, 37, 22, 22, 39,
22, 1, 1, 2, 3, 49, 49, 48,
5, 6, 1, 1, 48, 48, 48, 1,
48, 48, 48, 48, 9, 10, 11, 12,
48, 48, 48, 48, 48, 48, 48, 48,
13, 48, 48, 14, 15, 16, 17, 18,
19, 48, 21, 48, 1, 1, 61, 61,
61, 61, 61, 61, 61, 1, 1, 61,
61, 61, 1, 61, 62, 61, 0
20, 0, 22, 23, 24, 24, 21, 25,
26, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 27, 28, 29, 30, 21,
21, 21, 21, 21, 21, 21, 21, 31,
21, 21, 32, 33, 34, 35, 36, 37,
38, 21, 24, 24, 21, 25, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 30, 21, 21, 21,
21, 21, 21, 21, 21, 39, 21, 21,
21, 21, 21, 21, 36, 21, 24, 24,
21, 25, 21, 22, 21, 24, 24, 21,
25, 26, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 40, 21, 21, 30,
21, 21, 21, 21, 21, 21, 21, 21,
41, 21, 21, 42, 21, 21, 21, 36,
21, 41, 21, 22, 21, 24, 24, 21,
25, 26, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 30,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 36,
21, 43, 21, 24, 24, 21, 25, 36,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 44, 21,
21, 21, 21, 21, 21, 36, 21, 24,
24, 21, 25, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 44, 21, 21, 21, 21, 21,
21, 36, 21, 24, 24, 21, 25, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 36, 21, 22,
21, 24, 24, 21, 25, 26, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21,
40, 21, 21, 30, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 36, 21, 22, 21, 24,
24, 21, 25, 26, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 40, 21,
21, 30, 21, 21, 21, 21, 21, 21,
21, 21, 41, 21, 21, 21, 21, 21,
21, 36, 21, 22, 21, 24, 24, 21,
25, 26, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 40, 21, 21, 30,
21, 21, 21, 21, 21, 21, 21, 21,
41, 21, 21, 21, 21, 21, 21, 36,
21, 41, 21, 24, 24, 21, 25, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 30, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 36, 21, 1,
1, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 1, 21, 22,
21, 24, 24, 21, 25, 26, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21,
27, 28, 21, 30, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 36, 21, 22, 21, 24,
24, 21, 25, 26, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 28,
21, 30, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 36, 21, 22, 21, 24, 24, 21,
25, 26, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 27, 28, 29, 30,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 36,
45, 21, 22, 21, 24, 24, 21, 25,
26, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 27, 28, 29, 30, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 36, 21,
22, 21, 24, 24, 21, 25, 26, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 27, 28, 29, 30, 21, 21, 21,
21, 21, 21, 21, 21, 31, 21, 21,
32, 33, 34, 35, 36, 21, 38, 21,
22, 21, 24, 24, 21, 25, 26, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 27, 28, 29, 30, 21, 21, 21,
21, 21, 21, 21, 21, 45, 21, 21,
21, 21, 21, 21, 36, 21, 38, 21,
22, 21, 24, 24, 21, 25, 26, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 27, 28, 29, 30, 21, 21, 21,
21, 21, 21, 21, 21, 45, 21, 21,
21, 21, 21, 21, 36, 21, 22, 21,
24, 24, 21, 25, 26, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 27,
28, 29, 30, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 32, 21,
34, 21, 36, 21, 38, 21, 22, 21,
24, 24, 21, 25, 26, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 27,
28, 29, 30, 21, 21, 21, 21, 21,
21, 21, 21, 45, 21, 21, 32, 21,
21, 21, 36, 21, 38, 21, 22, 21,
24, 24, 21, 25, 26, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 27,
28, 29, 30, 21, 21, 21, 21, 21,
21, 21, 21, 46, 21, 21, 32, 33,
34, 21, 36, 21, 38, 21, 22, 21,
24, 24, 21, 25, 26, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 27,
28, 29, 30, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 32, 33,
34, 21, 36, 21, 38, 21, 22, 23,
24, 24, 21, 25, 26, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 27,
28, 29, 30, 21, 21, 21, 21, 21,
21, 21, 21, 31, 21, 21, 32, 33,
34, 35, 36, 21, 38, 21, 48, 48,
47, 5, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
12, 47, 47, 47, 47, 47, 47, 47,
47, 49, 47, 47, 47, 47, 47, 47,
18, 47, 48, 48, 47, 5, 47, 2,
47, 48, 48, 47, 5, 6, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
50, 47, 47, 12, 47, 47, 47, 47,
47, 47, 47, 47, 51, 47, 47, 52,
47, 47, 47, 18, 47, 51, 47, 2,
47, 48, 48, 47, 5, 6, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 12, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 18, 47, 53, 47, 48,
48, 47, 5, 18, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 54, 47, 47, 47, 47, 47,
47, 18, 47, 48, 48, 47, 5, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 54, 47,
47, 47, 47, 47, 47, 18, 47, 48,
48, 47, 5, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 18, 47, 2, 47, 48, 48, 47,
5, 6, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 50, 47, 47, 12,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 18,
47, 2, 47, 48, 48, 47, 5, 6,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 50, 47, 47, 12, 47, 47,
47, 47, 47, 47, 47, 47, 51, 47,
47, 47, 47, 47, 47, 18, 47, 2,
47, 48, 48, 47, 5, 6, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
50, 47, 47, 12, 47, 47, 47, 47,
47, 47, 47, 47, 51, 47, 47, 47,
47, 47, 47, 18, 47, 51, 47, 48,
48, 47, 5, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 12, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 18, 47, 55, 55, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 55, 47, 2, 3, 48, 48, 47,
5, 6, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 9, 10, 11, 12,
47, 47, 47, 47, 47, 47, 47, 47,
13, 47, 47, 14, 15, 16, 17, 18,
19, 20, 47, 2, 47, 48, 48, 47,
5, 6, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 9, 10, 47, 12,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 18,
47, 2, 47, 48, 48, 47, 5, 6,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 10, 47, 12, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 18, 47, 2,
47, 48, 48, 47, 5, 6, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
9, 10, 11, 12, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 18, 56, 47, 2, 47,
48, 48, 47, 5, 6, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 9,
10, 11, 12, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 18, 47, 2, 47, 48, 48,
47, 5, 6, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 9, 10, 11,
12, 47, 47, 47, 47, 47, 47, 47,
47, 13, 47, 47, 14, 15, 16, 17,
18, 47, 20, 47, 2, 47, 48, 48,
47, 5, 6, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 9, 10, 11,
12, 47, 47, 47, 47, 47, 47, 47,
47, 56, 47, 47, 47, 47, 47, 47,
18, 47, 20, 47, 2, 47, 48, 48,
47, 5, 6, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 9, 10, 11,
12, 47, 47, 47, 47, 47, 47, 47,
47, 56, 47, 47, 47, 47, 47, 47,
18, 47, 2, 47, 48, 48, 47, 5,
6, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 9, 10, 11, 12, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 14, 47, 16, 47, 18, 47,
20, 47, 2, 47, 48, 48, 47, 5,
6, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 9, 10, 11, 12, 47,
47, 47, 47, 47, 47, 47, 47, 56,
47, 47, 14, 47, 47, 47, 18, 47,
20, 47, 2, 47, 48, 48, 47, 5,
6, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 9, 10, 11, 12, 47,
47, 47, 47, 47, 47, 47, 47, 57,
47, 47, 14, 15, 16, 47, 18, 47,
20, 47, 2, 47, 48, 48, 47, 5,
6, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 9, 10, 11, 12, 47,
47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 14, 15, 16, 47, 18, 47,
20, 47, 2, 3, 48, 48, 47, 5,
6, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 9, 10, 11, 12, 47,
47, 47, 47, 47, 47, 47, 47, 13,
47, 47, 14, 15, 16, 17, 18, 47,
20, 47, 22, 23, 24, 24, 21, 25,
26, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 27, 28, 29, 30, 21,
21, 21, 21, 21, 21, 21, 21, 58,
21, 21, 32, 33, 34, 35, 36, 37,
38, 21, 22, 59, 24, 24, 21, 25,
26, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 27, 28, 29, 30, 21,
21, 21, 21, 21, 21, 21, 21, 31,
21, 21, 32, 33, 34, 35, 36, 21,
38, 21, 1, 1, 2, 3, 48, 48,
47, 5, 6, 1, 1, 47, 47, 47,
1, 47, 47, 47, 47, 9, 10, 11,
12, 47, 47, 47, 47, 47, 47, 47,
47, 13, 47, 47, 14, 15, 16, 17,
18, 19, 20, 47, 1, 1, 60, 60,
60, 60, 60, 60, 60, 1, 1, 60,
60, 60, 1, 60, 0
};
static const char _myanmar_syllable_machine_trans_targs[] = {
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
47, 48, 30, 50, 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
};
static const char _myanmar_syllable_machine_trans_actions[] = {
3, 0, 0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 5, 0,
0, 6, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 5, 0, 0,
6, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
7, 8, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 9, 10
0, 0, 0, 0, 0, 0, 0, 7,
8, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 9
};
static const char _myanmar_syllable_machine_to_state_actions[] = {
@ -396,7 +390,7 @@ static const char _myanmar_syllable_machine_to_state_actions[] = {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0
};
static const char _myanmar_syllable_machine_from_state_actions[] = {
@ -406,17 +400,17 @@ static const char _myanmar_syllable_machine_from_state_actions[] = {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0
};
static const short _myanmar_syllable_machine_eof_trans[] = {
0, 23, 23, 23, 23, 23, 23, 23,
23, 23, 23, 23, 23, 23, 23, 23,
23, 23, 23, 23, 23, 23, 23, 23,
23, 23, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 23, 23, 49, 62, 62
0, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 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, 22, 22, 48, 61
};
static const int myanmar_syllable_machine_start = 0;
@ -426,11 +420,11 @@ static const int myanmar_syllable_machine_error = -1;
static const int myanmar_syllable_machine_en_main = 0;
#line 56 "hb-ot-shaper-myanmar-machine.rl"
#line 55 "hb-ot-shaper-myanmar-machine.rl"
#line 120 "hb-ot-shaper-myanmar-machine.rl"
#line 117 "hb-ot-shaper-myanmar-machine.rl"
#define found_syllable(syllable_type) \
@ -449,7 +443,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
int cs;
hb_glyph_info_t *info = buffer->info;
#line 453 "hb-ot-shaper-myanmar-machine.hh"
#line 447 "hb-ot-shaper-myanmar-machine.hh"
{
cs = myanmar_syllable_machine_start;
ts = 0;
@ -457,7 +451,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
act = 0;
}
#line 140 "hb-ot-shaper-myanmar-machine.rl"
#line 137 "hb-ot-shaper-myanmar-machine.rl"
p = 0;
@ -465,7 +459,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
unsigned int syllable_serial = 1;
#line 469 "hb-ot-shaper-myanmar-machine.hh"
#line 463 "hb-ot-shaper-myanmar-machine.hh"
{
int _slen;
int _trans;
@ -479,7 +473,7 @@ _resume:
#line 1 "NONE"
{ts = p;}
break;
#line 483 "hb-ot-shaper-myanmar-machine.hh"
#line 477 "hb-ot-shaper-myanmar-machine.hh"
}
_keys = _myanmar_syllable_machine_trans_keys + (cs<<1);
@ -498,38 +492,34 @@ _eof_trans:
switch ( _myanmar_syllable_machine_trans_actions[_trans] ) {
case 6:
#line 112 "hb-ot-shaper-myanmar-machine.rl"
#line 110 "hb-ot-shaper-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_consonant_syllable); }}
break;
case 4:
#line 113 "hb-ot-shaper-myanmar-machine.rl"
#line 111 "hb-ot-shaper-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
break;
case 10:
#line 114 "hb-ot-shaper-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_punctuation_cluster); }}
break;
case 8:
#line 115 "hb-ot-shaper-myanmar-machine.rl"
#line 112 "hb-ot-shaper-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
break;
case 3:
#line 116 "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 112 "hb-ot-shaper-myanmar-machine.rl"
#line 110 "hb-ot-shaper-myanmar-machine.rl"
{te = p;p--;{ found_syllable (myanmar_consonant_syllable); }}
break;
case 7:
#line 115 "hb-ot-shaper-myanmar-machine.rl"
#line 112 "hb-ot-shaper-myanmar-machine.rl"
{te = p;p--;{ found_syllable (myanmar_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
break;
case 9:
#line 116 "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 533 "hb-ot-shaper-myanmar-machine.hh"
#line 523 "hb-ot-shaper-myanmar-machine.hh"
}
_again:
@ -538,7 +528,7 @@ _again:
#line 1 "NONE"
{ts = 0;}
break;
#line 542 "hb-ot-shaper-myanmar-machine.hh"
#line 532 "hb-ot-shaper-myanmar-machine.hh"
}
if ( ++p != pe )
@ -554,7 +544,7 @@ _again:
}
#line 148 "hb-ot-shaper-myanmar-machine.rl"
#line 145 "hb-ot-shaper-myanmar-machine.rl"
}

View File

@ -43,7 +43,6 @@ using myanmar_position_t = ot_position_t;
enum myanmar_syllable_type_t {
myanmar_consonant_syllable,
myanmar_punctuation_cluster,
myanmar_broken_cluster,
myanmar_non_myanmar_cluster,
};
@ -59,6 +58,7 @@ enum myanmar_syllable_type_t {
# Spec category D is folded into GB; D0 is not implemented by Uniscribe and as such folded into D
# Spec category P is folded into GB
export C = 1;
export IV = 2;
@ -86,8 +86,7 @@ export MW = 37; # Medial Wa, Shan Wa
export MY = 38; # Medial Ya, Mon Na, Mon Ma
export PT = 39; # Pwo and other tones
export VS = 40; # Variation selectors
export P = 41; # Punctuation
export ML = 42; # Medial Mon La
export ML = 41; # Medial Mon La
j = ZWJ|ZWNJ; # Joiners
@ -104,14 +103,12 @@ complex_syllable_tail = As* medial_group main_vowel_group post_vowel_group* pwo_
syllable_tail = (H (c|IV).VS?)* (H | complex_syllable_tail);
consonant_syllable = (k|CS)? (c|IV|GB|DOTTEDCIRCLE).VS? syllable_tail;
punctuation_cluster = P SM;
broken_cluster = k? VS? syllable_tail;
other = any;
main := |*
consonant_syllable => { found_syllable (myanmar_consonant_syllable); };
j => { found_syllable (myanmar_non_myanmar_cluster); };
punctuation_cluster => { found_syllable (myanmar_punctuation_cluster); };
broken_cluster => { found_syllable (myanmar_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; };
other => { found_syllable (myanmar_non_myanmar_cluster); };
*|;

View File

@ -286,7 +286,6 @@ reorder_syllable_myanmar (const hb_ot_shape_plan_t *plan HB_UNUSED,
initial_reordering_consonant_syllable (buffer, start, end);
break;
case myanmar_punctuation_cluster:
case myanmar_non_myanmar_cluster:
break;
}