Add support for Pwo Karen / Ason Chin medial la

https://github.com/harfbuzz/harfbuzz/pull/3217
This commit is contained in:
Simon Cozens 2021-09-20 15:21:11 +01:00 committed by Behdad Esfahbod
parent bff5685432
commit 5694561f75
3 changed files with 259 additions and 226 deletions

View File

@ -51,6 +51,7 @@ 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 21u
#define myanmar_syllable_machine_ex_ML 33u
#define myanmar_syllable_machine_ex_MR 22u
#define myanmar_syllable_machine_ex_MW 23u
#define myanmar_syllable_machine_ex_MY 24u
@ -67,35 +68,36 @@ enum myanmar_syllable_type_t {
#define myanmar_syllable_machine_ex_ZWNJ 5u
#line 71 "hb-ot-shape-complex-myanmar-machine.hh"
#line 72 "hb-ot-shape-complex-myanmar-machine.hh"
static const unsigned char _myanmar_syllable_machine_trans_keys[] = {
1u, 32u, 3u, 30u, 5u, 29u, 5u, 8u, 5u, 29u, 3u, 25u, 5u, 25u, 5u, 25u,
3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 1u, 16u, 3u, 29u, 3u, 29u, 3u, 29u,
3u, 29u, 3u, 29u, 3u, 30u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u,
5u, 29u, 5u, 8u, 5u, 29u, 3u, 25u, 5u, 25u, 5u, 25u, 3u, 29u, 3u, 29u,
3u, 29u, 3u, 29u, 1u, 16u, 3u, 30u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u,
3u, 29u, 3u, 30u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 30u,
3u, 29u, 1u, 32u, 1u, 32u, 8u, 8u, 0
1u, 33u, 3u, 33u, 5u, 29u, 5u, 8u, 5u, 29u, 3u, 25u, 5u, 25u, 5u, 25u,
3u, 33u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 33u, 1u, 16u, 3u, 33u, 3u, 33u,
3u, 29u, 3u, 29u, 3u, 29u, 3u, 30u, 3u, 29u, 3u, 33u, 3u, 33u, 3u, 33u,
3u, 33u, 3u, 33u, 5u, 29u, 5u, 8u, 5u, 29u, 3u, 25u, 5u, 25u, 5u, 25u,
3u, 33u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 33u, 1u, 16u, 3u, 33u, 3u, 33u,
3u, 33u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 30u, 3u, 29u, 3u, 33u, 3u, 33u,
3u, 33u, 3u, 33u, 3u, 33u, 3u, 33u, 3u, 33u, 1u, 33u, 1u, 32u, 8u, 8u,
0
};
static const char _myanmar_syllable_machine_key_spans[] = {
32, 28, 25, 4, 25, 23, 21, 21,
27, 27, 27, 27, 16, 27, 27, 27,
27, 27, 28, 27, 27, 27, 27, 27,
25, 4, 25, 23, 21, 21, 27, 27,
27, 27, 16, 28, 27, 27, 27, 27,
27, 28, 27, 27, 27, 27, 27, 28,
27, 32, 32, 1
33, 31, 25, 4, 25, 23, 21, 21,
31, 27, 27, 27, 31, 16, 31, 31,
27, 27, 27, 28, 27, 31, 31, 31,
31, 31, 25, 4, 25, 23, 21, 21,
31, 27, 27, 27, 31, 16, 31, 31,
31, 27, 27, 27, 28, 27, 31, 31,
31, 31, 31, 31, 31, 33, 32, 1
};
static const short _myanmar_syllable_machine_index_offsets[] = {
0, 33, 62, 88, 93, 119, 143, 165,
187, 215, 243, 271, 299, 316, 344, 372,
400, 428, 456, 485, 513, 541, 569, 597,
625, 651, 656, 682, 706, 728, 750, 778,
806, 834, 862, 879, 908, 936, 964, 992,
1020, 1048, 1077, 1105, 1133, 1161, 1189, 1217,
1246, 1274, 1307, 1340
0, 34, 66, 92, 97, 123, 147, 169,
191, 223, 251, 279, 307, 339, 356, 388,
420, 448, 476, 504, 533, 561, 593, 625,
657, 689, 721, 747, 752, 778, 802, 824,
846, 878, 906, 934, 962, 994, 1011, 1043,
1075, 1107, 1135, 1163, 1191, 1220, 1248, 1280,
1312, 1344, 1376, 1408, 1440, 1472, 1506, 1539
};
static const char _myanmar_syllable_machine_indicies[] = {
@ -103,192 +105,217 @@ static const char _myanmar_syllable_machine_indicies[] = {
0, 6, 1, 0, 0, 0, 0, 7,
0, 8, 9, 0, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 1,
0, 22, 23, 24, 24, 21, 25, 21,
26, 21, 21, 21, 21, 21, 21, 21,
27, 21, 21, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 21, 24, 24,
21, 25, 21, 21, 21, 21, 21, 21,
21, 21, 21, 38, 21, 21, 21, 21,
21, 21, 32, 21, 21, 21, 36, 21,
24, 24, 21, 25, 21, 24, 24, 21,
25, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 32, 21, 21, 21, 36, 21, 39,
21, 24, 24, 21, 25, 21, 32, 21,
21, 21, 21, 21, 21, 21, 40, 21,
21, 21, 21, 21, 21, 32, 21, 24,
24, 21, 25, 21, 21, 21, 21, 21,
21, 21, 21, 21, 40, 21, 21, 21,
21, 21, 21, 32, 21, 24, 24, 21,
25, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 32, 21, 22, 21, 24, 24, 21,
25, 21, 26, 21, 21, 21, 21, 21,
21, 21, 41, 21, 21, 41, 21, 21,
21, 32, 42, 21, 21, 36, 21, 22,
21, 24, 24, 21, 25, 21, 26, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 32, 21, 21,
21, 36, 21, 22, 21, 24, 24, 21,
25, 21, 26, 21, 21, 21, 21, 21,
21, 21, 41, 21, 21, 21, 21, 21,
21, 32, 42, 21, 21, 36, 21, 22,
21, 24, 24, 21, 25, 21, 26, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 32, 42, 21,
21, 36, 21, 1, 1, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 1, 21, 22, 21, 24, 24,
21, 25, 21, 26, 21, 21, 21, 21,
21, 21, 21, 27, 21, 21, 28, 29,
30, 31, 32, 33, 34, 35, 36, 21,
22, 21, 24, 24, 21, 25, 21, 26,
21, 21, 21, 21, 21, 21, 21, 43,
21, 21, 21, 21, 21, 21, 32, 33,
34, 35, 36, 21, 22, 21, 24, 24,
21, 25, 21, 26, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 32, 33, 34, 35, 36, 21,
22, 21, 24, 24, 21, 25, 21, 26,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 32, 33,
34, 21, 36, 21, 22, 21, 24, 24,
21, 25, 21, 26, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 32, 21, 34, 21, 36, 21,
22, 21, 24, 24, 21, 25, 21, 26,
21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 32, 33,
34, 35, 36, 43, 21, 22, 21, 24,
24, 21, 25, 21, 26, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 28,
21, 30, 21, 32, 33, 34, 35, 36,
21, 22, 21, 24, 24, 21, 25, 21,
26, 21, 21, 21, 21, 21, 21, 21,
43, 21, 21, 28, 21, 21, 21, 32,
33, 34, 35, 36, 21, 22, 21, 24,
24, 21, 25, 21, 26, 21, 21, 21,
21, 21, 21, 21, 44, 21, 21, 28,
29, 30, 21, 32, 33, 34, 35, 36,
21, 22, 21, 24, 24, 21, 25, 21,
26, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 28, 29, 30, 21, 32,
33, 34, 35, 36, 21, 22, 23, 24,
24, 21, 25, 21, 26, 21, 21, 21,
21, 21, 21, 21, 27, 21, 21, 28,
29, 30, 31, 32, 33, 34, 35, 36,
21, 46, 46, 45, 5, 45, 45, 45,
45, 45, 45, 45, 45, 45, 47, 45,
45, 45, 45, 45, 45, 14, 45, 45,
45, 18, 45, 46, 46, 45, 5, 45,
46, 46, 45, 5, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 14, 45, 45, 45,
18, 45, 48, 45, 46, 46, 45, 5,
45, 14, 45, 45, 45, 45, 45, 45,
45, 49, 45, 45, 45, 45, 45, 45,
14, 45, 46, 46, 45, 5, 45, 45,
45, 45, 45, 45, 45, 45, 45, 49,
45, 45, 45, 45, 45, 45, 14, 45,
46, 46, 45, 5, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 14, 45, 2, 45,
46, 46, 45, 5, 45, 6, 45, 45,
45, 45, 45, 45, 45, 50, 45, 45,
50, 45, 45, 45, 14, 51, 45, 45,
18, 45, 2, 45, 46, 46, 45, 5,
45, 6, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45,
14, 45, 45, 45, 18, 45, 2, 45,
46, 46, 45, 5, 45, 6, 45, 45,
45, 45, 45, 45, 45, 50, 45, 45,
45, 45, 45, 45, 14, 51, 45, 45,
18, 45, 2, 45, 46, 46, 45, 5,
45, 6, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45,
14, 51, 45, 45, 18, 45, 52, 52,
45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 52, 45, 2,
3, 46, 46, 45, 5, 45, 6, 45,
45, 45, 45, 45, 45, 45, 8, 45,
45, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 45, 2, 45, 46, 46,
45, 5, 45, 6, 45, 45, 45, 45,
45, 45, 45, 8, 45, 45, 10, 11,
12, 13, 14, 15, 16, 17, 18, 45,
2, 45, 46, 46, 45, 5, 45, 6,
45, 45, 45, 45, 45, 45, 45, 53,
45, 45, 45, 45, 45, 45, 14, 15,
16, 17, 18, 45, 2, 45, 46, 46,
45, 5, 45, 6, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 14, 15, 16, 17, 18, 45,
2, 45, 46, 46, 45, 5, 45, 6,
45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 14, 15,
16, 45, 18, 45, 2, 45, 46, 46,
45, 5, 45, 6, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 14, 45, 16, 45, 18, 45,
2, 45, 46, 46, 45, 5, 45, 6,
45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 14, 15,
16, 17, 18, 53, 45, 2, 45, 46,
46, 45, 5, 45, 6, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 10,
45, 12, 45, 14, 15, 16, 17, 18,
45, 2, 45, 46, 46, 45, 5, 45,
6, 45, 45, 45, 45, 45, 45, 45,
53, 45, 45, 10, 45, 45, 45, 14,
15, 16, 17, 18, 45, 2, 45, 46,
46, 45, 5, 45, 6, 45, 45, 45,
45, 45, 45, 45, 54, 45, 45, 10,
11, 12, 45, 14, 15, 16, 17, 18,
45, 2, 45, 46, 46, 45, 5, 45,
6, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 10, 11, 12, 45, 14,
15, 16, 17, 18, 45, 2, 3, 46,
46, 45, 5, 45, 6, 45, 45, 45,
45, 45, 45, 45, 8, 45, 45, 10,
11, 12, 13, 14, 15, 16, 17, 18,
45, 22, 23, 24, 24, 21, 25, 21,
26, 21, 21, 21, 21, 21, 21, 21,
55, 21, 21, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 21, 22, 56,
24, 24, 21, 25, 21, 26, 21, 21,
21, 21, 21, 21, 21, 27, 21, 21,
28, 29, 30, 31, 32, 33, 34, 35,
36, 21, 1, 1, 2, 3, 46, 46,
45, 5, 45, 6, 1, 45, 45, 45,
45, 1, 45, 8, 45, 45, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19,
45, 1, 45, 1, 1, 57, 57, 57,
57, 57, 57, 57, 57, 1, 57, 57,
57, 57, 1, 57, 57, 57, 57, 57,
57, 57, 57, 57, 57, 57, 57, 57,
57, 57, 1, 57, 58, 57, 0
21, 0, 23, 24, 25, 25, 22, 26,
22, 27, 22, 22, 22, 22, 22, 22,
22, 28, 22, 22, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 22, 22,
39, 22, 25, 25, 22, 26, 22, 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, 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, 22, 33, 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, 22, 27, 22,
22, 22, 22, 22, 22, 22, 43, 22,
22, 44, 22, 22, 22, 33, 45, 22,
22, 37, 22, 22, 22, 43, 22, 23,
22, 25, 25, 22, 26, 22, 27, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 33, 22, 22,
22, 37, 22, 23, 22, 25, 25, 22,
26, 22, 27, 22, 22, 22, 22, 22,
22, 22, 43, 22, 22, 22, 22, 22,
22, 33, 45, 22, 22, 37, 22, 23,
22, 25, 25, 22, 26, 22, 27, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 33, 45, 22,
22, 37, 22, 23, 22, 25, 25, 22,
26, 22, 27, 22, 22, 22, 22, 22,
22, 22, 43, 22, 22, 22, 22, 22,
22, 33, 45, 22, 22, 37, 22, 22,
22, 43, 22, 1, 1, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 1, 22, 23, 22, 25, 25,
22, 26, 22, 27, 22, 22, 22, 22,
22, 22, 22, 28, 22, 22, 29, 30,
31, 32, 33, 34, 35, 36, 37, 22,
22, 22, 39, 22, 23, 22, 25, 25,
22, 26, 22, 27, 22, 22, 22, 22,
22, 22, 22, 46, 22, 22, 22, 22,
22, 22, 33, 34, 35, 36, 37, 22,
22, 22, 39, 22, 23, 22, 25, 25,
22, 26, 22, 27, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 33, 34, 35, 36, 37, 22,
23, 22, 25, 25, 22, 26, 22, 27,
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, 22, 27, 22, 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, 22, 27,
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, 22, 27, 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, 22,
27, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 29, 22, 31, 22, 33,
34, 35, 36, 37, 22, 22, 22, 39,
22, 23, 22, 25, 25, 22, 26, 22,
27, 22, 22, 22, 22, 22, 22, 22,
46, 22, 22, 29, 22, 22, 22, 33,
34, 35, 36, 37, 22, 22, 22, 39,
22, 23, 22, 25, 25, 22, 26, 22,
27, 22, 22, 22, 22, 22, 22, 22,
47, 22, 22, 29, 30, 31, 22, 33,
34, 35, 36, 37, 22, 22, 22, 39,
22, 23, 22, 25, 25, 22, 26, 22,
27, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 29, 30, 31, 22, 33,
34, 35, 36, 37, 22, 22, 22, 39,
22, 23, 24, 25, 25, 22, 26, 22,
27, 22, 22, 22, 22, 22, 22, 22,
28, 22, 22, 29, 30, 31, 32, 33,
34, 35, 36, 37, 22, 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,
48, 14, 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, 48, 6, 48, 48,
48, 48, 48, 48, 48, 53, 48, 48,
54, 48, 48, 48, 14, 55, 48, 48,
18, 48, 48, 48, 53, 48, 2, 48,
49, 49, 48, 5, 48, 6, 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,
48, 6, 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, 48, 6, 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,
48, 6, 48, 48, 48, 48, 48, 48,
48, 53, 48, 48, 48, 48, 48, 48,
14, 55, 48, 48, 18, 48, 48, 48,
53, 48, 56, 56, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 56, 48, 2, 3, 49, 49, 48,
5, 48, 6, 48, 48, 48, 48, 48,
48, 48, 8, 48, 48, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 48,
48, 21, 48, 2, 48, 49, 49, 48,
5, 48, 6, 48, 48, 48, 48, 48,
48, 48, 8, 48, 48, 10, 11, 12,
13, 14, 15, 16, 17, 18, 48, 48,
48, 21, 48, 2, 48, 49, 49, 48,
5, 48, 6, 48, 48, 48, 48, 48,
48, 48, 57, 48, 48, 48, 48, 48,
48, 14, 15, 16, 17, 18, 48, 48,
48, 21, 48, 2, 48, 49, 49, 48,
5, 48, 6, 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, 48, 6, 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, 48, 6, 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, 48, 6, 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, 48, 6, 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, 48, 6,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 10, 48, 12, 48, 14, 15,
16, 17, 18, 48, 48, 48, 21, 48,
2, 48, 49, 49, 48, 5, 48, 6,
48, 48, 48, 48, 48, 48, 48, 57,
48, 48, 10, 48, 48, 48, 14, 15,
16, 17, 18, 48, 48, 48, 21, 48,
2, 48, 49, 49, 48, 5, 48, 6,
48, 48, 48, 48, 48, 48, 48, 58,
48, 48, 10, 11, 12, 48, 14, 15,
16, 17, 18, 48, 48, 48, 21, 48,
2, 48, 49, 49, 48, 5, 48, 6,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 10, 11, 12, 48, 14, 15,
16, 17, 18, 48, 48, 48, 21, 48,
2, 3, 49, 49, 48, 5, 48, 6,
48, 48, 48, 48, 48, 48, 48, 8,
48, 48, 10, 11, 12, 13, 14, 15,
16, 17, 18, 48, 48, 48, 21, 48,
23, 24, 25, 25, 22, 26, 22, 27,
22, 22, 22, 22, 22, 22, 22, 59,
22, 22, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 22, 22, 39, 22,
23, 60, 25, 25, 22, 26, 22, 27,
22, 22, 22, 22, 22, 22, 22, 28,
22, 22, 29, 30, 31, 32, 33, 34,
35, 36, 37, 22, 22, 22, 39, 22,
1, 1, 2, 3, 49, 49, 48, 5,
48, 6, 1, 48, 48, 48, 48, 1,
48, 8, 48, 48, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 48, 1,
21, 48, 1, 1, 61, 61, 61, 61,
61, 61, 61, 61, 1, 61, 61, 61,
61, 1, 61, 61, 61, 61, 61, 61,
61, 61, 61, 61, 61, 61, 61, 61,
61, 1, 61, 62, 61, 0
};
static const char _myanmar_syllable_machine_trans_targs[] = {
0, 1, 24, 34, 0, 25, 31, 47,
36, 50, 37, 42, 43, 44, 27, 39,
40, 41, 30, 46, 51, 0, 2, 12,
0, 3, 9, 13, 14, 19, 20, 21,
5, 16, 17, 18, 8, 23, 4, 6,
7, 10, 11, 15, 22, 0, 0, 26,
28, 29, 32, 33, 35, 38, 45, 48,
49, 0, 0
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
};
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, 5, 0, 0,
6, 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, 0, 0, 0,
0, 0, 0, 0, 0, 7, 8, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 9, 10
7, 8, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 9, 10
};
static const char _myanmar_syllable_machine_to_state_actions[] = {
@ -298,7 +325,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
};
static const char _myanmar_syllable_machine_from_state_actions[] = {
@ -308,17 +335,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
};
static const short _myanmar_syllable_machine_eof_trans[] = {
0, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22,
46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 46, 46, 46, 46, 22,
22, 46, 58, 58
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
};
static const int myanmar_syllable_machine_start = 0;
@ -332,7 +359,7 @@ static const int myanmar_syllable_machine_en_main = 0;
#line 101 "hb-ot-shape-complex-myanmar-machine.rl"
#line 102 "hb-ot-shape-complex-myanmar-machine.rl"
#define found_syllable(syllable_type) \
@ -351,7 +378,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
int cs;
hb_glyph_info_t *info = buffer->info;
#line 355 "hb-ot-shape-complex-myanmar-machine.hh"
#line 382 "hb-ot-shape-complex-myanmar-machine.hh"
{
cs = myanmar_syllable_machine_start;
ts = 0;
@ -359,7 +386,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
act = 0;
}
#line 121 "hb-ot-shape-complex-myanmar-machine.rl"
#line 122 "hb-ot-shape-complex-myanmar-machine.rl"
p = 0;
@ -367,7 +394,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
unsigned int syllable_serial = 1;
#line 371 "hb-ot-shape-complex-myanmar-machine.hh"
#line 398 "hb-ot-shape-complex-myanmar-machine.hh"
{
int _slen;
int _trans;
@ -381,7 +408,7 @@ _resume:
#line 1 "NONE"
{ts = p;}
break;
#line 385 "hb-ot-shape-complex-myanmar-machine.hh"
#line 412 "hb-ot-shape-complex-myanmar-machine.hh"
}
_keys = _myanmar_syllable_machine_trans_keys + (cs<<1);
@ -400,38 +427,38 @@ _eof_trans:
switch ( _myanmar_syllable_machine_trans_actions[_trans] ) {
case 6:
#line 93 "hb-ot-shape-complex-myanmar-machine.rl"
#line 94 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_consonant_syllable); }}
break;
case 4:
#line 94 "hb-ot-shape-complex-myanmar-machine.rl"
#line 95 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
break;
case 10:
#line 95 "hb-ot-shape-complex-myanmar-machine.rl"
#line 96 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_punctuation_cluster); }}
break;
case 8:
#line 96 "hb-ot-shape-complex-myanmar-machine.rl"
#line 97 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_broken_cluster); }}
break;
case 3:
#line 97 "hb-ot-shape-complex-myanmar-machine.rl"
#line 98 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
break;
case 5:
#line 93 "hb-ot-shape-complex-myanmar-machine.rl"
#line 94 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p;p--;{ found_syllable (myanmar_consonant_syllable); }}
break;
case 7:
#line 96 "hb-ot-shape-complex-myanmar-machine.rl"
#line 97 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p;p--;{ found_syllable (myanmar_broken_cluster); }}
break;
case 9:
#line 97 "hb-ot-shape-complex-myanmar-machine.rl"
#line 98 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p;p--;{ found_syllable (myanmar_non_myanmar_cluster); }}
break;
#line 435 "hb-ot-shape-complex-myanmar-machine.hh"
#line 462 "hb-ot-shape-complex-myanmar-machine.hh"
}
_again:
@ -440,7 +467,7 @@ _again:
#line 1 "NONE"
{ts = 0;}
break;
#line 444 "hb-ot-shape-complex-myanmar-machine.hh"
#line 471 "hb-ot-shape-complex-myanmar-machine.hh"
}
if ( ++p != pe )
@ -456,7 +483,7 @@ _again:
}
#line 129 "hb-ot-shape-complex-myanmar-machine.rl"
#line 130 "hb-ot-shape-complex-myanmar-machine.rl"
}

