Revert "[ragel] Regenerate ragel-generated files using ragel 7.0.0.11 May 2018"

This reverts commit 9b05db33b5.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1708
This commit is contained in:
Behdad Esfahbod 2019-05-13 14:10:48 -07:00
parent 52c15b053a
commit 8461ade783
6 changed files with 3455 additions and 3962 deletions

View File

@ -1,3 +1,5 @@
#line 1 "hb-buffer-deserialize-json.rl"
/* /*
* Copyright © 2013 Google, Inc. * Copyright © 2013 Google, Inc.
* *
@ -30,132 +32,377 @@
#include "hb.hh" #include "hb.hh"
#line 36 "hb-buffer-deserialize-json.hh"
static const unsigned char _deserialize_json_trans_keys[] = { static const unsigned char _deserialize_json_trans_keys[] = {
1u, 0u, 0u, 18u, 0u, 2u, 11u, 14u, 0u, 0u, 9u, 123u, 9u, 34u, 97u, 103u, 120u, 121u, 34u, 34u, 9u, 58u, 9u, 57u,
16u, 17u, 2u, 2u, 0u, 8u, 0u, 7u, 48u, 57u, 9u, 125u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u,
6u, 7u, 0u, 19u, 0u, 19u, 0u, 19u, 9u, 125u, 9u, 125u, 108u, 108u, 34u, 34u, 9u, 58u, 9u, 57u, 9u, 125u, 9u, 125u,
2u, 2u, 0u, 8u, 0u, 7u, 6u, 7u, 120u, 121u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 34u, 34u,
0u, 19u, 0u, 19u, 15u, 15u, 2u, 2u, 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u,
0u, 8u, 0u, 7u, 0u, 19u, 0u, 19u, 65u, 122u, 34u, 122u, 9u, 125u, 9u, 125u, 9u, 93u, 9u, 123u, 0u, 0u, 0
16u, 17u, 2u, 2u, 0u, 8u, 0u, 7u,
6u, 7u, 0u, 19u, 0u, 19u, 2u, 2u,
0u, 8u, 0u, 7u, 6u, 7u, 0u, 19u,
0u, 19u, 2u, 2u, 0u, 8u, 0u, 7u,
9u, 17u, 2u, 17u, 0u, 19u, 0u, 19u,
0u, 10u, 0u, 18u, 1u, 0u, 0u
}; };
static const char _deserialize_json_char_class[] = { static const char _deserialize_json_key_spans[] = {
0, 0, 0, 0, 0, 1, 1, 1, 0, 115, 26, 7, 2, 1, 50, 49,
1, 1, 1, 1, 1, 1, 1, 1, 10, 117, 117, 117, 1, 50, 49, 10,
1, 1, 1, 1, 1, 1, 1, 0, 117, 117, 1, 1, 50, 49, 117, 117,
1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 50, 49, 10, 117, 117, 1,
1, 1, 1, 3, 4, 5, 1, 6, 50, 49, 10, 117, 117, 1, 50, 49,
7, 7, 7, 7, 7, 7, 7, 7, 58, 89, 117, 117, 85, 115, 0
7, 8, 1, 1, 1, 1, 1, 1,
9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 1, 1, 10, 1, 5, 1,
11, 9, 12, 13, 9, 9, 14, 9,
9, 9, 9, 15, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 16,
17, 9, 18, 1, 19, 0
}; };
static const short _deserialize_json_index_offsets[] = { static const short _deserialize_json_index_offsets[] = {
0, 0, 19, 22, 26, 28, 29, 38, 0, 0, 116, 143, 151, 154, 156, 207,
46, 48, 68, 88, 108, 109, 118, 126, 257, 268, 386, 504, 622, 624, 675, 725,
128, 148, 168, 169, 170, 179, 187, 207, 736, 854, 972, 974, 976, 1027, 1077, 1195,
227, 229, 230, 239, 247, 249, 269, 289, 1313, 1316, 1318, 1369, 1419, 1430, 1548, 1666,
290, 299, 307, 309, 329, 349, 350, 359, 1668, 1719, 1769, 1780, 1898, 2016, 2018, 2069,
367, 376, 392, 412, 432, 443, 462, 0 2119, 2178, 2268, 2386, 2504, 2590, 2706
}; };
static const char _deserialize_json_indicies[] = { static const char _deserialize_json_indicies[] = {
0, 0, 0, 0, 0, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 2, 3, 1, 4, 5, 6,
7, 8, 9, 10, 11, 11, 1, 1,
1, 1, 1, 1, 1, 12, 12, 1,
1, 1, 13, 1, 14, 15, 16, 17,
18, 1, 1, 19, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 20, 21, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 2, 1, 3, 3, 3,
3, 3, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 3, 1, 4, 1,
5, 1, 6, 7, 1, 1, 8, 1,
9, 10, 1, 11, 1, 11, 11, 11,
11, 11, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 11, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 12, 1,
12, 12, 12, 12, 12, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 12,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 13, 1, 1, 14,
15, 15, 15, 15, 15, 15, 15, 15,
15, 1, 16, 17, 17, 17, 17, 17,
17, 17, 17, 17, 1, 18, 18, 18,
18, 18, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 18, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
19, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 20, 1, 21, 21, 21, 21, 21,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 21, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 3, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 22, 1, 1, 1, 1, 1, 1, 1, 22,
18, 1, 1, 19, 1, 1, 17, 17, 1, 18, 18, 18, 18, 18, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 20, 23, 23, 1, 1,
1, 1, 1, 1, 1, 24, 24, 1,
1, 1, 25, 1, 26, 27, 28, 29,
30, 1, 1, 31, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 32, 30, 1, 1, 31, 18, 1, 1, 1, 1, 1, 1, 1,
1, 1, 29, 29, 1, 1, 1, 1, 1, 1, 1, 1, 19, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 32, 17, 17, 17, 17, 17, 17, 17, 17,
33, 34, 34, 1, 1, 1, 1, 1, 17, 17, 1, 1, 1, 1, 1, 1,
1, 1, 35, 35, 1, 1, 1, 1,
1, 36, 37, 38, 1, 1, 39, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 40, 38,
1, 1, 39, 1, 1, 41, 41, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 40, 42, 43, 44, 44, 1,
1, 1, 1, 1, 1, 1, 45, 45,
1, 1, 1, 46, 1, 47, 48, 49,
50, 51, 1, 1, 52, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 53, 51, 1, 1,
52, 1, 1, 50, 50, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
53, 54, 54, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 55, 55, 1, 1, 1, 56, 1, 1, 1, 1, 1, 1, 1, 1,
1, 57, 58, 59, 60, 61, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 20, 1, 23,
1, 23, 23, 23, 23, 23, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
23, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 24, 1, 24, 24, 24, 24,
24, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 24, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
25, 1, 1, 26, 27, 27, 27, 27,
27, 27, 27, 27, 27, 1, 28, 29,
29, 29, 29, 29, 29, 29, 29, 29,
1, 30, 30, 30, 30, 30, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
30, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 31, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 32, 1, 30,
30, 30, 30, 30, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 30, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 31, 1, 1, 1, 29, 29,
29, 29, 29, 29, 29, 29, 29, 29,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 32, 1, 33, 1, 34,
1, 34, 34, 34, 34, 34, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
34, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 35, 1, 35, 35, 35, 35,
35, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 35, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 36, 37, 37, 37, 37,
37, 37, 37, 37, 37, 1, 38, 38,
38, 38, 38, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 38, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 39, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 40, 1, 38, 38, 38, 38,
38, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 38, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 39,
1, 1, 1, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
40, 1, 42, 43, 1, 44, 1, 44,
44, 44, 44, 44, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 44, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
45, 1, 45, 45, 45, 45, 45, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 45, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 46, 1,
1, 47, 48, 48, 48, 48, 48, 48,
48, 48, 48, 1, 49, 50, 50, 50,
50, 50, 50, 50, 50, 50, 1, 51,
51, 51, 51, 51, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 51, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 52, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 53, 1, 51, 51, 51,
51, 51, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 51, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
52, 1, 1, 1, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 53, 1, 54, 1, 54, 54, 54,
54, 54, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 54, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 55, 1,
55, 55, 55, 55, 55, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 55,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 56, 1, 1, 57,
58, 58, 58, 58, 58, 58, 58, 58,
58, 1, 59, 60, 60, 60, 60, 60,
60, 60, 60, 60, 1, 61, 61, 61,
61, 61, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 61, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
62, 1, 1, 1, 1, 1, 1, 1, 62, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
63, 61, 1, 1, 62, 1, 1, 60, 1, 1, 1, 1, 1, 1, 1, 1,
60, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 63, 64, 64, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 65, 65, 1, 1, 1, 1, 1, 1, 1, 1,
1, 66, 1, 1, 1, 67, 68, 69, 1, 1, 1, 1, 1, 1, 1, 1,
1, 69, 69, 69, 69, 69, 69, 69, 1, 1, 1, 1, 1, 1, 1, 1,
70, 1, 71, 71, 71, 71, 1, 71, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 63, 1, 61, 61, 61, 61, 61,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 61, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 62, 1,
1, 1, 60, 60, 60, 60, 60, 60,
60, 60, 60, 60, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 63,
1, 64, 1, 64, 64, 64, 64, 64,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 64, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 65, 1, 65, 65,
65, 65, 65, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 65, 1, 66,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 67, 68, 68,
68, 68, 68, 68, 68, 68, 68, 1,
69, 69, 69, 69, 69, 69, 69, 69,
69, 69, 69, 69, 69, 69, 69, 69,
69, 69, 69, 69, 69, 69, 69, 69,
69, 69, 1, 1, 1, 1, 1, 1,
69, 69, 69, 69, 69, 69, 69, 69,
69, 69, 69, 69, 69, 69, 69, 69,
69, 69, 69, 69, 69, 69, 69, 69,
69, 69, 1, 70, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 71, 71,
1, 71, 71, 71, 71, 71, 71, 71, 1, 71, 71, 71, 71, 71, 71, 71,
72, 1, 1, 73, 1, 1, 1, 1, 71, 71, 71, 1, 1, 1, 1, 1,
1, 1, 71, 71, 71, 71, 71, 71,
71, 71, 71, 71, 71, 71, 71, 71,
71, 71, 71, 71, 71, 71, 71, 71,
71, 71, 71, 71, 1, 1, 1, 1,
71, 1, 71, 71, 71, 71, 71, 71,
71, 71, 71, 71, 71, 71, 71, 71,
71, 71, 71, 71, 71, 71, 71, 71,
71, 71, 71, 71, 1, 72, 72, 72,
72, 72, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 72, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
73, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 74, 1, 72, 72, 72, 72, 72,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 72, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 73, 1,
1, 1, 75, 75, 75, 75, 75, 75,
75, 75, 75, 75, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 74, 72, 1, 1, 73,
1, 1, 75, 75, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 74, 1, 1, 1, 1, 1, 1, 1, 74,
76, 1, 1, 77, 1, 1, 1, 1, 1, 76, 76, 76, 76, 76, 1, 1,
1, 1, 78, 0, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 2, 0 1, 1, 1, 1, 1, 1, 1, 1,
76, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 77, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 78, 1, 0,
0, 0, 0, 0, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 2, 1, 1, 0
}; };
static const char _deserialize_json_index_defaults[] = { static const char _deserialize_json_trans_targs[] = {
0, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 0
};
static const char _deserialize_json_trans_cond_spaces[] = {
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 0
};
static const char _deserialize_json_cond_targs[] = {
1, 0, 2, 2, 3, 4, 18, 24, 1, 0, 2, 2, 3, 4, 18, 24,
37, 5, 12, 6, 7, 8, 9, 11, 37, 5, 12, 6, 7, 8, 9, 11,
9, 11, 10, 2, 44, 10, 44, 13, 9, 11, 10, 2, 44, 10, 44, 13,
@ -165,10 +412,10 @@ static const char _deserialize_json_cond_targs[] = {
30, 29, 30, 10, 2, 44, 32, 33, 30, 29, 30, 10, 2, 44, 32, 33,
34, 35, 36, 35, 36, 10, 2, 44, 34, 35, 36, 35, 36, 10, 2, 44,
38, 39, 40, 42, 43, 41, 10, 41, 38, 39, 40, 42, 43, 41, 10, 41,
10, 2, 44, 43, 44, 45, 46, 0 10, 2, 44, 43, 44, 45, 46
}; };
static const char _deserialize_json_cond_actions[] = { static const char _deserialize_json_trans_actions[] = {
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2,
0, 0, 3, 3, 4, 0, 5, 0, 0, 0, 3, 3, 4, 0, 5, 0,
@ -178,60 +425,7 @@ static const char _deserialize_json_cond_actions[] = {
2, 0, 0, 10, 10, 11, 0, 0, 2, 0, 0, 10, 10, 11, 0, 0,
2, 2, 2, 0, 0, 12, 12, 13, 2, 2, 2, 0, 0, 12, 12, 13,
0, 0, 0, 2, 2, 2, 14, 0, 0, 0, 0, 2, 2, 2, 14, 0,
15, 15, 16, 0, 0, 0, 0, 0 15, 15, 16, 0, 0, 0, 0
};
static const char _deserialize_json_eof_cond_spaces[] = {
-1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 0
};
static const char _deserialize_json_eof_cond_key_offs[] = {
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 _deserialize_json_eof_cond_key_lens[] = {
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 _deserialize_json_eof_cond_keys[] = {
0
};
static const char _deserialize_json_nfa_targs[] = {
0, 0
};
static const char _deserialize_json_nfa_offsets[] = {
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 _deserialize_json_nfa_push_actions[] = {
0, 0
};
static const char _deserialize_json_nfa_pop_trans[] = {
0, 0
}; };
static const int deserialize_json_start = 1; static const int deserialize_json_start = 1;
@ -241,6 +435,8 @@ static const int deserialize_json_error = 0;
static const int deserialize_json_en_main = 1; static const int deserialize_json_en_main = 1;
#line 97 "hb-buffer-deserialize-json.rl"
static hb_bool_t static hb_bool_t
_hb_buffer_deserialize_glyphs_json (hb_buffer_t *buffer, _hb_buffer_deserialize_glyphs_json (hb_buffer_t *buffer,
@ -266,224 +462,177 @@ hb_font_t *font)
hb_glyph_info_t info = {0}; hb_glyph_info_t info = {0};
hb_glyph_position_t pos = {0}; hb_glyph_position_t pos = {0};
#line 466 "hb-buffer-deserialize-json.hh"
{ {
cs = (int)deserialize_json_start; cs = deserialize_json_start;
} }
#line 471 "hb-buffer-deserialize-json.hh"
{ {
unsigned int _trans = 0;const unsigned char * _keys;const char * _inds; { int _slen;
int _trans;
const unsigned char *_keys;
const char *_inds;
if ( p == pe ) if ( p == pe )
goto _test_eof; goto _test_eof;
if ( cs == 0 ) if ( cs == 0 )
goto _out; goto _out;
_resume: { _resume:
_keys = ( _deserialize_json_trans_keys + ((cs<<1))); _keys = _deserialize_json_trans_keys + (cs<<1);
_inds = ( _deserialize_json_indicies + (_deserialize_json_index_offsets[cs])); _inds = _deserialize_json_indicies + _deserialize_json_index_offsets[cs];
if ( ( (*( p))) <= 125 && ( (*( p))) >= 9 ) _slen = _deserialize_json_key_spans[cs];
{ _trans = _inds[ _slen > 0 && _keys[0] <=(*p) &&
int _ic = (int)_deserialize_json_char_class[(int)( (*( p))) - 9]; (*p) <= _keys[1] ?
if ( _ic <= (int)(*( _keys+1)) && _ic >= (int)(*( _keys)) ) (*p) - _keys[0] : _slen ];
_trans = (unsigned int)(*( _inds + (int)( _ic - (int)(*( _keys)) ) ));
else
_trans = (unsigned int)_deserialize_json_index_defaults[cs];
}
else {
_trans = (unsigned int)_deserialize_json_index_defaults[cs];
}
goto _match_cond; cs = _deserialize_json_trans_targs[_trans];
}
_match_cond: {
cs = (int)_deserialize_json_cond_targs[_trans];
if ( _deserialize_json_cond_actions[_trans] == 0 ) if ( _deserialize_json_trans_actions[_trans] == 0 )
goto _again; goto _again;
switch ( _deserialize_json_cond_actions[_trans] ) { switch ( _deserialize_json_trans_actions[_trans] ) {
case 1: { case 1:
{
#line 38 "hb-buffer-deserialize-json.rl" #line 38 "hb-buffer-deserialize-json.rl"
{
memset (&info, 0, sizeof (info)); memset (&info, 0, sizeof (info));
memset (&pos , 0, sizeof (pos )); memset (&pos , 0, sizeof (pos ));
} }
break;
break; } case 5:
case 5: {
{
#line 43 "hb-buffer-deserialize-json.rl" #line 43 "hb-buffer-deserialize-json.rl"
{
buffer->add_info (info); buffer->add_info (info);
if (unlikely (!buffer->successful)) if (unlikely (!buffer->successful))
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
break; } case 2:
case 2: {
{
#line 51 "hb-buffer-deserialize-json.rl" #line 51 "hb-buffer-deserialize-json.rl"
{
tok = p; tok = p;
} }
break;
break; } case 14:
case 14: {
{
#line 55 "hb-buffer-deserialize-json.rl" #line 55 "hb-buffer-deserialize-json.rl"
{
if (!hb_font_glyph_from_string (font, if (!hb_font_glyph_from_string (font,
tok, p - tok, tok, p - tok,
&info.codepoint)) &info.codepoint))
return false; return false;
} }
break;
break; } case 15:
case 15: {
{
#line 62 "hb-buffer-deserialize-json.rl" #line 62 "hb-buffer-deserialize-json.rl"
if (!parse_uint (tok, p, &info.codepoint)) return false; } { if (!parse_uint (tok, p, &info.codepoint)) return false; }
break;
break; } case 8:
case 8: {
{
#line 63 "hb-buffer-deserialize-json.rl" #line 63 "hb-buffer-deserialize-json.rl"
if (!parse_uint (tok, p, &info.cluster )) return false; } { if (!parse_uint (tok, p, &info.cluster )) return false; }
break;
break; } case 10:
case 10: {
{
#line 64 "hb-buffer-deserialize-json.rl" #line 64 "hb-buffer-deserialize-json.rl"
if (!parse_int (tok, p, &pos.x_offset )) return false; } { if (!parse_int (tok, p, &pos.x_offset )) return false; }
break;
break; } case 12:
case 12: {
{
#line 65 "hb-buffer-deserialize-json.rl" #line 65 "hb-buffer-deserialize-json.rl"
if (!parse_int (tok, p, &pos.y_offset )) return false; } { if (!parse_int (tok, p, &pos.y_offset )) return false; }
break;
break; } case 3:
case 3: {
{
#line 66 "hb-buffer-deserialize-json.rl" #line 66 "hb-buffer-deserialize-json.rl"
if (!parse_int (tok, p, &pos.x_advance)) return false; } { if (!parse_int (tok, p, &pos.x_advance)) return false; }
break;
break; } case 6:
case 6: {
{
#line 67 "hb-buffer-deserialize-json.rl" #line 67 "hb-buffer-deserialize-json.rl"
if (!parse_int (tok, p, &pos.y_advance)) return false; } { if (!parse_int (tok, p, &pos.y_advance)) return false; }
break;
break; } case 16:
case 16: {
{
#line 62 "hb-buffer-deserialize-json.rl" #line 62 "hb-buffer-deserialize-json.rl"
if (!parse_uint (tok, p, &info.codepoint)) return false; } { if (!parse_uint (tok, p, &info.codepoint)) return false; }
{
#line 43 "hb-buffer-deserialize-json.rl" #line 43 "hb-buffer-deserialize-json.rl"
{
buffer->add_info (info); buffer->add_info (info);
if (unlikely (!buffer->successful)) if (unlikely (!buffer->successful))
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
break; } case 9:
case 9: {
{
#line 63 "hb-buffer-deserialize-json.rl" #line 63 "hb-buffer-deserialize-json.rl"
if (!parse_uint (tok, p, &info.cluster )) return false; } { if (!parse_uint (tok, p, &info.cluster )) return false; }
{
#line 43 "hb-buffer-deserialize-json.rl" #line 43 "hb-buffer-deserialize-json.rl"
{
buffer->add_info (info); buffer->add_info (info);
if (unlikely (!buffer->successful)) if (unlikely (!buffer->successful))
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
break; } case 11:
case 11: {
{
#line 64 "hb-buffer-deserialize-json.rl" #line 64 "hb-buffer-deserialize-json.rl"
if (!parse_int (tok, p, &pos.x_offset )) return false; } { if (!parse_int (tok, p, &pos.x_offset )) return false; }
{
#line 43 "hb-buffer-deserialize-json.rl" #line 43 "hb-buffer-deserialize-json.rl"
{
buffer->add_info (info); buffer->add_info (info);
if (unlikely (!buffer->successful)) if (unlikely (!buffer->successful))
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
break; } case 13:
case 13: {
{
#line 65 "hb-buffer-deserialize-json.rl" #line 65 "hb-buffer-deserialize-json.rl"
if (!parse_int (tok, p, &pos.y_offset )) return false; } { if (!parse_int (tok, p, &pos.y_offset )) return false; }
{
#line 43 "hb-buffer-deserialize-json.rl" #line 43 "hb-buffer-deserialize-json.rl"
{
buffer->add_info (info); buffer->add_info (info);
if (unlikely (!buffer->successful)) if (unlikely (!buffer->successful))
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
break; } case 4:
case 4: {
{
#line 66 "hb-buffer-deserialize-json.rl" #line 66 "hb-buffer-deserialize-json.rl"
if (!parse_int (tok, p, &pos.x_advance)) return false; } { if (!parse_int (tok, p, &pos.x_advance)) return false; }
{
#line 43 "hb-buffer-deserialize-json.rl" #line 43 "hb-buffer-deserialize-json.rl"
{
buffer->add_info (info); buffer->add_info (info);
if (unlikely (!buffer->successful)) if (unlikely (!buffer->successful))
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
break; } case 7:
case 7: {
{
#line 67 "hb-buffer-deserialize-json.rl" #line 67 "hb-buffer-deserialize-json.rl"
if (!parse_int (tok, p, &pos.y_advance)) return false; } { if (!parse_int (tok, p, &pos.y_advance)) return false; }
{
#line 43 "hb-buffer-deserialize-json.rl" #line 43 "hb-buffer-deserialize-json.rl"
{
buffer->add_info (info); buffer->add_info (info);
if (unlikely (!buffer->successful)) if (unlikely (!buffer->successful))
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
break; } #line 624 "hb-buffer-deserialize-json.hh"
} }
_again:
}
_again: {
if ( cs == 0 ) if ( cs == 0 )
goto _out; goto _out;
p += 1; if ( ++p != pe )
if ( p != pe )
goto _resume; goto _resume;
_test_eof: {}
_out: {}
} }
_test_eof: { {}
} #line 125 "hb-buffer-deserialize-json.rl"
_out: { {}
}
}
}
*end_ptr = p; *end_ptr = p;

View File

@ -1,3 +1,5 @@
#line 1 "hb-buffer-deserialize-text.rl"
/* /*
* Copyright © 2013 Google, Inc. * Copyright © 2013 Google, Inc.
* *
@ -30,160 +32,277 @@
#include "hb.hh" #include "hb.hh"
#line 36 "hb-buffer-deserialize-text.hh"
static const unsigned char _deserialize_text_trans_keys[] = { static const unsigned char _deserialize_text_trans_keys[] = {
1u, 0u, 0u, 10u, 4u, 7u, 6u, 7u, 0u, 0u, 9u, 122u, 45u, 57u, 48u, 57u, 45u, 57u, 48u, 57u, 48u, 57u, 45u, 57u,
4u, 7u, 6u, 7u, 6u, 7u, 4u, 7u, 48u, 57u, 44u, 44u, 45u, 57u, 48u, 57u, 44u, 57u, 9u, 124u, 9u, 124u, 0u, 0u,
6u, 7u, 3u, 3u, 4u, 7u, 6u, 7u, 9u, 122u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u,
3u, 7u, 0u, 12u, 0u, 12u, 1u, 0u, 9u, 124u, 9u, 124u, 9u, 124u, 0
0u, 10u, 0u, 12u, 0u, 12u, 0u, 12u,
0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u,
0u, 12u, 0u, 12u, 0u, 12u, 0u
}; };
static const char _deserialize_text_char_class[] = { static const char _deserialize_text_key_spans[] = {
0, 0, 0, 0, 0, 1, 1, 1, 0, 114, 13, 10, 13, 10, 10, 13,
1, 1, 1, 1, 1, 1, 1, 1, 10, 1, 13, 10, 14, 116, 116, 0,
1, 1, 1, 1, 1, 1, 1, 0, 114, 116, 116, 116, 116, 116, 116, 116,
1, 1, 1, 1, 1, 1, 1, 1, 116, 116, 116
1, 1, 2, 3, 4, 5, 1, 6,
7, 7, 7, 7, 7, 7, 7, 7,
7, 1, 1, 1, 8, 1, 1, 9,
10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 1, 1, 11, 1, 5, 1,
10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 1, 12, 0
}; };
static const short _deserialize_text_index_offsets[] = { static const short _deserialize_text_index_offsets[] = {
0, 0, 11, 15, 17, 21, 23, 25, 0, 0, 115, 129, 140, 154, 165, 176,
29, 31, 32, 36, 38, 43, 56, 69, 190, 201, 203, 217, 228, 243, 360, 477,
69, 80, 93, 106, 119, 132, 145, 158, 478, 593, 710, 827, 944, 1061, 1178, 1295,
171, 184, 197, 0 1412, 1529, 1646
}; };
static const char _deserialize_text_indicies[] = { static const char _deserialize_text_indicies[] = {
0, 1, 1, 1, 1, 1, 2, 3, 0, 0, 0, 0, 0, 1, 1,
1, 1, 4, 5, 1, 6, 7, 8, 1, 1, 1, 1, 1, 1, 1, 1,
9, 10, 1, 11, 12, 13, 14, 15, 1, 1, 1, 1, 1, 1, 1, 1,
16, 17, 1, 18, 19, 20, 21, 22,
23, 1, 24, 25, 26, 27, 22, 1,
1, 21, 21, 28, 1, 29, 1, 1,
1, 1, 1, 30, 31, 1, 32, 33,
34, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 35, 36, 0, 1, 1,
1, 1, 1, 2, 3, 1, 1, 4,
28, 1, 29, 1, 1, 1, 37, 37,
30, 31, 1, 32, 33, 38, 1, 1,
39, 1, 1, 1, 1, 1, 1, 1,
40, 41, 42, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 43, 44, 42,
1, 1, 1, 1, 1, 14, 14, 1,
1, 1, 43, 44, 38, 1, 1, 39,
1, 1, 9, 9, 1, 1, 1, 40,
41, 45, 1, 46, 1, 1, 1, 1,
1, 1, 47, 1, 48, 49, 50, 1,
51, 1, 1, 1, 1, 1, 1, 1,
1, 52, 53, 50, 1, 51, 1, 1,
1, 27, 27, 1, 1, 1, 52, 53,
45, 1, 46, 1, 1, 1, 54, 54,
1, 47, 1, 48, 49, 28, 1, 29,
1, 55, 55, 55, 55, 30, 31, 55,
32, 33, 0
};
static const char _deserialize_text_index_defaults[] = {
0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 3, 3, 3, 3, 3, 3, 3,
3, 3, 1, 1, 1, 1, 1, 1,
1, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 1, 1, 1, 1, 1,
1, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 1, 5, 1, 1, 6,
7, 7, 7, 7, 7, 7, 7, 7,
7, 1, 8, 9, 9, 9, 9, 9,
9, 9, 9, 9, 1, 10, 1, 1,
11, 12, 12, 12, 12, 12, 12, 12,
12, 12, 1, 13, 14, 14, 14, 14,
14, 14, 14, 14, 14, 1, 15, 16,
16, 16, 16, 16, 16, 16, 16, 16,
1, 17, 1, 1, 18, 19, 19, 19,
19, 19, 19, 19, 19, 19, 1, 20,
21, 21, 21, 21, 21, 21, 21, 21,
21, 1, 22, 1, 23, 1, 1, 24,
25, 25, 25, 25, 25, 25, 25, 25,
25, 1, 26, 27, 27, 27, 27, 27,
27, 27, 27, 27, 1, 22, 1, 1,
1, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 1, 28, 28, 28, 28,
28, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 0 1, 1, 1, 28, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 29, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
30, 1, 1, 31, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
32, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 33,
1, 34, 34, 34, 34, 34, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
34, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 35, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 36, 1, 1, 0,
0, 0, 0, 0, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 2, 3,
3, 3, 3, 3, 3, 3, 3, 3,
1, 1, 1, 1, 1, 1, 1, 4,
4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4,
4, 1, 1, 1, 1, 1, 1, 4,
4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4,
4, 1, 28, 28, 28, 28, 28, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 28, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 29, 1, 1, 1,
1, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 1, 1, 1, 30, 1,
1, 31, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 32, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 33, 1, 38,
38, 38, 38, 38, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 38, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 39, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 40, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 41, 1, 42, 42, 42, 42,
42, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 42, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
43, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 44,
1, 42, 42, 42, 42, 42, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
42, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 43, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 44, 1, 38, 38,
38, 38, 38, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 38, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 39, 1, 1, 1, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 40, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 41, 1, 45, 45, 45, 45, 45,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 45, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 46, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 47, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 48,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 49, 1,
50, 50, 50, 50, 50, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 50,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 51, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 52, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 53, 1, 50, 50, 50,
50, 50, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 50, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 51,
1, 1, 1, 1, 27, 27, 27, 27,
27, 27, 27, 27, 27, 27, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 52, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
53, 1, 45, 45, 45, 45, 45, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 45, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 46, 1, 1, 1,
1, 54, 54, 54, 54, 54, 54, 54,
54, 54, 54, 1, 1, 1, 1, 1,
1, 47, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 48, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 49, 1, 28,
28, 28, 28, 28, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 28, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 29, 1, 55, 55, 1, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55,
1, 1, 1, 30, 1, 1, 31, 55,
55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55,
55, 1, 1, 32, 1, 55, 1, 55,
55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55,
55, 1, 33, 1, 0
}; };
static const char _deserialize_text_trans_cond_spaces[] = { static const char _deserialize_text_trans_targs[] = {
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
0
};
static const char _deserialize_text_cond_targs[] = {
1, 0, 13, 17, 26, 3, 18, 21, 1, 0, 13, 17, 26, 3, 18, 21,
18, 21, 5, 19, 20, 19, 20, 22, 18, 21, 5, 19, 20, 19, 20, 22,
25, 8, 9, 12, 9, 12, 10, 11, 25, 8, 9, 12, 9, 12, 10, 11,
23, 24, 23, 24, 14, 2, 6, 7, 23, 24, 23, 24, 14, 2, 6, 7,
15, 16, 14, 15, 16, 17, 14, 4, 15, 16, 14, 15, 16, 17, 14, 4,
15, 16, 14, 15, 16, 14, 2, 7, 15, 16, 14, 15, 16, 14, 2, 7,
15, 16, 14, 2, 15, 16, 25, 26, 15, 16, 14, 2, 15, 16, 25, 26
0
}; };
static const char _deserialize_text_cond_actions[] = { static const char _deserialize_text_trans_actions[] = {
0, 0, 1, 1, 1, 2, 2, 2, 0, 0, 1, 1, 1, 2, 2, 2,
0, 0, 2, 2, 2, 0, 0, 2, 0, 0, 2, 2, 2, 0, 0, 2,
2, 2, 2, 2, 0, 0, 3, 2, 2, 2, 2, 2, 0, 0, 3, 2,
2, 2, 0, 0, 4, 5, 5, 5, 2, 2, 0, 0, 4, 5, 5, 5,
4, 4, 0, 0, 0, 0, 6, 7, 4, 4, 0, 0, 0, 0, 6, 7,
6, 6, 8, 8, 8, 9, 10, 10, 6, 6, 8, 8, 8, 9, 10, 10,
9, 9, 11, 12, 11, 11, 0, 0, 9, 9, 11, 12, 11, 11, 0, 0
0
};
static const char _deserialize_text_eof_cond_spaces[] = {
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 0
};
static const char _deserialize_text_eof_cond_key_offs[] = {
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 _deserialize_text_eof_cond_key_lens[] = {
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 _deserialize_text_eof_cond_keys[] = {
0
}; };
static const char _deserialize_text_eof_actions[] = { static const char _deserialize_text_eof_actions[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,
0, 4, 6, 8, 8, 6, 9, 11, 0, 4, 6, 8, 8, 6, 9, 11,
11, 9, 4, 0 11, 9, 4
};
static const char _deserialize_text_nfa_targs[] = {
0, 0
};
static const char _deserialize_text_nfa_offsets[] = {
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 _deserialize_text_nfa_push_actions[] = {
0, 0
};
static const char _deserialize_text_nfa_pop_trans[] = {
0, 0
}; };
static const int deserialize_text_start = 1; static const int deserialize_text_start = 1;
@ -193,6 +312,8 @@ static const int deserialize_text_error = 0;
static const int deserialize_text_en_main = 1; static const int deserialize_text_en_main = 1;
#line 91 "hb-buffer-deserialize-text.rl"
static hb_bool_t static hb_bool_t
_hb_buffer_deserialize_glyphs_text (hb_buffer_t *buffer, _hb_buffer_deserialize_glyphs_text (hb_buffer_t *buffer,
@ -218,308 +339,228 @@ hb_font_t *font)
hb_glyph_info_t info = {0}; hb_glyph_info_t info = {0};
hb_glyph_position_t pos = {0}; hb_glyph_position_t pos = {0};
#line 343 "hb-buffer-deserialize-text.hh"
{ {
cs = (int)deserialize_text_start; cs = deserialize_text_start;
} }
#line 348 "hb-buffer-deserialize-text.hh"
{ {
int _cpc; int _slen;
int _klen;const char * _cekeys;unsigned int _trans = 0;const unsigned char * _keys;const char * _inds; { int _trans;
const unsigned char *_keys;
const char *_inds;
if ( p == pe ) if ( p == pe )
goto _test_eof; goto _test_eof;
if ( cs == 0 ) if ( cs == 0 )
goto _out; goto _out;
_resume: { _resume:
_keys = ( _deserialize_text_trans_keys + ((cs<<1))); _keys = _deserialize_text_trans_keys + (cs<<1);
_inds = ( _deserialize_text_indicies + (_deserialize_text_index_offsets[cs])); _inds = _deserialize_text_indicies + _deserialize_text_index_offsets[cs];
if ( ( (*( p))) <= 124 && ( (*( p))) >= 9 ) _slen = _deserialize_text_key_spans[cs];
{ _trans = _inds[ _slen > 0 && _keys[0] <=(*p) &&
int _ic = (int)_deserialize_text_char_class[(int)( (*( p))) - 9]; (*p) <= _keys[1] ?
if ( _ic <= (int)(*( _keys+1)) && _ic >= (int)(*( _keys)) ) (*p) - _keys[0] : _slen ];
_trans = (unsigned int)(*( _inds + (int)( _ic - (int)(*( _keys)) ) ));
else
_trans = (unsigned int)_deserialize_text_index_defaults[cs];
}
else {
_trans = (unsigned int)_deserialize_text_index_defaults[cs];
}
goto _match_cond; cs = _deserialize_text_trans_targs[_trans];
}
_match_cond: {
cs = (int)_deserialize_text_cond_targs[_trans];
if ( _deserialize_text_cond_actions[_trans] == 0 ) if ( _deserialize_text_trans_actions[_trans] == 0 )
goto _again; goto _again;
switch ( _deserialize_text_cond_actions[_trans] ) { switch ( _deserialize_text_trans_actions[_trans] ) {
case 2: { case 2:
{
#line 51 "hb-buffer-deserialize-text.rl" #line 51 "hb-buffer-deserialize-text.rl"
{
tok = p; tok = p;
} }
break;
break; } case 5:
case 5: {
{
#line 55 "hb-buffer-deserialize-text.rl" #line 55 "hb-buffer-deserialize-text.rl"
{
if (!hb_font_glyph_from_string (font, if (!hb_font_glyph_from_string (font,
tok, p - tok, tok, p - tok,
&info.codepoint)) &info.codepoint))
return false; return false;
} }
break;
break; } case 10:
case 10: {
{
#line 62 "hb-buffer-deserialize-text.rl" #line 62 "hb-buffer-deserialize-text.rl"
if (!parse_uint (tok, p, &info.cluster )) return false; } { if (!parse_uint (tok, p, &info.cluster )) return false; }
break;
break; } case 3:
case 3: {
{
#line 63 "hb-buffer-deserialize-text.rl" #line 63 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.x_offset )) return false; } { if (!parse_int (tok, p, &pos.x_offset )) return false; }
break;
break; } case 12:
case 12: {
{
#line 64 "hb-buffer-deserialize-text.rl" #line 64 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.y_offset )) return false; } { if (!parse_int (tok, p, &pos.y_offset )) return false; }
break;
break; } case 7:
case 7: {
{
#line 65 "hb-buffer-deserialize-text.rl" #line 65 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.x_advance)) return false; } { if (!parse_int (tok, p, &pos.x_advance)) return false; }
break;
break; } case 1:
case 1: {
{
#line 38 "hb-buffer-deserialize-text.rl" #line 38 "hb-buffer-deserialize-text.rl"
{
memset (&info, 0, sizeof (info)); memset (&info, 0, sizeof (info));
memset (&pos , 0, sizeof (pos )); memset (&pos , 0, sizeof (pos ));
} }
{
#line 51 "hb-buffer-deserialize-text.rl" #line 51 "hb-buffer-deserialize-text.rl"
{
tok = p; tok = p;
} }
break;
break; } case 4:
case 4: {
{
#line 55 "hb-buffer-deserialize-text.rl" #line 55 "hb-buffer-deserialize-text.rl"
{
if (!hb_font_glyph_from_string (font, if (!hb_font_glyph_from_string (font,
tok, p - tok, tok, p - tok,
&info.codepoint)) &info.codepoint))
return false; return false;
} }
{
#line 43 "hb-buffer-deserialize-text.rl" #line 43 "hb-buffer-deserialize-text.rl"
{
buffer->add_info (info); buffer->add_info (info);
if (unlikely (!buffer->successful)) if (unlikely (!buffer->successful))
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
break; } case 9:
case 9: {
{
#line 62 "hb-buffer-deserialize-text.rl" #line 62 "hb-buffer-deserialize-text.rl"
if (!parse_uint (tok, p, &info.cluster )) return false; } { if (!parse_uint (tok, p, &info.cluster )) return false; }
{
#line 43 "hb-buffer-deserialize-text.rl" #line 43 "hb-buffer-deserialize-text.rl"
{
buffer->add_info (info); buffer->add_info (info);
if (unlikely (!buffer->successful)) if (unlikely (!buffer->successful))
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
break; } case 11:
case 11: {
{
#line 64 "hb-buffer-deserialize-text.rl" #line 64 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.y_offset )) return false; } { if (!parse_int (tok, p, &pos.y_offset )) return false; }
{
#line 43 "hb-buffer-deserialize-text.rl" #line 43 "hb-buffer-deserialize-text.rl"
{
buffer->add_info (info); buffer->add_info (info);
if (unlikely (!buffer->successful)) if (unlikely (!buffer->successful))
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
break; } case 6:
case 6: {
{
#line 65 "hb-buffer-deserialize-text.rl" #line 65 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.x_advance)) return false; } { if (!parse_int (tok, p, &pos.x_advance)) return false; }
{
#line 43 "hb-buffer-deserialize-text.rl" #line 43 "hb-buffer-deserialize-text.rl"
{
buffer->add_info (info); buffer->add_info (info);
if (unlikely (!buffer->successful)) if (unlikely (!buffer->successful))
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
break; } case 8:
case 8: {
{
#line 66 "hb-buffer-deserialize-text.rl" #line 66 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.y_advance)) return false; } { if (!parse_int (tok, p, &pos.y_advance)) return false; }
{
#line 43 "hb-buffer-deserialize-text.rl" #line 43 "hb-buffer-deserialize-text.rl"
{
buffer->add_info (info); buffer->add_info (info);
if (unlikely (!buffer->successful)) if (unlikely (!buffer->successful))
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
break; } #line 480 "hb-buffer-deserialize-text.hh"
} }
_again:
}
_again: {
if ( cs == 0 ) if ( cs == 0 )
goto _out; goto _out;
p += 1; if ( ++p != pe )
if ( p != pe )
goto _resume; goto _resume;
} _test_eof: {}
_test_eof: { {}
if ( p == eof ) if ( p == eof )
{ {
if ( _deserialize_text_eof_cond_spaces[cs] != -1 ) {
_cekeys = ( _deserialize_text_eof_cond_keys + (_deserialize_text_eof_cond_key_offs[cs]));
_klen = (int)_deserialize_text_eof_cond_key_lens[cs];
_cpc = 0;
{
const char *_lower = _cekeys;
const char *_upper = _cekeys + _klen - 1;
const char *_mid;
while ( 1 ) {
if ( _upper < _lower )
break;
_mid = _lower + ((_upper-_lower) >> 1);
if ( _cpc < (int)(*( _mid)) )
_upper = _mid - 1;
else if ( _cpc > (int)(*( _mid)) )
_lower = _mid + 1;
else {
goto _ok;
}
}
cs = 0;
goto _out;
}
_ok: {}
}
switch ( _deserialize_text_eof_actions[cs] ) { switch ( _deserialize_text_eof_actions[cs] ) {
case 4: { case 4:
{
#line 55 "hb-buffer-deserialize-text.rl" #line 55 "hb-buffer-deserialize-text.rl"
{
if (!hb_font_glyph_from_string (font, if (!hb_font_glyph_from_string (font,
tok, p - tok, tok, p - tok,
&info.codepoint)) &info.codepoint))
return false; return false;
} }
{
#line 43 "hb-buffer-deserialize-text.rl" #line 43 "hb-buffer-deserialize-text.rl"
{
buffer->add_info (info); buffer->add_info (info);
if (unlikely (!buffer->successful)) if (unlikely (!buffer->successful))
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
break; } case 9:
case 9: {
{
#line 62 "hb-buffer-deserialize-text.rl" #line 62 "hb-buffer-deserialize-text.rl"
if (!parse_uint (tok, p, &info.cluster )) return false; } { if (!parse_uint (tok, p, &info.cluster )) return false; }
{
#line 43 "hb-buffer-deserialize-text.rl" #line 43 "hb-buffer-deserialize-text.rl"
{
buffer->add_info (info); buffer->add_info (info);
if (unlikely (!buffer->successful)) if (unlikely (!buffer->successful))
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
break; } case 11:
case 11: {
{
#line 64 "hb-buffer-deserialize-text.rl" #line 64 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.y_offset )) return false; } { if (!parse_int (tok, p, &pos.y_offset )) return false; }
{
#line 43 "hb-buffer-deserialize-text.rl" #line 43 "hb-buffer-deserialize-text.rl"
{
buffer->add_info (info); buffer->add_info (info);
if (unlikely (!buffer->successful)) if (unlikely (!buffer->successful))
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
break; } case 6:
case 6: {
{
#line 65 "hb-buffer-deserialize-text.rl" #line 65 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.x_advance)) return false; } { if (!parse_int (tok, p, &pos.x_advance)) return false; }
{
#line 43 "hb-buffer-deserialize-text.rl" #line 43 "hb-buffer-deserialize-text.rl"
{
buffer->add_info (info); buffer->add_info (info);
if (unlikely (!buffer->successful)) if (unlikely (!buffer->successful))
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
break; } case 8:
case 8: {
{
#line 66 "hb-buffer-deserialize-text.rl" #line 66 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.y_advance)) return false; } { if (!parse_int (tok, p, &pos.y_advance)) return false; }
{
#line 43 "hb-buffer-deserialize-text.rl" #line 43 "hb-buffer-deserialize-text.rl"
{
buffer->add_info (info); buffer->add_info (info);
if (unlikely (!buffer->successful)) if (unlikely (!buffer->successful))
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
break; } #line 557 "hb-buffer-deserialize-text.hh"
} }
} }
_out: {}
} }
_out: { {}
} #line 119 "hb-buffer-deserialize-text.rl"
}
}
*end_ptr = p; *end_ptr = p;

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,5 @@
#line 1 "hb-ot-shape-complex-khmer-machine.rl"
/* /*
* Copyright © 2011,2012 Google, Inc. * Copyright © 2011,2012 Google, Inc.
* *
@ -30,106 +32,156 @@
#include "hb.hh" #include "hb.hh"
#line 36 "hb-ot-shape-complex-khmer-machine.hh"
static const unsigned char _khmer_syllable_machine_trans_keys[] = { static const unsigned char _khmer_syllable_machine_trans_keys[] = {
2u, 8u, 2u, 6u, 2u, 8u, 2u, 6u, 5u, 26u, 5u, 21u, 5u, 26u, 5u, 21u, 1u, 16u, 5u, 21u, 5u, 26u, 5u, 21u,
0u, 0u, 2u, 6u, 2u, 8u, 2u, 6u, 5u, 26u, 5u, 21u, 5u, 21u, 5u, 26u, 5u, 21u, 1u, 16u, 5u, 21u, 5u, 26u,
2u, 8u, 2u, 6u, 2u, 6u, 2u, 8u, 5u, 21u, 5u, 26u, 5u, 21u, 5u, 26u, 1u, 29u, 5u, 29u, 5u, 29u, 5u, 29u,
2u, 6u, 0u, 0u, 2u, 6u, 2u, 8u, 22u, 22u, 5u, 22u, 5u, 29u, 5u, 29u, 5u, 29u, 1u, 16u, 5u, 26u, 5u, 29u,
2u, 6u, 2u, 8u, 2u, 6u, 2u, 8u, 5u, 29u, 22u, 22u, 5u, 22u, 5u, 29u, 5u, 29u, 1u, 16u, 5u, 29u, 5u, 29u,
0u, 11u, 2u, 11u, 2u, 11u, 2u, 11u, 0
7u, 7u, 2u, 7u, 2u, 11u, 2u, 11u,
2u, 11u, 0u, 0u, 2u, 8u, 2u, 11u,
2u, 11u, 7u, 7u, 2u, 7u, 2u, 11u,
2u, 11u, 0u, 0u, 2u, 11u, 2u, 11u,
0u
}; };
static const char _khmer_syllable_machine_char_class[] = { static const char _khmer_syllable_machine_key_spans[] = {
0, 0, 1, 1, 2, 2, 1, 1, 22, 17, 22, 17, 16, 17, 22, 17,
1, 1, 3, 3, 1, 4, 1, 0, 22, 17, 17, 22, 17, 16, 17, 22,
1, 1, 1, 5, 6, 7, 1, 1, 17, 22, 17, 22, 29, 25, 25, 25,
1, 8, 9, 10, 11, 0 1, 18, 25, 25, 25, 16, 22, 25,
25, 1, 18, 25, 25, 16, 25, 25
}; };
static const short _khmer_syllable_machine_index_offsets[] = { static const short _khmer_syllable_machine_index_offsets[] = {
0, 7, 12, 19, 24, 25, 30, 37, 0, 23, 41, 64, 82, 99, 117, 140,
42, 49, 54, 59, 66, 71, 72, 77, 158, 181, 199, 217, 240, 258, 275, 293,
84, 89, 96, 101, 108, 120, 130, 140, 316, 334, 357, 375, 398, 428, 454, 480,
150, 151, 157, 167, 177, 187, 188, 195, 506, 508, 527, 553, 579, 605, 622, 645,
205, 215, 216, 222, 232, 242, 243, 253, 671, 697, 699, 718, 744, 770, 787, 813
0
}; };
static const char _khmer_syllable_machine_indicies[] = { static const char _khmer_syllable_machine_indicies[] = {
1, 0, 0, 2, 3, 0, 4, 1, 1, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
3, 0, 4, 5, 0, 0, 0, 4, 3, 0, 0, 0, 0, 4, 0, 1,
6, 7, 0, 0, 0, 8, 9, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 10, 0, 4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,
0, 10, 11, 0, 0, 0, 12, 0, 0, 1, 1, 0, 0, 0, 0, 0,
4, 11, 0, 0, 0, 12, 14, 13,
13, 13, 15, 14, 16, 16, 16, 15,
16, 17, 18, 16, 16, 16, 17, 19,
20, 16, 16, 16, 21, 22, 16, 16,
16, 23, 16, 17, 22, 16, 16, 16,
23, 24, 16, 16, 16, 25, 16, 17,
24, 16, 16, 16, 25, 14, 16, 16,
26, 15, 16, 17, 28, 27, 29, 2,
30, 27, 15, 19, 17, 23, 25, 21,
32, 31, 33, 2, 3, 6, 4, 10,
12, 8, 34, 31, 35, 31, 3, 6,
4, 10, 12, 8, 5, 31, 35, 31,
4, 6, 31, 31, 31, 8, 6, 7,
31, 35, 31, 8, 6, 36, 31, 35,
31, 10, 6, 4, 31, 31, 8, 37,
31, 35, 31, 12, 6, 4, 10, 31,
8, 34, 31, 33, 31, 3, 6, 4,
10, 12, 8, 28, 14, 38, 38, 38,
15, 38, 17, 40, 39, 41, 39, 15,
19, 17, 23, 25, 21, 18, 39, 41,
39, 17, 19, 39, 39, 39, 21, 19,
20, 39, 41, 39, 21, 19, 42, 39,
41, 39, 23, 19, 17, 39, 39, 21,
43, 39, 41, 39, 25, 19, 17, 23,
39, 21, 44, 45, 39, 30, 26, 15,
19, 17, 23, 25, 21, 40, 39, 30,
39, 15, 19, 17, 23, 25, 21, 0
};
static const char _khmer_syllable_machine_index_defaults[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 13, 16, 16, 16, 16, 16, 0, 3, 0, 0, 0, 0, 4, 0,
16, 16, 16, 16, 27, 31, 31, 31, 5, 5, 0, 0, 0, 0, 0, 0,
31, 31, 31, 31, 31, 31, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0,
4, 0, 6, 6, 0, 0, 0, 0,
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, 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, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 12, 0,
0, 0, 0, 4, 0, 11, 11, 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, 15,
13, 14, 14, 16, 16, 16, 16, 16,
16, 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,
16, 19, 16, 20, 20, 16, 16, 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, 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, 25, 16,
16, 16, 16, 17, 16, 24, 24, 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, 27,
2, 2, 27, 30, 27, 28, 27, 27,
27, 27, 15, 19, 27, 27, 27, 17,
23, 25, 21, 27, 32, 32, 31, 31,
31, 31, 31, 31, 31, 33, 31, 31,
31, 31, 31, 2, 3, 6, 31, 31,
31, 4, 10, 12, 8, 31, 34, 34,
31, 31, 31, 31, 31, 31, 31, 35,
31, 31, 31, 31, 31, 31, 3, 6,
31, 31, 31, 4, 10, 12, 8, 31,
5, 5, 31, 31, 31, 31, 31, 31,
31, 35, 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, 31, 35, 31, 31,
31, 31, 31, 31, 8, 6, 31, 36,
36, 31, 31, 31, 31, 31, 31, 31,
35, 31, 31, 31, 31, 31, 31, 10,
6, 31, 31, 31, 4, 31, 31, 8,
31, 37, 37, 31, 31, 31, 31, 31,
31, 31, 35, 31, 31, 31, 31, 31,
31, 12, 6, 31, 31, 31, 4, 10,
31, 8, 31, 34, 34, 31, 31, 31,
31, 31, 31, 31, 33, 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, 31, 28, 31, 14, 14,
38, 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, 39, 41, 39,
39, 39, 39, 39, 39, 15, 19, 39,
39, 39, 17, 23, 25, 21, 39, 18,
18, 39, 39, 39, 39, 39, 39, 39,
41, 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, 39, 41, 39, 39, 39,
39, 39, 39, 21, 19, 39, 42, 42,
39, 39, 39, 39, 39, 39, 39, 41,
39, 39, 39, 39, 39, 39, 23, 19,
39, 39, 39, 17, 39, 39, 21, 39,
43, 43, 39, 39, 39, 39, 39, 39,
39, 41, 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, 39, 39, 39, 39, 39, 39, 39, 39,
0 39, 44, 39, 45, 45, 39, 39, 39,
39, 39, 39, 39, 30, 39, 39, 39,
39, 39, 26, 15, 19, 39, 39, 39,
17, 23, 25, 21, 39, 40, 40, 39,
39, 39, 39, 39, 39, 39, 30, 39,
39, 39, 39, 39, 39, 15, 19, 39,
39, 39, 17, 23, 25, 21, 39, 0
}; };
static const char _khmer_syllable_machine_trans_cond_spaces[] = { static const char _khmer_syllable_machine_trans_targs[] = {
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 0
};
static const char _khmer_syllable_machine_cond_targs[] = {
20, 1, 28, 22, 23, 3, 24, 5, 20, 1, 28, 22, 23, 3, 24, 5,
25, 7, 26, 9, 27, 20, 10, 31, 25, 7, 26, 9, 27, 20, 10, 31,
20, 32, 12, 33, 14, 34, 16, 35, 20, 32, 12, 33, 14, 34, 16, 35,
18, 36, 39, 20, 21, 30, 37, 20, 18, 36, 39, 20, 21, 30, 37, 20,
0, 29, 2, 4, 6, 8, 20, 20, 0, 29, 2, 4, 6, 8, 20, 20,
11, 13, 15, 17, 38, 19, 0 11, 13, 15, 17, 38, 19
}; };
static const char _khmer_syllable_machine_cond_actions[] = { static const char _khmer_syllable_machine_trans_actions[] = {
1, 0, 2, 2, 2, 0, 0, 0, 1, 0, 2, 2, 2, 0, 0, 0,
2, 0, 2, 0, 2, 3, 0, 4, 2, 0, 2, 0, 2, 3, 0, 4,
5, 2, 0, 0, 0, 2, 0, 2, 5, 2, 0, 0, 0, 2, 0, 2,
0, 2, 4, 8, 2, 9, 0, 10, 0, 2, 4, 8, 2, 9, 0, 10,
0, 0, 0, 0, 0, 0, 11, 12, 0, 0, 0, 0, 0, 0, 11, 12,
0, 0, 0, 0, 4, 0, 0 0, 0, 0, 0, 4, 0
}; };
static const char _khmer_syllable_machine_to_state_actions[] = { static const char _khmer_syllable_machine_to_state_actions[] = {
@ -137,8 +189,7 @@ static const char _khmer_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, 6, 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, 0, 0, 0, 0, 0, 0, 0, 0
0
}; };
static const char _khmer_syllable_machine_from_state_actions[] = { static const char _khmer_syllable_machine_from_state_actions[] = {
@ -146,69 +197,15 @@ static const char _khmer_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, 7, 0, 0, 0, 0, 0, 0, 0, 7, 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 _khmer_syllable_machine_eof_cond_spaces[] = { static const unsigned char _khmer_syllable_machine_eof_trans[] = {
-1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 0
};
static const char _khmer_syllable_machine_eof_cond_key_offs[] = {
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 _khmer_syllable_machine_eof_cond_key_lens[] = {
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 _khmer_syllable_machine_eof_cond_keys[] = {
0
};
static const char _khmer_syllable_machine_eof_trans[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 14, 17, 17, 17, 17, 17, 1, 1, 14, 17, 17, 17, 17, 17,
17, 17, 17, 17, 0, 32, 32, 32, 17, 17, 17, 17, 0, 32, 32, 32,
32, 32, 32, 32, 32, 32, 39, 40, 32, 32, 32, 32, 32, 32, 39, 40,
40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40
0
};
static const char _khmer_syllable_machine_nfa_targs[] = {
0, 0
};
static const char _khmer_syllable_machine_nfa_offsets[] = {
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 _khmer_syllable_machine_nfa_push_actions[] = {
0, 0
};
static const char _khmer_syllable_machine_nfa_pop_trans[] = {
0, 0
}; };
static const int khmer_syllable_machine_start = 20; static const int khmer_syllable_machine_start = 20;
@ -218,9 +215,13 @@ static const int khmer_syllable_machine_error = -1;
static const int khmer_syllable_machine_en_main = 20; static const int khmer_syllable_machine_en_main = 20;
#line 36 "hb-ot-shape-complex-khmer-machine.rl"
#line 80 "hb-ot-shape-complex-khmer-machine.rl"
#define found_syllable(syllable_type) \ #define found_syllable(syllable_type) \
HB_STMT_START { \ HB_STMT_START { \
if (0) fprintf (stderr, "syllable %d..%d %s\n", ts, te, #syllable_type); \ if (0) fprintf (stderr, "syllable %d..%d %s\n", ts, te, #syllable_type); \
@ -237,208 +238,132 @@ find_syllables (hb_buffer_t *buffer)
int cs; int cs;
hb_glyph_info_t *info = buffer->info; hb_glyph_info_t *info = buffer->info;
#line 242 "hb-ot-shape-complex-khmer-machine.hh"
{ {
cs = (int)khmer_syllable_machine_start; cs = khmer_syllable_machine_start;
ts = 0; ts = 0;
te = 0; te = 0;
act = 0; act = 0;
} }
#line 100 "hb-ot-shape-complex-khmer-machine.rl"
p = 0; p = 0;
pe = eof = buffer->len; pe = eof = buffer->len;
unsigned int syllable_serial = 1; unsigned int syllable_serial = 1;
#line 258 "hb-ot-shape-complex-khmer-machine.hh"
{ {
int _cpc; int _slen;
int _klen;const char * _cekeys;unsigned int _trans = 0;const unsigned char * _keys;const char * _inds; { int _trans;
const unsigned char *_keys;
const char *_inds;
if ( p == pe ) if ( p == pe )
goto _test_eof; goto _test_eof;
_resume: { _resume:
switch ( _khmer_syllable_machine_from_state_actions[cs] ) { switch ( _khmer_syllable_machine_from_state_actions[cs] ) {
case 7: { case 7:
{
#line 1 "NONE" #line 1 "NONE"
{ts = p;}} {ts = p;}
break;
break; } #line 272 "hb-ot-shape-complex-khmer-machine.hh"
} }
_keys = ( _khmer_syllable_machine_trans_keys + ((cs<<1))); _keys = _khmer_syllable_machine_trans_keys + (cs<<1);
_inds = ( _khmer_syllable_machine_indicies + (_khmer_syllable_machine_index_offsets[cs])); _inds = _khmer_syllable_machine_indicies + _khmer_syllable_machine_index_offsets[cs];
if ( (info[p].khmer_category()) <= 29 && (info[p].khmer_category()) >= 1 ) _slen = _khmer_syllable_machine_key_spans[cs];
{ _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].khmer_category()) &&
int _ic = (int)_khmer_syllable_machine_char_class[(int)(info[p].khmer_category()) - 1]; ( info[p].khmer_category()) <= _keys[1] ?
if ( _ic <= (int)(*( _keys+1)) && _ic >= (int)(*( _keys)) ) ( info[p].khmer_category()) - _keys[0] : _slen ];
_trans = (unsigned int)(*( _inds + (int)( _ic - (int)(*( _keys)) ) ));
else
_trans = (unsigned int)_khmer_syllable_machine_index_defaults[cs];
}
else {
_trans = (unsigned int)_khmer_syllable_machine_index_defaults[cs];
}
goto _match_cond; _eof_trans:
} cs = _khmer_syllable_machine_trans_targs[_trans];
_match_cond: {
cs = (int)_khmer_syllable_machine_cond_targs[_trans];
if ( _khmer_syllable_machine_cond_actions[_trans] == 0 ) if ( _khmer_syllable_machine_trans_actions[_trans] == 0 )
goto _again; goto _again;
switch ( _khmer_syllable_machine_cond_actions[_trans] ) { switch ( _khmer_syllable_machine_trans_actions[_trans] ) {
case 2: { case 2:
{
#line 1 "NONE" #line 1 "NONE"
{te = p+1;}} {te = p+1;}
break;
break; } case 8:
case 8: {
{
#line 76 "hb-ot-shape-complex-khmer-machine.rl" #line 76 "hb-ot-shape-complex-khmer-machine.rl"
{te = p+1;{ {te = p+1;{ found_syllable (non_khmer_cluster); }}
break;
case 10:
#line 74 "hb-ot-shape-complex-khmer-machine.rl"
{te = p;p--;{ found_syllable (consonant_syllable); }}
break;
case 12:
#line 75 "hb-ot-shape-complex-khmer-machine.rl"
{te = p;p--;{ found_syllable (broken_cluster); }}
break;
case 11:
#line 76 "hb-ot-shape-complex-khmer-machine.rl" #line 76 "hb-ot-shape-complex-khmer-machine.rl"
found_syllable (non_khmer_cluster); }}} {te = p;p--;{ found_syllable (non_khmer_cluster); }}
break;
break; } case 1:
case 10: {
{
#line 74 "hb-ot-shape-complex-khmer-machine.rl" #line 74 "hb-ot-shape-complex-khmer-machine.rl"
{te = p;p = p - 1;{ {{p = ((te))-1;}{ found_syllable (consonant_syllable); }}
#line 74 "hb-ot-shape-complex-khmer-machine.rl" break;
found_syllable (consonant_syllable); }}} case 5:
break; }
case 12: {
{
#line 75 "hb-ot-shape-complex-khmer-machine.rl" #line 75 "hb-ot-shape-complex-khmer-machine.rl"
{te = p;p = p - 1;{ {{p = ((te))-1;}{ found_syllable (broken_cluster); }}
#line 75 "hb-ot-shape-complex-khmer-machine.rl" break;
found_syllable (broken_cluster); }}} case 3:
break; }
case 11: {
{
#line 76 "hb-ot-shape-complex-khmer-machine.rl"
{te = p;p = p - 1;{
#line 76 "hb-ot-shape-complex-khmer-machine.rl"
found_syllable (non_khmer_cluster); }}}
break; }
case 1: {
{
#line 74 "hb-ot-shape-complex-khmer-machine.rl"
{p = ((te))-1;
{
#line 74 "hb-ot-shape-complex-khmer-machine.rl"
found_syllable (consonant_syllable); }}}
break; }
case 5: {
{
#line 75 "hb-ot-shape-complex-khmer-machine.rl"
{p = ((te))-1;
{
#line 75 "hb-ot-shape-complex-khmer-machine.rl"
found_syllable (broken_cluster); }}}
break; }
case 3: {
{
#line 1 "NONE" #line 1 "NONE"
{ switch( act ) { { switch( act ) {
case 2: { case 2:
p = ((te))-1; {{p = ((te))-1;} found_syllable (broken_cluster); }
{ break;
#line 75 "hb-ot-shape-complex-khmer-machine.rl" case 3:
found_syllable (broken_cluster); } break; } {{p = ((te))-1;} found_syllable (non_khmer_cluster); }
case 3: { break;
p = ((te))-1;
{
#line 76 "hb-ot-shape-complex-khmer-machine.rl"
found_syllable (non_khmer_cluster); } break; }
}}
} }
}
break; } break;
case 4: { case 4:
{
#line 1 "NONE" #line 1 "NONE"
{te = p+1;}} {te = p+1;}
{
#line 75 "hb-ot-shape-complex-khmer-machine.rl" #line 75 "hb-ot-shape-complex-khmer-machine.rl"
{act = 2;}} {act = 2;}
break;
break; } case 9:
case 9: {
{
#line 1 "NONE" #line 1 "NONE"
{te = p+1;}} {te = p+1;}
{
#line 76 "hb-ot-shape-complex-khmer-machine.rl" #line 76 "hb-ot-shape-complex-khmer-machine.rl"
{act = 3;}} {act = 3;}
break;
break; } #line 342 "hb-ot-shape-complex-khmer-machine.hh"
} }
_again:
}
_again: {
switch ( _khmer_syllable_machine_to_state_actions[cs] ) { switch ( _khmer_syllable_machine_to_state_actions[cs] ) {
case 6: { case 6:
{
#line 1 "NONE" #line 1 "NONE"
{ts = 0;}} {ts = 0;}
break;
break; } #line 351 "hb-ot-shape-complex-khmer-machine.hh"
} }
p += 1; if ( ++p != pe )
if ( p != pe )
goto _resume; goto _resume;
} _test_eof: {}
_test_eof: { {}
if ( p == eof ) if ( p == eof )
{ {
if ( _khmer_syllable_machine_eof_cond_spaces[cs] != -1 ) {
_cekeys = ( _khmer_syllable_machine_eof_cond_keys + (_khmer_syllable_machine_eof_cond_key_offs[cs]));
_klen = (int)_khmer_syllable_machine_eof_cond_key_lens[cs];
_cpc = 0;
{
const char *_lower = _cekeys;
const char *_upper = _cekeys + _klen - 1;
const char *_mid;
while ( 1 ) {
if ( _upper < _lower )
break;
_mid = _lower + ((_upper-_lower) >> 1);
if ( _cpc < (int)(*( _mid)) )
_upper = _mid - 1;
else if ( _cpc > (int)(*( _mid)) )
_lower = _mid + 1;
else {
goto _ok;
}
}
cs = -1;
goto _out;
}
_ok: {}
}
if ( _khmer_syllable_machine_eof_trans[cs] > 0 ) { if ( _khmer_syllable_machine_eof_trans[cs] > 0 ) {
_trans = (unsigned int)_khmer_syllable_machine_eof_trans[cs] - 1; _trans = _khmer_syllable_machine_eof_trans[cs] - 1;
goto _match_cond; goto _eof_trans;
} }
} }
} }
_out: { {}
} #line 108 "hb-ot-shape-complex-khmer-machine.rl"
}
}
} }

View File

@ -1,3 +1,5 @@
#line 1 "hb-ot-shape-complex-myanmar-machine.rl"
/* /*
* Copyright © 2011,2012 Google, Inc. * Copyright © 2011,2012 Google, Inc.
* *
@ -30,171 +32,202 @@
#include "hb.hh" #include "hb.hh"
#line 36 "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[] = {
0u, 21u, 1u, 20u, 3u, 19u, 3u, 5u, 1u, 32u, 3u, 30u, 5u, 29u, 5u, 8u, 5u, 29u, 3u, 25u, 5u, 25u, 5u, 25u,
3u, 19u, 1u, 15u, 3u, 15u, 3u, 15u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 1u, 16u, 3u, 29u, 3u, 29u, 3u, 29u,
1u, 19u, 1u, 19u, 1u, 19u, 1u, 19u, 3u, 29u, 3u, 29u, 3u, 30u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 5u, 29u,
0u, 8u, 1u, 19u, 1u, 19u, 1u, 19u, 5u, 8u, 5u, 29u, 3u, 25u, 5u, 25u, 5u, 25u, 3u, 29u, 3u, 29u, 3u, 29u,
1u, 19u, 1u, 19u, 1u, 20u, 1u, 19u, 3u, 29u, 1u, 16u, 3u, 30u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u,
1u, 19u, 1u, 19u, 1u, 19u, 3u, 19u, 3u, 30u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 30u, 3u, 29u, 1u, 32u,
3u, 5u, 3u, 19u, 1u, 15u, 3u, 15u, 1u, 32u, 8u, 8u, 0
3u, 15u, 1u, 19u, 1u, 19u, 1u, 19u,
1u, 19u, 0u, 8u, 1u, 20u, 1u, 19u,
1u, 19u, 1u, 19u, 1u, 19u, 1u, 19u,
1u, 20u, 1u, 19u, 1u, 19u, 1u, 19u,
1u, 19u, 1u, 20u, 1u, 19u, 0u, 20u,
0u, 8u, 5u, 5u, 0u
}; };
static const char _myanmar_syllable_machine_char_class[] = { static const char _myanmar_syllable_machine_key_spans[] = {
0, 0, 1, 2, 3, 3, 4, 5, 32, 28, 25, 4, 25, 23, 21, 21,
4, 6, 7, 4, 4, 4, 4, 8, 27, 27, 27, 27, 16, 27, 27, 27,
4, 9, 10, 4, 11, 12, 13, 14, 27, 27, 28, 27, 27, 27, 27, 25,
15, 16, 17, 18, 19, 20, 21, 7, 4, 25, 23, 21, 21, 27, 27, 27,
0 27, 16, 28, 27, 27, 27, 27, 27,
28, 27, 27, 27, 27, 28, 27, 32,
32, 1
}; };
static const short _myanmar_syllable_machine_index_offsets[] = { static const short _myanmar_syllable_machine_index_offsets[] = {
0, 22, 42, 59, 62, 79, 94, 107, 0, 33, 62, 88, 93, 119, 143, 165,
120, 139, 158, 177, 196, 205, 224, 243, 187, 215, 243, 271, 299, 316, 344, 372,
262, 281, 300, 320, 339, 358, 377, 396, 400, 428, 456, 485, 513, 541, 569, 597,
413, 416, 433, 448, 461, 474, 493, 512, 623, 628, 654, 678, 700, 722, 750, 778,
531, 550, 559, 579, 598, 617, 636, 655, 806, 834, 851, 880, 908, 936, 964, 992,
674, 694, 713, 732, 751, 770, 790, 809, 1020, 1049, 1077, 1105, 1133, 1161, 1190, 1218,
830, 839, 0 1251, 1284
}; };
static const char _myanmar_syllable_machine_indicies[] = { static const char _myanmar_syllable_machine_indicies[] = {
1, 2, 3, 4, 0, 5, 6, 1, 1, 1, 2, 3, 4, 4, 0, 5,
7, 8, 9, 10, 11, 12, 13, 14, 0, 6, 1, 0, 0, 0, 0, 7,
15, 16, 17, 18, 19, 20, 22, 23, 0, 8, 9, 0, 10, 11, 12, 13,
24, 21, 25, 26, 21, 21, 27, 21, 14, 15, 16, 17, 18, 19, 20, 1,
28, 29, 30, 31, 32, 33, 34, 35, 0, 22, 23, 24, 24, 21, 25, 21,
36, 37, 24, 21, 25, 21, 21, 21, 26, 21, 21, 21, 21, 21, 21, 21,
38, 21, 21, 21, 21, 21, 32, 21, 27, 21, 21, 28, 29, 30, 31, 32,
21, 21, 36, 24, 21, 25, 24, 21, 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, 25, 21, 21, 21, 21, 21, 21, 21,
21, 21, 32, 21, 21, 21, 36, 39,
21, 24, 21, 25, 32, 21, 21, 40,
21, 21, 21, 21, 21, 32, 24, 21,
25, 21, 21, 21, 40, 21, 21, 21,
21, 21, 32, 24, 21, 25, 21, 21,
21, 21, 21, 21, 21, 21, 21, 32,
22, 21, 24, 21, 25, 26, 21, 21,
41, 21, 41, 21, 21, 21, 32, 42,
21, 21, 36, 22, 21, 24, 21, 25,
26, 21, 21, 21, 21, 21, 21, 21,
21, 32, 21, 21, 21, 36, 22, 21,
24, 21, 25, 26, 21, 21, 41, 21,
21, 21, 21, 21, 32, 42, 21, 21,
36, 22, 21, 24, 21, 25, 26, 21,
21, 21, 21, 21, 21, 21, 21, 32,
42, 21, 21, 36, 1, 21, 21, 21,
21, 21, 21, 21, 1, 22, 21, 24,
21, 25, 26, 21, 21, 27, 21, 28,
29, 30, 31, 32, 33, 34, 35, 36,
22, 21, 24, 21, 25, 26, 21, 21,
43, 21, 21, 21, 21, 21, 32, 33,
34, 35, 36, 22, 21, 24, 21, 25,
26, 21, 21, 21, 21, 21, 21, 21,
21, 32, 33, 34, 35, 36, 22, 21,
24, 21, 25, 26, 21, 21, 21, 21,
21, 21, 21, 21, 32, 33, 34, 21,
36, 22, 21, 24, 21, 25, 26, 21,
21, 21, 21, 21, 21, 21, 21, 32,
21, 34, 21, 36, 22, 21, 24, 21,
25, 26, 21, 21, 21, 21, 21, 21,
21, 21, 32, 33, 34, 35, 36, 43,
22, 21, 24, 21, 25, 26, 21, 21,
43, 21, 28, 21, 30, 21, 32, 33,
34, 35, 36, 22, 21, 24, 21, 25,
26, 21, 21, 43, 21, 28, 21, 21,
21, 32, 33, 34, 35, 36, 22, 21,
24, 21, 25, 26, 21, 21, 43, 21,
28, 29, 30, 21, 32, 33, 34, 35,
36, 22, 23, 24, 21, 25, 26, 21,
21, 27, 21, 28, 29, 30, 31, 32,
33, 34, 35, 36, 45, 44, 5, 44,
44, 44, 46, 44, 44, 44, 44, 44,
14, 44, 44, 44, 18, 45, 44, 5,
45, 44, 5, 44, 44, 44, 44, 44,
44, 44, 44, 44, 14, 44, 44, 44,
18, 47, 44, 45, 44, 5, 14, 44,
44, 48, 44, 44, 44, 44, 44, 14,
45, 44, 5, 44, 44, 44, 48, 44,
44, 44, 44, 44, 14, 45, 44, 5,
44, 44, 44, 44, 44, 44, 44, 44,
44, 14, 2, 44, 45, 44, 5, 6,
44, 44, 49, 44, 49, 44, 44, 44,
14, 50, 44, 44, 18, 2, 44, 45,
44, 5, 6, 44, 44, 44, 44, 44,
44, 44, 44, 14, 44, 44, 44, 18,
2, 44, 45, 44, 5, 6, 44, 44,
49, 44, 44, 44, 44, 44, 14, 50,
44, 44, 18, 2, 44, 45, 44, 5,
6, 44, 44, 44, 44, 44, 44, 44,
44, 14, 50, 44, 44, 18, 51, 44,
44, 44, 44, 44, 44, 44, 51, 2,
3, 45, 44, 5, 6, 44, 44, 8,
44, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 2, 44, 45, 44, 5,
6, 44, 44, 8, 44, 10, 11, 12,
13, 14, 15, 16, 17, 18, 2, 44,
45, 44, 5, 6, 44, 44, 52, 44,
44, 44, 44, 44, 14, 15, 16, 17,
18, 2, 44, 45, 44, 5, 6, 44,
44, 44, 44, 44, 44, 44, 44, 14,
15, 16, 17, 18, 2, 44, 45, 44,
5, 6, 44, 44, 44, 44, 44, 44,
44, 44, 14, 15, 16, 44, 18, 2,
44, 45, 44, 5, 6, 44, 44, 44,
44, 44, 44, 44, 44, 14, 44, 16,
44, 18, 2, 44, 45, 44, 5, 6,
44, 44, 44, 44, 44, 44, 44, 44,
14, 15, 16, 17, 18, 52, 2, 44,
45, 44, 5, 6, 44, 44, 52, 44,
10, 44, 12, 44, 14, 15, 16, 17,
18, 2, 44, 45, 44, 5, 6, 44,
44, 52, 44, 10, 44, 44, 44, 14,
15, 16, 17, 18, 2, 44, 45, 44,
5, 6, 44, 44, 52, 44, 10, 11,
12, 44, 14, 15, 16, 17, 18, 2,
3, 45, 44, 5, 6, 44, 44, 8,
44, 10, 11, 12, 13, 14, 15, 16,
17, 18, 22, 23, 24, 21, 25, 26,
21, 21, 53, 21, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 22, 54,
24, 21, 25, 26, 21, 21, 27, 21,
28, 29, 30, 31, 32, 33, 34, 35,
36, 1, 2, 3, 45, 44, 5, 6,
1, 1, 8, 44, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 1, 55,
55, 55, 55, 55, 55, 1, 1, 56,
0
};
static const char _myanmar_syllable_machine_index_defaults[] = {
0, 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, 44, 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, 43, 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, 43, 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, 45, 45, 44,
5, 44, 44, 44, 44, 44, 44, 44,
44, 44, 46, 44, 44, 44, 44, 44,
44, 14, 44, 44, 44, 18, 44, 45,
45, 44, 5, 44, 45, 45, 44, 5,
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 21, 21, 44, 14, 44, 44, 44, 18, 44, 47, 44,
55, 55, 0 45, 45, 44, 5, 44, 14, 44, 44,
44, 44, 44, 44, 44, 48, 44, 44,
44, 44, 44, 44, 14, 44, 45, 45,
44, 5, 44, 44, 44, 44, 44, 44,
44, 44, 44, 48, 44, 44, 44, 44,
44, 44, 14, 44, 45, 45, 44, 5,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44,
14, 44, 2, 44, 45, 45, 44, 5,
44, 6, 44, 44, 44, 44, 44, 44,
44, 49, 44, 44, 49, 44, 44, 44,
14, 50, 44, 44, 18, 44, 2, 44,
45, 45, 44, 5, 44, 6, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 14, 44, 44, 44,
18, 44, 2, 44, 45, 45, 44, 5,
44, 6, 44, 44, 44, 44, 44, 44,
44, 49, 44, 44, 44, 44, 44, 44,
14, 50, 44, 44, 18, 44, 2, 44,
45, 45, 44, 5, 44, 6, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 14, 50, 44, 44,
18, 44, 51, 51, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44,
44, 51, 44, 2, 3, 45, 45, 44,
5, 44, 6, 44, 44, 44, 44, 44,
44, 44, 8, 44, 44, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 44,
2, 44, 45, 45, 44, 5, 44, 6,
44, 44, 44, 44, 44, 44, 44, 8,
44, 44, 10, 11, 12, 13, 14, 15,
16, 17, 18, 44, 2, 44, 45, 45,
44, 5, 44, 6, 44, 44, 44, 44,
44, 44, 44, 52, 44, 44, 44, 44,
44, 44, 14, 15, 16, 17, 18, 44,
2, 44, 45, 45, 44, 5, 44, 6,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 14, 15,
16, 17, 18, 44, 2, 44, 45, 45,
44, 5, 44, 6, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 14, 15, 16, 44, 18, 44,
2, 44, 45, 45, 44, 5, 44, 6,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 14, 44,
16, 44, 18, 44, 2, 44, 45, 45,
44, 5, 44, 6, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 14, 15, 16, 17, 18, 52,
44, 2, 44, 45, 45, 44, 5, 44,
6, 44, 44, 44, 44, 44, 44, 44,
52, 44, 44, 10, 44, 12, 44, 14,
15, 16, 17, 18, 44, 2, 44, 45,
45, 44, 5, 44, 6, 44, 44, 44,
44, 44, 44, 44, 52, 44, 44, 10,
44, 44, 44, 14, 15, 16, 17, 18,
44, 2, 44, 45, 45, 44, 5, 44,
6, 44, 44, 44, 44, 44, 44, 44,
52, 44, 44, 10, 11, 12, 44, 14,
15, 16, 17, 18, 44, 2, 3, 45,
45, 44, 5, 44, 6, 44, 44, 44,
44, 44, 44, 44, 8, 44, 44, 10,
11, 12, 13, 14, 15, 16, 17, 18,
44, 22, 23, 24, 24, 21, 25, 21,
26, 21, 21, 21, 21, 21, 21, 21,
53, 21, 21, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 21, 22, 54,
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, 45, 45,
44, 5, 44, 6, 1, 44, 44, 44,
44, 1, 44, 8, 44, 44, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19,
44, 1, 44, 1, 1, 55, 55, 55,
55, 55, 55, 55, 55, 1, 55, 55,
55, 55, 1, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 1, 55, 56, 55, 0
}; };
static const char _myanmar_syllable_machine_trans_cond_spaces[] = { static const char _myanmar_syllable_machine_trans_targs[] = {
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, 0
};
static const char _myanmar_syllable_machine_cond_targs[] = {
0, 1, 23, 33, 0, 24, 30, 45, 0, 1, 23, 33, 0, 24, 30, 45,
35, 48, 36, 41, 42, 43, 26, 38, 35, 48, 36, 41, 42, 43, 26, 38,
39, 40, 29, 44, 49, 0, 2, 12, 39, 40, 29, 44, 49, 0, 2, 12,
@ -202,10 +235,10 @@ static const char _myanmar_syllable_machine_cond_targs[] = {
5, 16, 17, 18, 8, 22, 4, 6, 5, 16, 17, 18, 8, 22, 4, 6,
7, 10, 11, 15, 0, 0, 25, 27, 7, 10, 11, 15, 0, 0, 25, 27,
28, 31, 32, 34, 37, 46, 47, 0, 28, 31, 32, 34, 37, 46, 47, 0,
0, 0 0
}; };
static const char _myanmar_syllable_machine_cond_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, 5, 0, 0,
@ -213,7 +246,7 @@ static const char _myanmar_syllable_machine_cond_actions[] = {
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, 7, 8, 0, 0,
0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9,
10, 0 10
}; };
static const char _myanmar_syllable_machine_to_state_actions[] = { static const char _myanmar_syllable_machine_to_state_actions[] = {
@ -223,7 +256,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
}; };
static const char _myanmar_syllable_machine_from_state_actions[] = { static const char _myanmar_syllable_machine_from_state_actions[] = {
@ -233,73 +266,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
}; };
static const char _myanmar_syllable_machine_eof_cond_spaces[] = { static const short _myanmar_syllable_machine_eof_trans[] = {
-1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 0
};
static const char _myanmar_syllable_machine_eof_cond_key_offs[] = {
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_eof_cond_key_lens[] = {
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_eof_cond_keys[] = {
0
};
static const char _myanmar_syllable_machine_eof_trans[] = {
0, 22, 22, 22, 22, 22, 22, 22, 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, 22, 22, 22, 22, 22, 45, 22, 22, 22, 22, 22, 22, 22, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 22, 22, 45, 45, 45, 45, 45, 45, 22, 22, 45,
56, 56, 0 56, 56
};
static const char _myanmar_syllable_machine_nfa_targs[] = {
0, 0
};
static const char _myanmar_syllable_machine_nfa_offsets[] = {
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_nfa_push_actions[] = {
0, 0
};
static const char _myanmar_syllable_machine_nfa_pop_trans[] = {
0, 0
}; };
static const int myanmar_syllable_machine_start = 0; static const int myanmar_syllable_machine_start = 0;
@ -309,9 +286,13 @@ static const int myanmar_syllable_machine_error = -1;
static const int myanmar_syllable_machine_en_main = 0; static const int myanmar_syllable_machine_en_main = 0;
#line 36 "hb-ot-shape-complex-myanmar-machine.rl"
#line 94 "hb-ot-shape-complex-myanmar-machine.rl"
#define found_syllable(syllable_type) \ #define found_syllable(syllable_type) \
HB_STMT_START { \ HB_STMT_START { \
if (0) fprintf (stderr, "syllable %d..%d %s\n", ts, te, #syllable_type); \ if (0) fprintf (stderr, "syllable %d..%d %s\n", ts, te, #syllable_type); \
@ -328,179 +309,112 @@ find_syllables (hb_buffer_t *buffer)
int cs; int cs;
hb_glyph_info_t *info = buffer->info; hb_glyph_info_t *info = buffer->info;
#line 313 "hb-ot-shape-complex-myanmar-machine.hh"
{ {
cs = (int)myanmar_syllable_machine_start; cs = myanmar_syllable_machine_start;
ts = 0; ts = 0;
te = 0; te = 0;
act = 0;
} }
#line 114 "hb-ot-shape-complex-myanmar-machine.rl"
p = 0; p = 0;
pe = eof = buffer->len; pe = eof = buffer->len;
unsigned int syllable_serial = 1; unsigned int syllable_serial = 1;
#line 329 "hb-ot-shape-complex-myanmar-machine.hh"
{ {
int _cpc; int _slen;
int _klen;const char * _cekeys;unsigned int _trans = 0;const unsigned char * _keys;const char * _inds; { int _trans;
const unsigned char *_keys;
const char *_inds;
if ( p == pe ) if ( p == pe )
goto _test_eof; goto _test_eof;
_resume: { _resume:
switch ( _myanmar_syllable_machine_from_state_actions[cs] ) { switch ( _myanmar_syllable_machine_from_state_actions[cs] ) {
case 2: { case 2:
{
#line 1 "NONE" #line 1 "NONE"
{ts = p;}} {ts = p;}
break;
break; } #line 343 "hb-ot-shape-complex-myanmar-machine.hh"
} }
_keys = ( _myanmar_syllable_machine_trans_keys + ((cs<<1))); _keys = _myanmar_syllable_machine_trans_keys + (cs<<1);
_inds = ( _myanmar_syllable_machine_indicies + (_myanmar_syllable_machine_index_offsets[cs])); _inds = _myanmar_syllable_machine_indicies + _myanmar_syllable_machine_index_offsets[cs];
if ( (info[p].myanmar_category()) <= 32 && (info[p].myanmar_category()) >= 1 ) _slen = _myanmar_syllable_machine_key_spans[cs];
{ _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].myanmar_category()) &&
int _ic = (int)_myanmar_syllable_machine_char_class[(int)(info[p].myanmar_category()) - 1]; ( info[p].myanmar_category()) <= _keys[1] ?
if ( _ic <= (int)(*( _keys+1)) && _ic >= (int)(*( _keys)) ) ( info[p].myanmar_category()) - _keys[0] : _slen ];
_trans = (unsigned int)(*( _inds + (int)( _ic - (int)(*( _keys)) ) ));
else
_trans = (unsigned int)_myanmar_syllable_machine_index_defaults[cs];
}
else {
_trans = (unsigned int)_myanmar_syllable_machine_index_defaults[cs];
}
goto _match_cond; _eof_trans:
} cs = _myanmar_syllable_machine_trans_targs[_trans];
_match_cond: {
cs = (int)_myanmar_syllable_machine_cond_targs[_trans];
if ( _myanmar_syllable_machine_cond_actions[_trans] == 0 ) if ( _myanmar_syllable_machine_trans_actions[_trans] == 0 )
goto _again; goto _again;
switch ( _myanmar_syllable_machine_cond_actions[_trans] ) { switch ( _myanmar_syllable_machine_trans_actions[_trans] ) {
case 6: { case 6:
{
#line 86 "hb-ot-shape-complex-myanmar-machine.rl" #line 86 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p+1;{ {te = p+1;{ found_syllable (consonant_syllable); }}
#line 86 "hb-ot-shape-complex-myanmar-machine.rl" break;
found_syllable (consonant_syllable); }}} case 4:
break; }
case 4: {
{
#line 87 "hb-ot-shape-complex-myanmar-machine.rl" #line 87 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p+1;{ {te = p+1;{ found_syllable (non_myanmar_cluster); }}
#line 87 "hb-ot-shape-complex-myanmar-machine.rl" break;
found_syllable (non_myanmar_cluster); }}} case 10:
break; }
case 10: {
{
#line 88 "hb-ot-shape-complex-myanmar-machine.rl" #line 88 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p+1;{ {te = p+1;{ found_syllable (punctuation_cluster); }}
#line 88 "hb-ot-shape-complex-myanmar-machine.rl" break;
found_syllable (punctuation_cluster); }}} case 8:
break; }
case 8: {
{
#line 89 "hb-ot-shape-complex-myanmar-machine.rl" #line 89 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p+1;{ {te = p+1;{ found_syllable (broken_cluster); }}
#line 89 "hb-ot-shape-complex-myanmar-machine.rl" break;
found_syllable (broken_cluster); }}} case 3:
break; }
case 3: {
{
#line 90 "hb-ot-shape-complex-myanmar-machine.rl" #line 90 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p+1;{ {te = p+1;{ found_syllable (non_myanmar_cluster); }}
#line 90 "hb-ot-shape-complex-myanmar-machine.rl" break;
found_syllable (non_myanmar_cluster); }}} case 5:
break; }
case 5: {
{
#line 86 "hb-ot-shape-complex-myanmar-machine.rl" #line 86 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p;p = p - 1;{ {te = p;p--;{ found_syllable (consonant_syllable); }}
#line 86 "hb-ot-shape-complex-myanmar-machine.rl" break;
found_syllable (consonant_syllable); }}} case 7:
break; }
case 7: {
{
#line 89 "hb-ot-shape-complex-myanmar-machine.rl" #line 89 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p;p = p - 1;{ {te = p;p--;{ found_syllable (broken_cluster); }}
#line 89 "hb-ot-shape-complex-myanmar-machine.rl" break;
found_syllable (broken_cluster); }}} case 9:
break; }
case 9: {
{
#line 90 "hb-ot-shape-complex-myanmar-machine.rl" #line 90 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p;p = p - 1;{ {te = p;p--;{ found_syllable (non_myanmar_cluster); }}
#line 90 "hb-ot-shape-complex-myanmar-machine.rl" break;
found_syllable (non_myanmar_cluster); }}} #line 393 "hb-ot-shape-complex-myanmar-machine.hh"
break; }
} }
_again:
}
_again: {
switch ( _myanmar_syllable_machine_to_state_actions[cs] ) { switch ( _myanmar_syllable_machine_to_state_actions[cs] ) {
case 1: { case 1:
{
#line 1 "NONE" #line 1 "NONE"
{ts = 0;}} {ts = 0;}
break;
break; } #line 402 "hb-ot-shape-complex-myanmar-machine.hh"
} }
p += 1; if ( ++p != pe )
if ( p != pe )
goto _resume; goto _resume;
} _test_eof: {}
_test_eof: { {}
if ( p == eof ) if ( p == eof )
{ {
if ( _myanmar_syllable_machine_eof_cond_spaces[cs] != -1 ) {
_cekeys = ( _myanmar_syllable_machine_eof_cond_keys + (_myanmar_syllable_machine_eof_cond_key_offs[cs]));
_klen = (int)_myanmar_syllable_machine_eof_cond_key_lens[cs];
_cpc = 0;
{
const char *_lower = _cekeys;
const char *_upper = _cekeys + _klen - 1;
const char *_mid;
while ( 1 ) {
if ( _upper < _lower )
break;
_mid = _lower + ((_upper-_lower) >> 1);
if ( _cpc < (int)(*( _mid)) )
_upper = _mid - 1;
else if ( _cpc > (int)(*( _mid)) )
_lower = _mid + 1;
else {
goto _ok;
}
}
cs = -1;
goto _out;
}
_ok: {}
}
if ( _myanmar_syllable_machine_eof_trans[cs] > 0 ) { if ( _myanmar_syllable_machine_eof_trans[cs] > 0 ) {
_trans = (unsigned int)_myanmar_syllable_machine_eof_trans[cs] - 1; _trans = _myanmar_syllable_machine_eof_trans[cs] - 1;
goto _match_cond; goto _eof_trans;
} }
} }
} }
_out: { {}
} #line 122 "hb-ot-shape-complex-myanmar-machine.rl"
}
}
} }

View File

@ -1,3 +1,5 @@
#line 1 "hb-ot-shape-complex-use-machine.rl"
/* /*
* Copyright © 2015 Mozilla Foundation. * Copyright © 2015 Mozilla Foundation.
* Copyright © 2015 Google, Inc. * Copyright © 2015 Google, Inc.
@ -32,245 +34,273 @@
#include "hb.hh" #include "hb.hh"
#line 38 "hb-ot-shape-complex-use-machine.hh"
static const unsigned char _use_syllable_machine_trans_keys[] = { static const unsigned char _use_syllable_machine_trans_keys[] = {
7u, 33u, 1u, 9u, 1u, 1u, 7u, 33u, 12u, 44u, 1u, 15u, 1u, 1u, 12u, 44u, 0u, 44u, 21u, 21u, 8u, 44u, 8u, 44u,
0u, 33u, 12u, 12u, 5u, 33u, 5u, 33u, 1u, 15u, 1u, 1u, 8u, 44u, 8u, 44u, 8u, 39u, 8u, 26u, 8u, 26u, 8u, 26u,
1u, 9u, 1u, 1u, 5u, 33u, 5u, 33u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 44u, 8u, 44u, 8u, 44u, 8u, 44u, 8u, 44u,
5u, 29u, 5u, 17u, 5u, 17u, 5u, 17u, 8u, 44u, 8u, 44u, 8u, 44u, 1u, 39u, 8u, 44u, 13u, 21u, 4u, 4u, 13u, 13u,
5u, 29u, 5u, 29u, 5u, 29u, 5u, 33u, 8u, 44u, 8u, 44u, 41u, 42u, 42u, 42u, 8u, 44u, 8u, 44u, 8u, 44u, 8u, 39u,
5u, 33u, 5u, 33u, 5u, 33u, 5u, 33u, 8u, 26u, 8u, 26u, 8u, 26u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 44u, 8u, 44u,
5u, 33u, 5u, 33u, 5u, 33u, 1u, 29u, 8u, 44u, 8u, 44u, 8u, 44u, 8u, 44u, 8u, 44u, 8u, 44u, 1u, 39u, 1u, 15u,
5u, 33u, 8u, 12u, 3u, 3u, 8u, 8u, 4u, 4u, 13u, 21u, 13u, 13u, 12u, 44u, 1u, 44u, 8u, 44u, 41u, 42u, 42u, 42u,
5u, 33u, 5u, 33u, 30u, 31u, 31u, 31u, 21u, 42u, 1u, 5u, 0
5u, 33u, 5u, 33u, 5u, 33u, 5u, 29u,
5u, 17u, 5u, 17u, 5u, 17u, 5u, 29u,
5u, 29u, 5u, 29u, 5u, 33u, 5u, 33u,
5u, 33u, 5u, 33u, 5u, 33u, 5u, 33u,
5u, 33u, 5u, 33u, 1u, 29u, 1u, 9u,
3u, 3u, 8u, 12u, 8u, 8u, 7u, 33u,
1u, 33u, 5u, 33u, 30u, 31u, 31u, 31u,
12u, 31u, 1u, 4u, 0u
}; };
static const char _use_syllable_machine_char_class[] = { static const char _use_syllable_machine_key_spans[] = {
0, 1, 2, 0, 3, 4, 2, 2, 33, 15, 1, 33, 45, 1, 37, 37,
5, 2, 2, 6, 7, 8, 2, 9, 15, 1, 37, 37, 32, 19, 19, 19,
0, 0, 10, 11, 2, 12, 13, 14, 32, 32, 32, 37, 37, 37, 37, 37,
15, 16, 17, 18, 19, 20, 21, 22, 37, 37, 37, 39, 37, 9, 1, 1,
23, 24, 25, 26, 2, 27, 28, 29, 37, 37, 2, 1, 37, 37, 37, 32,
2, 30, 31, 32, 33, 0 19, 19, 19, 32, 32, 32, 37, 37,
37, 37, 37, 37, 37, 37, 39, 15,
1, 9, 1, 33, 44, 37, 2, 1,
22, 5
}; };
static const short _use_syllable_machine_index_offsets[] = { static const short _use_syllable_machine_index_offsets[] = {
0, 27, 36, 37, 64, 98, 99, 128, 0, 34, 50, 52, 86, 132, 134, 172,
157, 166, 167, 196, 225, 250, 263, 276, 210, 226, 228, 266, 304, 337, 357, 377,
289, 314, 339, 364, 393, 422, 451, 480, 397, 430, 463, 496, 534, 572, 610, 648,
509, 538, 567, 596, 625, 654, 659, 660, 686, 724, 762, 800, 840, 878, 888, 890,
661, 690, 719, 721, 722, 751, 780, 809, 892, 930, 968, 971, 973, 1011, 1049, 1087,
834, 847, 860, 873, 898, 923, 948, 977, 1120, 1140, 1160, 1180, 1213, 1246, 1279, 1317,
1006, 1035, 1064, 1093, 1122, 1151, 1180, 1209, 1355, 1393, 1431, 1469, 1507, 1545, 1583, 1623,
1218, 1219, 1224, 1225, 1252, 1285, 1314, 1316, 1639, 1641, 1651, 1653, 1687, 1732, 1770, 1773,
1317, 1337, 0 1775, 1798
}; };
static const char _use_syllable_machine_indicies[] = { static const char _use_syllable_machine_indicies[] = {
1, 0, 0, 0, 0, 0, 0, 0, 1, 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, 1, 3, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
2, 2, 2, 4, 3, 6, 5, 5, 1, 0, 3, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
4, 2, 3, 2, 6, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5,
7, 8, 9, 10, 11, 12, 3, 13, 5, 5, 5, 5, 6, 5, 7, 8,
14, 15, 16, 17, 9, 18, 19, 20, 9, 7, 10, 11, 9, 9, 12, 9,
21, 22, 23, 24, 18, 25, 26, 27, 9, 3, 13, 14, 9, 15, 7, 7,
28, 29, 30, 31, 32, 33, 34, 35, 16, 17, 9, 9, 18, 19, 20, 21,
36, 37, 39, 41, 42, 1, 40, 43, 22, 23, 24, 18, 25, 26, 27, 28,
40, 40, 44, 45, 46, 47, 48, 49, 29, 30, 9, 31, 32, 33, 9, 34,
50, 51, 45, 52, 44, 53, 54, 55, 35, 36, 37, 9, 39, 38, 41, 40,
56, 57, 58, 59, 40, 40, 40, 60, 40, 42, 1, 40, 40, 43, 40, 40,
41, 42, 1, 40, 43, 40, 40, 61, 40, 40, 40, 44, 45, 46, 47, 48,
45, 46, 47, 48, 49, 50, 51, 45, 49, 50, 51, 45, 52, 44, 53, 54,
52, 53, 53, 54, 55, 56, 57, 58, 55, 56, 40, 57, 58, 59, 40, 40,
59, 40, 40, 40, 60, 42, 62, 62, 40, 40, 60, 40, 41, 40, 40, 42,
62, 62, 62, 62, 62, 63, 42, 41, 1, 40, 40, 43, 40, 40, 40, 40,
42, 1, 40, 43, 40, 40, 40, 45, 40, 61, 45, 46, 47, 48, 49, 50,
46, 47, 48, 49, 50, 51, 45, 52, 51, 45, 52, 53, 53, 54, 55, 56,
53, 53, 54, 55, 56, 57, 58, 59, 40, 57, 58, 59, 40, 40, 40, 40,
40, 40, 40, 60, 41, 40, 40, 40, 60, 40, 42, 62, 62, 62, 62, 62,
40, 40, 40, 40, 45, 46, 47, 48, 62, 62, 62, 62, 62, 62, 62, 62,
49, 40, 40, 40, 40, 40, 40, 54, 63, 62, 42, 62, 41, 40, 40, 42,
55, 56, 57, 58, 59, 40, 40, 40, 1, 40, 40, 43, 40, 40, 40, 40,
46, 41, 40, 40, 40, 40, 40, 40, 40, 40, 45, 46, 47, 48, 49, 50,
40, 40, 46, 47, 48, 49, 40, 40, 51, 45, 52, 53, 53, 54, 55, 56,
40, 40, 40, 40, 40, 40, 40, 57, 40, 57, 58, 59, 40, 40, 40, 40,
58, 59, 41, 40, 40, 40, 40, 40, 60, 40, 41, 40, 40, 40, 40, 40,
40, 40, 40, 40, 47, 48, 49, 41,
40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 48, 49, 41, 40, 40, 40, 45, 46, 47, 48, 49, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 54, 55, 56, 40, 57,
49, 41, 40, 40, 40, 40, 40, 40, 58, 59, 40, 40, 40, 40, 46, 40,
40, 40, 40, 47, 48, 49, 40, 40, 41, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 57,
58, 59, 41, 40, 40, 40, 40, 40,
40, 40, 40, 40, 47, 48, 49, 40,
40, 40, 40, 40, 40, 40, 40, 40,
40, 58, 59, 41, 40, 40, 40, 40,
40, 40, 40, 40, 40, 47, 48, 49,
40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 59, 41, 40, 40, 40,
40, 40, 40, 40, 40, 46, 47, 48,
49, 40, 40, 40, 40, 40, 40, 54,
55, 56, 57, 58, 59, 40, 40, 40,
46, 41, 40, 40, 40, 40, 40, 40,
40, 40, 46, 47, 48, 49, 40, 40,
40, 40, 40, 40, 40, 55, 56, 57,
58, 59, 40, 40, 40, 46, 41, 40,
40, 40, 40, 40, 40, 40, 40, 46, 40, 40, 40, 40, 40, 40, 40, 46,
47, 48, 49, 40, 40, 40, 40, 40, 47, 48, 49, 40, 40, 40, 40, 40,
40, 40, 40, 56, 57, 58, 59, 40, 40, 40, 40, 40, 40, 57, 58, 59,
40, 40, 46, 41, 40, 40, 40, 40, 40, 41, 40, 40, 40, 40, 40, 40,
40, 40, 40, 45, 46, 47, 48, 49, 40, 40, 40, 40, 40, 40, 40, 40,
40, 51, 45, 40, 40, 40, 54, 55, 40, 47, 48, 49, 40, 41, 40, 40,
56, 57, 58, 59, 40, 40, 40, 46, 40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 48, 49,
40, 41, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 49, 40, 41, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 47, 48, 49,
40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 57, 58, 59, 40, 41, 40,
40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 47, 48,
49, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 58, 59, 40, 41,
40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 47,
48, 49, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 59, 40,
41, 40, 40, 40, 40, 40, 40, 40, 41, 40, 40, 40, 40, 40, 40, 40,
45, 46, 47, 48, 49, 40, 64, 45, 40, 40, 40, 40, 40, 40, 40, 46,
40, 40, 40, 54, 55, 56, 57, 58, 47, 48, 49, 40, 40, 40, 40, 40,
59, 40, 40, 40, 46, 41, 40, 40, 40, 54, 55, 56, 40, 57, 58, 59,
40, 40, 40, 40, 40, 45, 46, 47, 40, 40, 40, 40, 46, 40, 41, 40,
48, 49, 40, 40, 45, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
54, 55, 56, 57, 58, 59, 40, 40, 40, 40, 40, 40, 40, 46, 47, 48,
40, 46, 41, 40, 40, 40, 40, 40, 49, 40, 40, 40, 40, 40, 40, 40,
55, 56, 40, 57, 58, 59, 40, 40,
40, 40, 46, 40, 41, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 46, 47, 48, 49, 40,
40, 40, 40, 40, 40, 40, 40, 56,
40, 57, 58, 59, 40, 40, 40, 40,
46, 40, 41, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40,
45, 46, 47, 48, 49, 40, 51, 45,
40, 40, 40, 54, 55, 56, 40, 57,
58, 59, 40, 40, 40, 40, 46, 40,
41, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 45, 46,
47, 48, 49, 40, 64, 45, 40, 40,
40, 54, 55, 56, 40, 57, 58, 59,
40, 40, 40, 40, 46, 40, 41, 40,
40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 45, 46, 47, 48,
49, 40, 40, 45, 40, 40, 40, 54,
55, 56, 40, 57, 58, 59, 40, 40,
40, 40, 46, 40, 41, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 45, 46, 47, 48, 49, 50, 40, 40, 45, 46, 47, 48, 49, 50,
51, 45, 40, 40, 40, 54, 55, 56, 51, 45, 40, 40, 40, 54, 55, 56,
57, 58, 59, 40, 40, 40, 46, 41, 40, 57, 58, 59, 40, 40, 40, 40,
42, 1, 40, 43, 40, 40, 40, 45, 46, 40, 41, 40, 40, 42, 1, 40,
46, 47, 48, 49, 50, 51, 45, 52, 40, 43, 40, 40, 40, 40, 40, 40,
40, 53, 54, 55, 56, 57, 58, 59, 45, 46, 47, 48, 49, 50, 51, 45,
40, 40, 40, 60, 42, 62, 62, 62, 52, 40, 53, 54, 55, 56, 40, 57,
41, 62, 62, 62, 63, 62, 62, 62, 58, 59, 40, 40, 40, 40, 60, 40,
62, 46, 47, 48, 49, 62, 62, 62, 42, 62, 62, 62, 62, 62, 62, 41,
62, 62, 62, 62, 62, 62, 57, 58, 62, 62, 62, 62, 62, 62, 63, 62,
59, 41, 42, 1, 40, 43, 40, 40, 62, 62, 62, 62, 62, 62, 46, 47,
40, 45, 46, 47, 48, 49, 50, 51, 48, 49, 62, 62, 62, 62, 62, 62,
45, 52, 44, 53, 54, 55, 56, 57, 62, 62, 62, 62, 57, 58, 59, 62,
58, 59, 40, 40, 40, 60, 66, 65, 41, 40, 40, 42, 1, 40, 40, 43,
65, 65, 67, 10, 66, 41, 42, 1, 40, 40, 40, 40, 40, 40, 45, 46,
40, 43, 40, 40, 69, 45, 46, 47, 47, 48, 49, 50, 51, 45, 52, 44,
48, 49, 50, 51, 45, 52, 44, 53, 53, 54, 55, 56, 40, 57, 58, 59,
54, 55, 56, 57, 58, 59, 70, 71, 40, 40, 40, 40, 60, 40, 66, 65,
40, 60, 41, 42, 1, 40, 43, 40, 65, 65, 65, 65, 65, 65, 67, 65,
40, 40, 45, 46, 47, 48, 49, 50, 10, 68, 66, 65, 41, 40, 40, 42,
1, 40, 40, 43, 40, 40, 40, 40,
40, 69, 45, 46, 47, 48, 49, 50,
51, 45, 52, 44, 53, 54, 55, 56, 51, 45, 52, 44, 53, 54, 55, 56,
57, 58, 59, 70, 71, 40, 60, 70, 40, 57, 58, 59, 40, 70, 71, 40,
71, 71, 12, 3, 6, 73, 74, 73, 60, 40, 41, 40, 40, 42, 1, 40,
73, 75, 18, 19, 20, 21, 22, 23, 40, 43, 40, 40, 40, 40, 40, 40,
24, 18, 25, 27, 27, 28, 29, 30, 45, 46, 47, 48, 49, 50, 51, 45,
31, 32, 33, 73, 73, 73, 37, 12, 52, 44, 53, 54, 55, 56, 40, 57,
3, 6, 73, 74, 73, 73, 73, 18, 58, 59, 40, 70, 71, 40, 60, 40,
19, 20, 21, 22, 23, 24, 18, 25, 70, 71, 72, 71, 72, 12, 73, 73,
27, 27, 28, 29, 30, 31, 32, 33, 3, 6, 73, 73, 74, 73, 73, 73,
73, 73, 73, 37, 12, 73, 73, 73, 73, 73, 75, 18, 19, 20, 21, 22,
73, 73, 73, 73, 18, 19, 20, 21, 23, 24, 18, 25, 27, 27, 28, 29,
22, 73, 73, 73, 73, 73, 73, 28, 30, 73, 31, 32, 33, 73, 73, 73,
29, 30, 31, 32, 33, 73, 73, 73, 73, 37, 73, 12, 73, 73, 3, 6,
19, 12, 73, 73, 73, 73, 73, 73, 73, 73, 74, 73, 73, 73, 73, 73,
73, 73, 19, 20, 21, 22, 73, 73, 73, 18, 19, 20, 21, 22, 23, 24,
73, 73, 73, 73, 73, 73, 73, 31, 18, 25, 27, 27, 28, 29, 30, 73,
32, 33, 12, 73, 73, 73, 73, 73, 31, 32, 33, 73, 73, 73, 73, 37,
73, 73, 73, 73, 20, 21, 22, 12, 73, 12, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 18,
19, 20, 21, 22, 73, 73, 73, 73,
73, 73, 28, 29, 30, 73, 31, 32,
33, 73, 73, 73, 73, 19, 73, 12,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 21, 22, 12, 73, 73, 73, 73, 73, 73, 73, 73, 73, 19, 20,
21, 22, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 31, 32, 33, 73,
12, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73,
20, 21, 22, 73, 12, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 21, 22, 73,
12, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 22, 73, 12, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
22, 12, 73, 73, 73, 73, 73, 73,
73, 73, 73, 20, 21, 22, 73, 73,
73, 73, 73, 73, 73, 73, 73, 31,
32, 33, 12, 73, 73, 73, 73, 73,
73, 73, 73, 73, 20, 21, 22, 73, 73, 73, 73, 73, 20, 21, 22, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 32, 33, 12, 73, 73, 73, 73, 73, 31, 32, 33, 73, 12, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 20, 21, 22, 73, 73, 73, 73, 73, 20, 21, 22,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 33, 12, 73, 73, 73, 73, 73, 73, 32, 33, 73, 12, 73,
73, 73, 73, 73, 73, 19, 20, 21,
22, 73, 73, 73, 73, 73, 73, 28,
29, 30, 31, 32, 33, 73, 73, 73,
19, 12, 73, 73, 73, 73, 73, 73,
73, 73, 19, 20, 21, 22, 73, 73,
73, 73, 73, 73, 73, 29, 30, 31,
32, 33, 73, 73, 73, 19, 12, 73,
73, 73, 73, 73, 73, 73, 73, 19,
20, 21, 22, 73, 73, 73, 73, 73,
73, 73, 73, 30, 31, 32, 33, 73,
73, 73, 19, 12, 73, 73, 73, 73,
73, 73, 73, 18, 19, 20, 21, 22,
73, 24, 18, 73, 73, 73, 28, 29,
30, 31, 32, 33, 73, 73, 73, 19,
12, 73, 73, 73, 73, 73, 73, 73,
18, 19, 20, 21, 22, 73, 76, 18,
73, 73, 73, 28, 29, 30, 31, 32,
33, 73, 73, 73, 19, 12, 73, 73,
73, 73, 73, 73, 73, 18, 19, 20,
21, 22, 73, 73, 18, 73, 73, 73,
28, 29, 30, 31, 32, 33, 73, 73,
73, 19, 12, 73, 73, 73, 73, 73,
73, 73, 18, 19, 20, 21, 22, 23,
24, 18, 73, 73, 73, 28, 29, 30,
31, 32, 33, 73, 73, 73, 19, 12,
3, 6, 73, 74, 73, 73, 73, 18,
19, 20, 21, 22, 23, 24, 18, 25,
73, 27, 28, 29, 30, 31, 32, 33,
73, 73, 73, 37, 3, 73, 73, 73,
12, 73, 73, 73, 4, 73, 73, 73,
73, 19, 20, 21, 22, 73, 73, 73,
73, 73, 73, 73, 73, 73, 31, 32,
33, 3, 77, 77, 77, 77, 77, 77,
77, 4, 78, 14, 73, 73, 73, 79,
14, 6, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 6, 8, 73, 73, 8,
12, 3, 6, 14, 74, 73, 73, 73,
18, 19, 20, 21, 22, 23, 24, 18,
25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 73, 37, 12, 3, 6,
73, 74, 73, 73, 73, 18, 19, 20,
21, 22, 23, 24, 18, 25, 26, 27,
28, 29, 30, 31, 32, 33, 73, 73,
73, 37, 34, 35, 35, 70, 72, 72,
72, 72, 72, 72, 72, 72, 72, 72,
72, 72, 72, 72, 72, 72, 72, 70,
71, 8, 77, 77, 8, 0
};
static const char _use_syllable_machine_index_defaults[] = {
0, 2, 2, 5, 9, 38, 40, 40,
62, 62, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 62, 40, 65, 68, 65,
40, 40, 72, 72, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 77, 73, 73, 73, 73, 73, 73, 20, 21,
73, 73, 73, 77, 73, 73, 73, 73, 22, 73, 73, 73, 73, 73, 73, 73,
72, 77, 0 73, 73, 73, 73, 73, 33, 73, 12,
73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 19, 20,
21, 22, 73, 73, 73, 73, 73, 73,
28, 29, 30, 73, 31, 32, 33, 73,
73, 73, 73, 19, 73, 12, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 19, 20, 21, 22,
73, 73, 73, 73, 73, 73, 73, 29,
30, 73, 31, 32, 33, 73, 73, 73,
73, 19, 73, 12, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 19, 20, 21, 22, 73, 73,
73, 73, 73, 73, 73, 73, 30, 73,
31, 32, 33, 73, 73, 73, 73, 19,
73, 12, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 18,
19, 20, 21, 22, 73, 24, 18, 73,
73, 73, 28, 29, 30, 73, 31, 32,
33, 73, 73, 73, 73, 19, 73, 12,
73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 18, 19, 20,
21, 22, 73, 76, 18, 73, 73, 73,
28, 29, 30, 73, 31, 32, 33, 73,
73, 73, 73, 19, 73, 12, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 18, 19, 20, 21, 22,
73, 73, 18, 73, 73, 73, 28, 29,
30, 73, 31, 32, 33, 73, 73, 73,
73, 19, 73, 12, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73,
73, 18, 19, 20, 21, 22, 23, 24,
18, 73, 73, 73, 28, 29, 30, 73,
31, 32, 33, 73, 73, 73, 73, 19,
73, 12, 73, 73, 3, 6, 73, 73,
74, 73, 73, 73, 73, 73, 73, 18,
19, 20, 21, 22, 23, 24, 18, 25,
73, 27, 28, 29, 30, 73, 31, 32,
33, 73, 73, 73, 73, 37, 73, 3,
73, 73, 73, 73, 73, 73, 12, 73,
73, 73, 73, 73, 73, 4, 73, 73,
73, 73, 73, 73, 73, 19, 20, 21,
22, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 31, 32, 33, 73, 3,
77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 4, 77, 78,
73, 14, 73, 73, 73, 73, 73, 73,
73, 79, 73, 14, 73, 6, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 6, 77, 8,
73, 73, 73, 8, 73, 73, 12, 73,
73, 3, 6, 14, 73, 74, 73, 73,
73, 73, 73, 73, 18, 19, 20, 21,
22, 23, 24, 18, 25, 26, 27, 28,
29, 30, 73, 31, 32, 33, 73, 34,
35, 73, 37, 73, 12, 73, 73, 3,
6, 73, 73, 74, 73, 73, 73, 73,
73, 73, 18, 19, 20, 21, 22, 23,
24, 18, 25, 26, 27, 28, 29, 30,
73, 31, 32, 33, 73, 73, 73, 73,
37, 73, 34, 35, 73, 35, 73, 70,
72, 72, 72, 72, 72, 72, 72, 72,
72, 72, 72, 72, 72, 72, 72, 72,
72, 72, 72, 70, 71, 72, 8, 77,
77, 77, 8, 77, 0
}; };
static const char _use_syllable_machine_trans_cond_spaces[] = { static const char _use_syllable_machine_trans_targs[] = {
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
0
};
static const char _use_syllable_machine_cond_targs[] = {
4, 8, 4, 36, 2, 4, 1, 5, 4, 8, 4, 36, 2, 4, 1, 5,
6, 4, 29, 32, 4, 55, 56, 59, 6, 4, 29, 32, 4, 55, 56, 59,
60, 64, 38, 39, 40, 41, 42, 49, 60, 64, 38, 39, 40, 41, 42, 49,
@ -280,11 +310,10 @@ static const char _use_syllable_machine_cond_targs[] = {
14, 15, 22, 23, 25, 26, 19, 20, 14, 15, 22, 23, 25, 26, 19, 20,
21, 16, 17, 18, 27, 10, 4, 9, 21, 16, 17, 18, 27, 10, 4, 9,
24, 4, 30, 31, 4, 33, 34, 35, 24, 4, 30, 31, 4, 33, 34, 35,
4, 4, 3, 37, 51, 4, 57, 58, 4, 4, 3, 37, 51, 4, 57, 58
0
}; };
static const char _use_syllable_machine_cond_actions[] = { static const char _use_syllable_machine_trans_actions[] = {
1, 0, 2, 3, 0, 4, 0, 0, 1, 0, 2, 3, 0, 4, 0, 0,
7, 8, 0, 7, 9, 10, 0, 10, 7, 8, 0, 7, 9, 10, 0, 10,
3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
@ -294,8 +323,7 @@ static const char _use_syllable_machine_cond_actions[] = {
0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0,
0, 0, 0, 0, 0, 7, 15, 0, 0, 0, 0, 0, 0, 7, 15, 0,
0, 16, 0, 0, 17, 7, 0, 0, 0, 16, 0, 0, 17, 7, 0, 0,
18, 19, 0, 3, 0, 20, 0, 0, 18, 19, 0, 3, 0, 20, 0, 0
0
}; };
static const char _use_syllable_machine_to_state_actions[] = { static const char _use_syllable_machine_to_state_actions[] = {
@ -307,7 +335,7 @@ static const char _use_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
}; };
static const char _use_syllable_machine_from_state_actions[] = { static const char _use_syllable_machine_from_state_actions[] = {
@ -319,50 +347,10 @@ static const char _use_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
}; };
static const char _use_syllable_machine_eof_cond_spaces[] = { static const short _use_syllable_machine_eof_trans[] = {
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 0
};
static const char _use_syllable_machine_eof_cond_key_offs[] = {
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, 0, 0, 0, 0,
0, 0, 0
};
static const char _use_syllable_machine_eof_cond_key_lens[] = {
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, 0, 0, 0, 0,
0, 0, 0
};
static const char _use_syllable_machine_eof_cond_keys[] = {
0
};
static const char _use_syllable_machine_eof_trans[] = {
1, 3, 3, 6, 0, 39, 41, 41, 1, 3, 3, 6, 0, 39, 41, 41,
63, 63, 41, 41, 41, 41, 41, 41, 63, 63, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
@ -371,31 +359,7 @@ static const char _use_syllable_machine_eof_trans[] = {
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 78, 74, 74, 74, 74, 74, 74, 74, 78,
74, 74, 74, 78, 74, 74, 74, 74, 74, 74, 74, 78, 74, 74, 74, 74,
73, 78, 0 73, 78
};
static const char _use_syllable_machine_nfa_targs[] = {
0, 0
};
static const char _use_syllable_machine_nfa_offsets[] = {
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, 0, 0, 0, 0,
0, 0, 0
};
static const char _use_syllable_machine_nfa_push_actions[] = {
0, 0
};
static const char _use_syllable_machine_nfa_pop_trans[] = {
0, 0
}; };
static const int use_syllable_machine_start = 4; static const int use_syllable_machine_start = 4;
@ -405,9 +369,13 @@ static const int use_syllable_machine_error = -1;
static const int use_syllable_machine_en_main = 4; static const int use_syllable_machine_en_main = 4;
#line 38 "hb-ot-shape-complex-use-machine.rl"
#line 146 "hb-ot-shape-complex-use-machine.rl"
#define found_syllable(syllable_type) \ #define found_syllable(syllable_type) \
HB_STMT_START { \ HB_STMT_START { \
if (0) fprintf (stderr, "syllable %d..%d %s\n", ts, te, #syllable_type); \ if (0) fprintf (stderr, "syllable %d..%d %s\n", ts, te, #syllable_type); \
@ -424,272 +392,164 @@ find_syllables (hb_buffer_t *buffer)
int cs; int cs;
hb_glyph_info_t *info = buffer->info; hb_glyph_info_t *info = buffer->info;
#line 396 "hb-ot-shape-complex-use-machine.hh"
{ {
cs = (int)use_syllable_machine_start; cs = use_syllable_machine_start;
ts = 0; ts = 0;
te = 0; te = 0;
act = 0; act = 0;
} }
#line 166 "hb-ot-shape-complex-use-machine.rl"
p = 0; p = 0;
pe = eof = buffer->len; pe = eof = buffer->len;
unsigned int syllable_serial = 1; unsigned int syllable_serial = 1;
#line 412 "hb-ot-shape-complex-use-machine.hh"
{ {
int _cpc; int _slen;
int _klen;const char * _cekeys;unsigned int _trans = 0;const unsigned char * _keys;const char * _inds; { int _trans;
const unsigned char *_keys;
const char *_inds;
if ( p == pe ) if ( p == pe )
goto _test_eof; goto _test_eof;
_resume: { _resume:
switch ( _use_syllable_machine_from_state_actions[cs] ) { switch ( _use_syllable_machine_from_state_actions[cs] ) {
case 6: { case 6:
{
#line 1 "NONE" #line 1 "NONE"
{ts = p;}} {ts = p;}
break;
break; } #line 426 "hb-ot-shape-complex-use-machine.hh"
} }
_keys = ( _use_syllable_machine_trans_keys + ((cs<<1))); _keys = _use_syllable_machine_trans_keys + (cs<<1);
_inds = ( _use_syllable_machine_indicies + (_use_syllable_machine_index_offsets[cs])); _inds = _use_syllable_machine_indicies + _use_syllable_machine_index_offsets[cs];
if ( (info[p].use_category()) <= 44 ) _slen = _use_syllable_machine_key_spans[cs];
{ _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].use_category()) &&
int _ic = (int)_use_syllable_machine_char_class[(int)(info[p].use_category()) - 0]; ( info[p].use_category()) <= _keys[1] ?
if ( _ic <= (int)(*( _keys+1)) && _ic >= (int)(*( _keys)) ) ( info[p].use_category()) - _keys[0] : _slen ];
_trans = (unsigned int)(*( _inds + (int)( _ic - (int)(*( _keys)) ) ));
else
_trans = (unsigned int)_use_syllable_machine_index_defaults[cs];
}
else {
_trans = (unsigned int)_use_syllable_machine_index_defaults[cs];
}
goto _match_cond; _eof_trans:
} cs = _use_syllable_machine_trans_targs[_trans];
_match_cond: {
cs = (int)_use_syllable_machine_cond_targs[_trans];
if ( _use_syllable_machine_cond_actions[_trans] == 0 ) if ( _use_syllable_machine_trans_actions[_trans] == 0 )
goto _again; goto _again;
switch ( _use_syllable_machine_cond_actions[_trans] ) { switch ( _use_syllable_machine_trans_actions[_trans] ) {
case 7: { case 7:
{
#line 1 "NONE" #line 1 "NONE"
{te = p+1;}} {te = p+1;}
break;
break; } case 12:
case 12: {
{
#line 135 "hb-ot-shape-complex-use-machine.rl" #line 135 "hb-ot-shape-complex-use-machine.rl"
{te = p+1;{ {te = p+1;{ found_syllable (independent_cluster); }}
#line 135 "hb-ot-shape-complex-use-machine.rl" break;
found_syllable (independent_cluster); }}} case 14:
break; }
case 14: {
{
#line 137 "hb-ot-shape-complex-use-machine.rl" #line 137 "hb-ot-shape-complex-use-machine.rl"
{te = p+1;{ {te = p+1;{ found_syllable (standard_cluster); }}
#line 137 "hb-ot-shape-complex-use-machine.rl" break;
found_syllable (standard_cluster); }}} case 9:
break; }
case 9: {
{
#line 141 "hb-ot-shape-complex-use-machine.rl" #line 141 "hb-ot-shape-complex-use-machine.rl"
{te = p+1;{ {te = p+1;{ found_syllable (broken_cluster); }}
#line 141 "hb-ot-shape-complex-use-machine.rl" break;
found_syllable (broken_cluster); }}} case 8:
break; }
case 8: {
{
#line 142 "hb-ot-shape-complex-use-machine.rl" #line 142 "hb-ot-shape-complex-use-machine.rl"
{te = p+1;{ {te = p+1;{ found_syllable (non_cluster); }}
#line 142 "hb-ot-shape-complex-use-machine.rl" break;
found_syllable (non_cluster); }}} case 11:
break; }
case 11: {
{
#line 135 "hb-ot-shape-complex-use-machine.rl" #line 135 "hb-ot-shape-complex-use-machine.rl"
{te = p;p = p - 1;{ {te = p;p--;{ found_syllable (independent_cluster); }}
#line 135 "hb-ot-shape-complex-use-machine.rl" break;
found_syllable (independent_cluster); }}} case 15:
break; }
case 15: {
{
#line 136 "hb-ot-shape-complex-use-machine.rl" #line 136 "hb-ot-shape-complex-use-machine.rl"
{te = p;p = p - 1;{ {te = p;p--;{ found_syllable (virama_terminated_cluster); }}
#line 136 "hb-ot-shape-complex-use-machine.rl" break;
found_syllable (virama_terminated_cluster); }}} case 13:
break; }
case 13: {
{
#line 137 "hb-ot-shape-complex-use-machine.rl" #line 137 "hb-ot-shape-complex-use-machine.rl"
{te = p;p = p - 1;{ {te = p;p--;{ found_syllable (standard_cluster); }}
#line 137 "hb-ot-shape-complex-use-machine.rl" break;
found_syllable (standard_cluster); }}} case 17:
break; }
case 17: {
{
#line 138 "hb-ot-shape-complex-use-machine.rl" #line 138 "hb-ot-shape-complex-use-machine.rl"
{te = p;p = p - 1;{ {te = p;p--;{ found_syllable (number_joiner_terminated_cluster); }}
#line 138 "hb-ot-shape-complex-use-machine.rl" break;
found_syllable (number_joiner_terminated_cluster); }}} case 16:
break; }
case 16: {
{
#line 139 "hb-ot-shape-complex-use-machine.rl" #line 139 "hb-ot-shape-complex-use-machine.rl"
{te = p;p = p - 1;{ {te = p;p--;{ found_syllable (numeral_cluster); }}
#line 139 "hb-ot-shape-complex-use-machine.rl" break;
found_syllable (numeral_cluster); }}} case 18:
break; }
case 18: {
{
#line 140 "hb-ot-shape-complex-use-machine.rl" #line 140 "hb-ot-shape-complex-use-machine.rl"
{te = p;p = p - 1;{ {te = p;p--;{ found_syllable (symbol_cluster); }}
#line 140 "hb-ot-shape-complex-use-machine.rl" break;
found_syllable (symbol_cluster); }}} case 19:
break; }
case 19: {
{
#line 141 "hb-ot-shape-complex-use-machine.rl" #line 141 "hb-ot-shape-complex-use-machine.rl"
{te = p;p = p - 1;{ {te = p;p--;{ found_syllable (broken_cluster); }}
#line 141 "hb-ot-shape-complex-use-machine.rl" break;
found_syllable (broken_cluster); }}} case 20:
break; }
case 20: {
{
#line 142 "hb-ot-shape-complex-use-machine.rl" #line 142 "hb-ot-shape-complex-use-machine.rl"
{te = p;p = p - 1;{ {te = p;p--;{ found_syllable (non_cluster); }}
#line 142 "hb-ot-shape-complex-use-machine.rl" break;
found_syllable (non_cluster); }}} case 1:
break; }
case 1: {
{
#line 137 "hb-ot-shape-complex-use-machine.rl" #line 137 "hb-ot-shape-complex-use-machine.rl"
{p = ((te))-1; {{p = ((te))-1;}{ found_syllable (standard_cluster); }}
{ break;
#line 137 "hb-ot-shape-complex-use-machine.rl" case 4:
found_syllable (standard_cluster); }}}
break; }
case 4: {
{
#line 141 "hb-ot-shape-complex-use-machine.rl" #line 141 "hb-ot-shape-complex-use-machine.rl"
{p = ((te))-1; {{p = ((te))-1;}{ found_syllable (broken_cluster); }}
{ break;
#line 141 "hb-ot-shape-complex-use-machine.rl" case 2:
found_syllable (broken_cluster); }}}
break; }
case 2: {
{
#line 1 "NONE" #line 1 "NONE"
{ switch( act ) { { switch( act ) {
case 7: { case 7:
p = ((te))-1; {{p = ((te))-1;} found_syllable (broken_cluster); }
{ break;
#line 141 "hb-ot-shape-complex-use-machine.rl" case 8:
found_syllable (broken_cluster); } break; } {{p = ((te))-1;} found_syllable (non_cluster); }
case 8: { break;
p = ((te))-1;
{
#line 142 "hb-ot-shape-complex-use-machine.rl"
found_syllable (non_cluster); } break; }
}}
} }
}
break; } break;
case 3: { case 3:
{
#line 1 "NONE" #line 1 "NONE"
{te = p+1;}} {te = p+1;}
{
#line 141 "hb-ot-shape-complex-use-machine.rl" #line 141 "hb-ot-shape-complex-use-machine.rl"
{act = 7;}} {act = 7;}
break;
break; } case 10:
case 10: {
{
#line 1 "NONE" #line 1 "NONE"
{te = p+1;}} {te = p+1;}
{
#line 142 "hb-ot-shape-complex-use-machine.rl" #line 142 "hb-ot-shape-complex-use-machine.rl"
{act = 8;}} {act = 8;}
break;
break; } #line 528 "hb-ot-shape-complex-use-machine.hh"
} }
_again:
}
_again: {
switch ( _use_syllable_machine_to_state_actions[cs] ) { switch ( _use_syllable_machine_to_state_actions[cs] ) {
case 5: { case 5:
{
#line 1 "NONE" #line 1 "NONE"
{ts = 0;}} {ts = 0;}
break;
break; } #line 537 "hb-ot-shape-complex-use-machine.hh"
} }
p += 1; if ( ++p != pe )
if ( p != pe )
goto _resume; goto _resume;
} _test_eof: {}
_test_eof: { {}
if ( p == eof ) if ( p == eof )
{ {
if ( _use_syllable_machine_eof_cond_spaces[cs] != -1 ) {
_cekeys = ( _use_syllable_machine_eof_cond_keys + (_use_syllable_machine_eof_cond_key_offs[cs]));
_klen = (int)_use_syllable_machine_eof_cond_key_lens[cs];
_cpc = 0;
{
const char *_lower = _cekeys;
const char *_upper = _cekeys + _klen - 1;
const char *_mid;
while ( 1 ) {
if ( _upper < _lower )
break;
_mid = _lower + ((_upper-_lower) >> 1);
if ( _cpc < (int)(*( _mid)) )
_upper = _mid - 1;
else if ( _cpc > (int)(*( _mid)) )
_lower = _mid + 1;
else {
goto _ok;
}
}
cs = -1;
goto _out;
}
_ok: {}
}
if ( _use_syllable_machine_eof_trans[cs] > 0 ) { if ( _use_syllable_machine_eof_trans[cs] > 0 ) {
_trans = (unsigned int)_use_syllable_machine_eof_trans[cs] - 1; _trans = _use_syllable_machine_eof_trans[cs] - 1;
goto _match_cond; goto _eof_trans;
} }
} }
} }
_out: { {}
} #line 174 "hb-ot-shape-complex-use-machine.rl"
}
}
} }