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_H 4u
#define myanmar_syllable_machine_ex_IV 2u #define myanmar_syllable_machine_ex_IV 2u
#define myanmar_syllable_machine_ex_MH 21u #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_MR 22u
#define myanmar_syllable_machine_ex_MW 23u #define myanmar_syllable_machine_ex_MW 23u
#define myanmar_syllable_machine_ex_MY 24u #define myanmar_syllable_machine_ex_MY 24u
@ -67,35 +68,36 @@ enum myanmar_syllable_type_t {
#define myanmar_syllable_machine_ex_ZWNJ 5u #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[] = { 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, 1u, 33u, 3u, 33u, 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, 33u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 33u, 1u, 16u, 3u, 33u, 3u, 33u,
3u, 29u, 3u, 29u, 3u, 30u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 30u, 3u, 29u, 3u, 33u, 3u, 33u, 3u, 33u,
5u, 29u, 5u, 8u, 5u, 29u, 3u, 25u, 5u, 25u, 5u, 25u, 3u, 29u, 3u, 29u, 3u, 33u, 3u, 33u, 5u, 29u, 5u, 8u, 5u, 29u, 3u, 25u, 5u, 25u, 5u, 25u,
3u, 29u, 3u, 29u, 1u, 16u, 3u, 30u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 33u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 33u, 1u, 16u, 3u, 33u, 3u, 33u,
3u, 29u, 3u, 30u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 30u, 3u, 33u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 30u, 3u, 29u, 3u, 33u, 3u, 33u,
3u, 29u, 1u, 32u, 1u, 32u, 8u, 8u, 0 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[] = { static const char _myanmar_syllable_machine_key_spans[] = {
32, 28, 25, 4, 25, 23, 21, 21, 33, 31, 25, 4, 25, 23, 21, 21,
27, 27, 27, 27, 16, 27, 27, 27, 31, 27, 27, 27, 31, 16, 31, 31,
27, 27, 28, 27, 27, 27, 27, 27, 27, 27, 27, 28, 27, 31, 31, 31,
25, 4, 25, 23, 21, 21, 27, 27, 31, 31, 25, 4, 25, 23, 21, 21,
27, 27, 16, 28, 27, 27, 27, 27, 31, 27, 27, 27, 31, 16, 31, 31,
27, 28, 27, 27, 27, 27, 27, 28, 31, 27, 27, 27, 28, 27, 31, 31,
27, 32, 32, 1 31, 31, 31, 31, 31, 33, 32, 1
}; };
static const short _myanmar_syllable_machine_index_offsets[] = { static const short _myanmar_syllable_machine_index_offsets[] = {
0, 33, 62, 88, 93, 119, 143, 165, 0, 34, 66, 92, 97, 123, 147, 169,
187, 215, 243, 271, 299, 316, 344, 372, 191, 223, 251, 279, 307, 339, 356, 388,
400, 428, 456, 485, 513, 541, 569, 597, 420, 448, 476, 504, 533, 561, 593, 625,
625, 651, 656, 682, 706, 728, 750, 778, 657, 689, 721, 747, 752, 778, 802, 824,
806, 834, 862, 879, 908, 936, 964, 992, 846, 878, 906, 934, 962, 994, 1011, 1043,
1020, 1048, 1077, 1105, 1133, 1161, 1189, 1217, 1075, 1107, 1135, 1163, 1191, 1220, 1248, 1280,
1246, 1274, 1307, 1340 1312, 1344, 1376, 1408, 1440, 1472, 1506, 1539
}; };
static const char _myanmar_syllable_machine_indicies[] = { 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, 6, 1, 0, 0, 0, 0, 7,
0, 8, 9, 0, 10, 11, 12, 13, 0, 8, 9, 0, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 1, 14, 15, 16, 17, 18, 19, 20, 1,
0, 22, 23, 24, 24, 21, 25, 21, 21, 0, 23, 24, 25, 25, 22, 26,
26, 21, 21, 21, 21, 21, 21, 21, 22, 27, 22, 22, 22, 22, 22, 22,
27, 21, 21, 28, 29, 30, 31, 32, 22, 28, 22, 22, 29, 30, 31, 32,
33, 34, 35, 36, 37, 21, 24, 24, 33, 34, 35, 36, 37, 38, 22, 22,
21, 25, 21, 21, 21, 21, 21, 21, 39, 22, 25, 25, 22, 26, 22, 22,
21, 21, 21, 38, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 40,
21, 21, 32, 21, 21, 21, 36, 21, 22, 22, 22, 22, 22, 22, 33, 22,
24, 24, 21, 25, 21, 24, 24, 21, 22, 22, 37, 22, 25, 25, 22, 26,
25, 21, 21, 21, 21, 21, 21, 21, 22, 25, 25, 22, 26, 22, 22, 22,
21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,
21, 32, 21, 21, 21, 36, 21, 39, 22, 22, 22, 22, 22, 33, 22, 22,
21, 24, 24, 21, 25, 21, 32, 21, 22, 37, 22, 41, 22, 25, 25, 22,
21, 21, 21, 21, 21, 21, 40, 21, 26, 22, 33, 22, 22, 22, 22, 22,
21, 21, 21, 21, 21, 32, 21, 24, 22, 22, 42, 22, 22, 22, 22, 22,
24, 21, 25, 21, 21, 21, 21, 21, 22, 33, 22, 25, 25, 22, 26, 22,
21, 21, 21, 21, 40, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,
21, 21, 21, 32, 21, 24, 24, 21, 42, 22, 22, 22, 22, 22, 22, 33,
25, 21, 21, 21, 21, 21, 21, 21, 22, 25, 25, 22, 26, 22, 22, 22,
21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,
21, 32, 21, 22, 21, 24, 24, 21, 22, 22, 22, 22, 22, 33, 22, 23,
25, 21, 26, 21, 21, 21, 21, 21, 22, 25, 25, 22, 26, 22, 27, 22,
21, 21, 41, 21, 21, 41, 21, 21, 22, 22, 22, 22, 22, 22, 43, 22,
21, 32, 42, 21, 21, 36, 21, 22, 22, 44, 22, 22, 22, 33, 45, 22,
21, 24, 24, 21, 25, 21, 26, 21, 22, 37, 22, 22, 22, 43, 22, 23,
21, 21, 21, 21, 21, 21, 21, 21, 22, 25, 25, 22, 26, 22, 27, 22,
21, 21, 21, 21, 21, 32, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,
21, 36, 21, 22, 21, 24, 24, 21, 22, 22, 22, 22, 22, 33, 22, 22,
25, 21, 26, 21, 21, 21, 21, 21, 22, 37, 22, 23, 22, 25, 25, 22,
21, 21, 41, 21, 21, 21, 21, 21, 26, 22, 27, 22, 22, 22, 22, 22,
21, 32, 42, 21, 21, 36, 21, 22, 22, 22, 43, 22, 22, 22, 22, 22,
21, 24, 24, 21, 25, 21, 26, 21, 22, 33, 45, 22, 22, 37, 22, 23,
21, 21, 21, 21, 21, 21, 21, 21, 22, 25, 25, 22, 26, 22, 27, 22,
21, 21, 21, 21, 21, 32, 42, 21, 22, 22, 22, 22, 22, 22, 22, 22,
21, 36, 21, 1, 1, 21, 21, 21, 22, 22, 22, 22, 22, 33, 45, 22,
21, 21, 21, 21, 21, 21, 21, 21, 22, 37, 22, 23, 22, 25, 25, 22,
21, 21, 1, 21, 22, 21, 24, 24, 26, 22, 27, 22, 22, 22, 22, 22,
21, 25, 21, 26, 21, 21, 21, 21, 22, 22, 43, 22, 22, 22, 22, 22,
21, 21, 21, 27, 21, 21, 28, 29, 22, 33, 45, 22, 22, 37, 22, 22,
30, 31, 32, 33, 34, 35, 36, 21, 22, 43, 22, 1, 1, 22, 22, 22,
22, 21, 24, 24, 21, 25, 21, 26, 22, 22, 22, 22, 22, 22, 22, 22,
21, 21, 21, 21, 21, 21, 21, 43, 22, 22, 1, 22, 23, 22, 25, 25,
21, 21, 21, 21, 21, 21, 32, 33, 22, 26, 22, 27, 22, 22, 22, 22,
34, 35, 36, 21, 22, 21, 24, 24, 22, 22, 22, 28, 22, 22, 29, 30,
21, 25, 21, 26, 21, 21, 21, 21, 31, 32, 33, 34, 35, 36, 37, 22,
21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 39, 22, 23, 22, 25, 25,
21, 21, 32, 33, 34, 35, 36, 21, 22, 26, 22, 27, 22, 22, 22, 22,
22, 21, 24, 24, 21, 25, 21, 26, 22, 22, 22, 46, 22, 22, 22, 22,
21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 33, 34, 35, 36, 37, 22,
21, 21, 21, 21, 21, 21, 32, 33, 22, 22, 39, 22, 23, 22, 25, 25,
34, 21, 36, 21, 22, 21, 24, 24, 22, 26, 22, 27, 22, 22, 22, 22,
21, 25, 21, 26, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,
21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 33, 34, 35, 36, 37, 22,
21, 21, 32, 21, 34, 21, 36, 21, 23, 22, 25, 25, 22, 26, 22, 27,
22, 21, 24, 24, 21, 25, 21, 26, 22, 22, 22, 22, 22, 22, 22, 22,
21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 33, 34,
21, 21, 21, 21, 21, 21, 32, 33, 35, 22, 37, 22, 23, 22, 25, 25,
34, 35, 36, 43, 21, 22, 21, 24, 22, 26, 22, 27, 22, 22, 22, 22,
24, 21, 25, 21, 26, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,
21, 21, 21, 21, 21, 21, 21, 28, 22, 22, 33, 22, 35, 22, 37, 22,
21, 30, 21, 32, 33, 34, 35, 36, 23, 22, 25, 25, 22, 26, 22, 27,
21, 22, 21, 24, 24, 21, 25, 21, 22, 22, 22, 22, 22, 22, 22, 22,
26, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 33, 34,
43, 21, 21, 28, 21, 21, 21, 32, 35, 36, 37, 46, 22, 23, 22, 25,
33, 34, 35, 36, 21, 22, 21, 24, 25, 22, 26, 22, 27, 22, 22, 22,
24, 21, 25, 21, 26, 21, 21, 21, 22, 22, 22, 22, 46, 22, 22, 22,
21, 21, 21, 21, 44, 21, 21, 28, 22, 22, 22, 33, 34, 35, 36, 37,
29, 30, 21, 32, 33, 34, 35, 36, 22, 23, 22, 25, 25, 22, 26, 22,
21, 22, 21, 24, 24, 21, 25, 21, 27, 22, 22, 22, 22, 22, 22, 22,
26, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 29, 22, 31, 22, 33,
21, 21, 21, 28, 29, 30, 21, 32, 34, 35, 36, 37, 22, 22, 22, 39,
33, 34, 35, 36, 21, 22, 23, 24, 22, 23, 22, 25, 25, 22, 26, 22,
24, 21, 25, 21, 26, 21, 21, 21, 27, 22, 22, 22, 22, 22, 22, 22,
21, 21, 21, 21, 27, 21, 21, 28, 46, 22, 22, 29, 22, 22, 22, 33,
29, 30, 31, 32, 33, 34, 35, 36, 34, 35, 36, 37, 22, 22, 22, 39,
21, 46, 46, 45, 5, 45, 45, 45, 22, 23, 22, 25, 25, 22, 26, 22,
45, 45, 45, 45, 45, 45, 47, 45, 27, 22, 22, 22, 22, 22, 22, 22,
45, 45, 45, 45, 45, 14, 45, 45, 47, 22, 22, 29, 30, 31, 22, 33,
45, 18, 45, 46, 46, 45, 5, 45, 34, 35, 36, 37, 22, 22, 22, 39,
46, 46, 45, 5, 45, 45, 45, 45, 22, 23, 22, 25, 25, 22, 26, 22,
45, 45, 45, 45, 45, 45, 45, 45, 27, 22, 22, 22, 22, 22, 22, 22,
45, 45, 45, 45, 14, 45, 45, 45, 22, 22, 22, 29, 30, 31, 22, 33,
18, 45, 48, 45, 46, 46, 45, 5, 34, 35, 36, 37, 22, 22, 22, 39,
45, 14, 45, 45, 45, 45, 45, 45, 22, 23, 24, 25, 25, 22, 26, 22,
45, 49, 45, 45, 45, 45, 45, 45, 27, 22, 22, 22, 22, 22, 22, 22,
14, 45, 46, 46, 45, 5, 45, 45, 28, 22, 22, 29, 30, 31, 32, 33,
45, 45, 45, 45, 45, 45, 45, 49, 34, 35, 36, 37, 22, 22, 22, 39,
45, 45, 45, 45, 45, 45, 14, 45, 22, 49, 49, 48, 5, 48, 48, 48,
46, 46, 45, 5, 45, 45, 45, 45, 48, 48, 48, 48, 48, 48, 50, 48,
45, 45, 45, 45, 45, 45, 45, 45, 48, 48, 48, 48, 48, 14, 48, 48,
45, 45, 45, 45, 14, 45, 2, 45, 48, 18, 48, 49, 49, 48, 5, 48,
46, 46, 45, 5, 45, 6, 45, 45, 49, 49, 48, 5, 48, 48, 48, 48,
45, 45, 45, 45, 45, 50, 45, 45, 48, 48, 48, 48, 48, 48, 48, 48,
50, 45, 45, 45, 14, 51, 45, 45, 48, 48, 48, 48, 14, 48, 48, 48,
18, 45, 2, 45, 46, 46, 45, 5, 18, 48, 51, 48, 49, 49, 48, 5,
45, 6, 45, 45, 45, 45, 45, 45, 48, 14, 48, 48, 48, 48, 48, 48,
45, 45, 45, 45, 45, 45, 45, 45, 48, 52, 48, 48, 48, 48, 48, 48,
14, 45, 45, 45, 18, 45, 2, 45, 14, 48, 49, 49, 48, 5, 48, 48,
46, 46, 45, 5, 45, 6, 45, 45, 48, 48, 48, 48, 48, 48, 48, 52,
45, 45, 45, 45, 45, 50, 45, 45, 48, 48, 48, 48, 48, 48, 14, 48,
45, 45, 45, 45, 14, 51, 45, 45, 49, 49, 48, 5, 48, 48, 48, 48,
18, 45, 2, 45, 46, 46, 45, 5, 48, 48, 48, 48, 48, 48, 48, 48,
45, 6, 45, 45, 45, 45, 45, 45, 48, 48, 48, 48, 14, 48, 2, 48,
45, 45, 45, 45, 45, 45, 45, 45, 49, 49, 48, 5, 48, 6, 48, 48,
14, 51, 45, 45, 18, 45, 52, 52, 48, 48, 48, 48, 48, 53, 48, 48,
45, 45, 45, 45, 45, 45, 45, 45, 54, 48, 48, 48, 14, 55, 48, 48,
45, 45, 45, 45, 45, 52, 45, 2, 18, 48, 48, 48, 53, 48, 2, 48,
3, 46, 46, 45, 5, 45, 6, 45, 49, 49, 48, 5, 48, 6, 48, 48,
45, 45, 45, 45, 45, 45, 8, 45, 48, 48, 48, 48, 48, 48, 48, 48,
45, 10, 11, 12, 13, 14, 15, 16, 48, 48, 48, 48, 14, 48, 48, 48,
17, 18, 19, 45, 2, 45, 46, 46, 18, 48, 2, 48, 49, 49, 48, 5,
45, 5, 45, 6, 45, 45, 45, 45, 48, 6, 48, 48, 48, 48, 48, 48,
45, 45, 45, 8, 45, 45, 10, 11, 48, 53, 48, 48, 48, 48, 48, 48,
12, 13, 14, 15, 16, 17, 18, 45, 14, 55, 48, 48, 18, 48, 2, 48,
2, 45, 46, 46, 45, 5, 45, 6, 49, 49, 48, 5, 48, 6, 48, 48,
45, 45, 45, 45, 45, 45, 45, 53, 48, 48, 48, 48, 48, 48, 48, 48,
45, 45, 45, 45, 45, 45, 14, 15, 48, 48, 48, 48, 14, 55, 48, 48,
16, 17, 18, 45, 2, 45, 46, 46, 18, 48, 2, 48, 49, 49, 48, 5,
45, 5, 45, 6, 45, 45, 45, 45, 48, 6, 48, 48, 48, 48, 48, 48,
45, 45, 45, 45, 45, 45, 45, 45, 48, 53, 48, 48, 48, 48, 48, 48,
45, 45, 14, 15, 16, 17, 18, 45, 14, 55, 48, 48, 18, 48, 48, 48,
2, 45, 46, 46, 45, 5, 45, 6, 53, 48, 56, 56, 48, 48, 48, 48,
45, 45, 45, 45, 45, 45, 45, 45, 48, 48, 48, 48, 48, 48, 48, 48,
45, 45, 45, 45, 45, 45, 14, 15, 48, 56, 48, 2, 3, 49, 49, 48,
16, 45, 18, 45, 2, 45, 46, 46, 5, 48, 6, 48, 48, 48, 48, 48,
45, 5, 45, 6, 45, 45, 45, 45, 48, 48, 8, 48, 48, 10, 11, 12,
45, 45, 45, 45, 45, 45, 45, 45, 13, 14, 15, 16, 17, 18, 19, 48,
45, 45, 14, 45, 16, 45, 18, 45, 48, 21, 48, 2, 48, 49, 49, 48,
2, 45, 46, 46, 45, 5, 45, 6, 5, 48, 6, 48, 48, 48, 48, 48,
45, 45, 45, 45, 45, 45, 45, 45, 48, 48, 8, 48, 48, 10, 11, 12,
45, 45, 45, 45, 45, 45, 14, 15, 13, 14, 15, 16, 17, 18, 48, 48,
16, 17, 18, 53, 45, 2, 45, 46, 48, 21, 48, 2, 48, 49, 49, 48,
46, 45, 5, 45, 6, 45, 45, 45, 5, 48, 6, 48, 48, 48, 48, 48,
45, 45, 45, 45, 45, 45, 45, 10, 48, 48, 57, 48, 48, 48, 48, 48,
45, 12, 45, 14, 15, 16, 17, 18, 48, 14, 15, 16, 17, 18, 48, 48,
45, 2, 45, 46, 46, 45, 5, 45, 48, 21, 48, 2, 48, 49, 49, 48,
6, 45, 45, 45, 45, 45, 45, 45, 5, 48, 6, 48, 48, 48, 48, 48,
53, 45, 45, 10, 45, 45, 45, 14, 48, 48, 48, 48, 48, 48, 48, 48,
15, 16, 17, 18, 45, 2, 45, 46, 48, 14, 15, 16, 17, 18, 48, 2,
46, 45, 5, 45, 6, 45, 45, 45, 48, 49, 49, 48, 5, 48, 6, 48,
45, 45, 45, 45, 54, 45, 45, 10, 48, 48, 48, 48, 48, 48, 48, 48,
11, 12, 45, 14, 15, 16, 17, 18, 48, 48, 48, 48, 48, 14, 15, 16,
45, 2, 45, 46, 46, 45, 5, 45, 48, 18, 48, 2, 48, 49, 49, 48,
6, 45, 45, 45, 45, 45, 45, 45, 5, 48, 6, 48, 48, 48, 48, 48,
45, 45, 45, 10, 11, 12, 45, 14, 48, 48, 48, 48, 48, 48, 48, 48,
15, 16, 17, 18, 45, 2, 3, 46, 48, 14, 48, 16, 48, 18, 48, 2,
46, 45, 5, 45, 6, 45, 45, 45, 48, 49, 49, 48, 5, 48, 6, 48,
45, 45, 45, 45, 8, 45, 45, 10, 48, 48, 48, 48, 48, 48, 48, 48,
11, 12, 13, 14, 15, 16, 17, 18, 48, 48, 48, 48, 48, 14, 15, 16,
45, 22, 23, 24, 24, 21, 25, 21, 17, 18, 57, 48, 2, 48, 49, 49,
26, 21, 21, 21, 21, 21, 21, 21, 48, 5, 48, 6, 48, 48, 48, 48,
55, 21, 21, 28, 29, 30, 31, 32, 48, 48, 48, 57, 48, 48, 48, 48,
33, 34, 35, 36, 37, 21, 22, 56, 48, 48, 14, 15, 16, 17, 18, 48,
24, 24, 21, 25, 21, 26, 21, 21, 2, 48, 49, 49, 48, 5, 48, 6,
21, 21, 21, 21, 21, 27, 21, 21, 48, 48, 48, 48, 48, 48, 48, 48,
28, 29, 30, 31, 32, 33, 34, 35, 48, 48, 10, 48, 12, 48, 14, 15,
36, 21, 1, 1, 2, 3, 46, 46, 16, 17, 18, 48, 48, 48, 21, 48,
45, 5, 45, 6, 1, 45, 45, 45, 2, 48, 49, 49, 48, 5, 48, 6,
45, 1, 45, 8, 45, 45, 10, 11, 48, 48, 48, 48, 48, 48, 48, 57,
12, 13, 14, 15, 16, 17, 18, 19, 48, 48, 10, 48, 48, 48, 14, 15,
45, 1, 45, 1, 1, 57, 57, 57, 16, 17, 18, 48, 48, 48, 21, 48,
57, 57, 57, 57, 57, 1, 57, 57, 2, 48, 49, 49, 48, 5, 48, 6,
57, 57, 1, 57, 57, 57, 57, 57, 48, 48, 48, 48, 48, 48, 48, 58,
57, 57, 57, 57, 57, 57, 57, 57, 48, 48, 10, 11, 12, 48, 14, 15,
57, 57, 1, 57, 58, 57, 0 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[] = { static const char _myanmar_syllable_machine_trans_targs[] = {
0, 1, 24, 34, 0, 25, 31, 47, 0, 1, 26, 37, 0, 27, 33, 51,
36, 50, 37, 42, 43, 44, 27, 39, 39, 54, 40, 46, 47, 48, 29, 42,
40, 41, 30, 46, 51, 0, 2, 12, 43, 44, 32, 50, 55, 45, 0, 2,
0, 3, 9, 13, 14, 19, 20, 21, 13, 0, 3, 9, 14, 15, 21, 22,
5, 16, 17, 18, 8, 23, 4, 6, 23, 5, 17, 18, 19, 8, 25, 20,
7, 10, 11, 15, 22, 0, 0, 26, 4, 6, 7, 10, 12, 11, 16, 24,
28, 29, 32, 33, 35, 38, 45, 48, 0, 0, 28, 30, 31, 34, 36, 35,
49, 0, 0 38, 41, 49, 52, 53, 0, 0
}; };
static const char _myanmar_syllable_machine_trans_actions[] = { static const char _myanmar_syllable_machine_trans_actions[] = {
3, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0,
6, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 7, 8, 0,
0, 0, 0, 0, 0, 0, 0, 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[] = { 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, 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[] = { 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, 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[] = { static const short _myanmar_syllable_machine_eof_trans[] = {
0, 22, 22, 22, 22, 22, 22, 22, 0, 23, 23, 23, 23, 23, 23, 23,
22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,
22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,
46, 46, 46, 46, 46, 46, 46, 46, 23, 23, 49, 49, 49, 49, 49, 49,
46, 46, 46, 46, 46, 46, 46, 46, 49, 49, 49, 49, 49, 49, 49, 49,
46, 46, 46, 46, 46, 46, 46, 22, 49, 49, 49, 49, 49, 49, 49, 49,
22, 46, 58, 58 49, 49, 49, 23, 23, 49, 62, 62
}; };
static const int myanmar_syllable_machine_start = 0; 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) \ #define found_syllable(syllable_type) \
@ -351,7 +378,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
int cs; int cs;
hb_glyph_info_t *info = buffer->info; 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; cs = myanmar_syllable_machine_start;
ts = 0; ts = 0;
@ -359,7 +386,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
act = 0; act = 0;
} }
#line 121 "hb-ot-shape-complex-myanmar-machine.rl" #line 122 "hb-ot-shape-complex-myanmar-machine.rl"
p = 0; p = 0;
@ -367,7 +394,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
unsigned int syllable_serial = 1; 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 _slen;
int _trans; int _trans;
@ -381,7 +408,7 @@ _resume:
#line 1 "NONE" #line 1 "NONE"
{ts = p;} {ts = p;}
break; 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); _keys = _myanmar_syllable_machine_trans_keys + (cs<<1);
@ -400,38 +427,38 @@ _eof_trans:
switch ( _myanmar_syllable_machine_trans_actions[_trans] ) { switch ( _myanmar_syllable_machine_trans_actions[_trans] ) {
case 6: 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); }} {te = p+1;{ found_syllable (myanmar_consonant_syllable); }}
break; break;
case 4: 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); }} {te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
break; break;
case 10: 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); }} {te = p+1;{ found_syllable (myanmar_punctuation_cluster); }}
break; break;
case 8: 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); }} {te = p+1;{ found_syllable (myanmar_broken_cluster); }}
break; break;
case 3: 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); }} {te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
break; break;
case 5: 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); }} {te = p;p--;{ found_syllable (myanmar_consonant_syllable); }}
break; break;
case 7: 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); }} {te = p;p--;{ found_syllable (myanmar_broken_cluster); }}
break; break;
case 9: 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); }} {te = p;p--;{ found_syllable (myanmar_non_myanmar_cluster); }}
break; break;
#line 435 "hb-ot-shape-complex-myanmar-machine.hh" #line 462 "hb-ot-shape-complex-myanmar-machine.hh"
} }
_again: _again:
@ -440,7 +467,7 @@ _again:
#line 1 "NONE" #line 1 "NONE"
{ts = 0;} {ts = 0;}
break; break;
#line 444 "hb-ot-shape-complex-myanmar-machine.hh" #line 471 "hb-ot-shape-complex-myanmar-machine.hh"
} }
if ( ++p != pe ) 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 H = 4;
export IV = 2; export IV = 2;
export MH = 21; export MH = 21;
export ML = 33;
export MR = 22; export MR = 22;
export MW = 23; export MW = 23;
export MY = 24; export MY = 24;
@ -76,9 +77,9 @@ k = (Ra As H); # Kinzi
c = C|Ra; # is_consonant 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?)?; 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?; pwo_tone_group = PT A* DB? As?;
complex_syllable_tail = As* medial_group main_vowel_group post_vowel_group* pwo_tone_group* V* j?; 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_VS = 30, /* Variation selectors */
OT_P = 31, /* Punctuation */ OT_P = 31, /* Punctuation */
OT_D = 32, /* Digits except zero */ OT_D = 32, /* Digits except zero */
OT_ML = 33, /* Various consonant medial types */
}; };
using myanmar_position_t = indic_position_t; 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. */ cat = OT_D; /* XXX The spec says D0, but Uniscribe doesn't seem to do. */
break; break;
case 0x103Eu: case 0x1060u: case 0x103Eu:
cat = OT_MH; cat = OT_MH;
break; break;
case 0x1060u:
cat = OT_ML;
break;
case 0x103Cu: case 0x103Cu:
cat = OT_MR; cat = OT_MR;
break; break;