View File

@ -55,6 +55,7 @@ export GB = 11;
export H = 4;
export IV = 2;
export MH = 21;
export ML = 33;
export MR = 22;
export MW = 23;
export MY = 24;
@ -76,9 +77,9 @@ k = (Ra As H); # Kinzi
c = C|Ra; # is_consonant
medial_group = MY? As? MR? ((MW MH? | MH) As?)?;
medial_group = MY? As? MR? ((MW MH? ML? | MH ML? | ML) As?)?;
main_vowel_group = (VPre.VS?)* VAbv* VBlw* A* (DB As?)?;
post_vowel_group = VPst MH? As* VAbv* A* (DB As?)?;
post_vowel_group = VPst MH? ML? As* VAbv* A* (DB As?)?;
pwo_tone_group = PT A* DB? As?;
complex_syllable_tail = As* medial_group main_vowel_group post_vowel_group* pwo_tone_group* V* j?;

View File

@ -56,6 +56,7 @@ enum myanmar_category_t {
OT_VS = 30, /* Variation selectors */
OT_P = 31, /* Punctuation */
OT_D = 32, /* Digits except zero */
OT_ML = 33, /* Various consonant medial types */
};
using myanmar_position_t = indic_position_t;
@ -115,10 +116,14 @@ set_myanmar_properties (hb_glyph_info_t &info)
cat = OT_D; /* XXX The spec says D0, but Uniscribe doesn't seem to do. */
break;
case 0x103Eu: case 0x1060u:
case 0x103Eu:
cat = OT_MH;
break;
case 0x1060u:
cat = OT_ML;
break;
case 0x103Cu:
cat = OT_MR;
break;