[buffer-deserialize] Deserialize glyph flags

Fixes https://github.com/harfbuzz/harfbuzz/issues/1482
This commit is contained in:
Behdad Esfahbod 2022-07-01 16:52:49 -06:00
parent 5134041f21
commit 351cccdb75
10 changed files with 757 additions and 478 deletions

View File

@ -38,9 +38,10 @@ static const unsigned char _deserialize_json_trans_keys[] = {
48u, 57u, 9u, 125u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u,
9u, 125u, 9u, 125u, 108u, 108u, 34u, 34u, 9u, 58u, 9u, 57u, 9u, 125u, 9u, 125u, 9u, 125u, 9u, 125u, 108u, 108u, 34u, 34u, 9u, 58u, 9u, 57u, 9u, 125u, 9u, 125u,
120u, 121u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 34u, 34u, 120u, 121u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 34u, 34u,
9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 108u, 108u, 34u, 34u, 9u, 58u,
34u, 92u, 9u, 125u, 34u, 92u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 9u, 57u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 34u, 92u, 9u, 125u,
9u, 125u, 9u, 93u, 9u, 123u, 0u, 0u, 0 34u, 92u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 9u, 125u, 9u, 93u,
9u, 123u, 0u, 0u, 0
}; };
static const char _deserialize_json_key_spans[] = { static const char _deserialize_json_key_spans[] = {
@ -48,9 +49,10 @@ static const char _deserialize_json_key_spans[] = {
10, 117, 117, 117, 1, 50, 49, 10, 10, 117, 117, 117, 1, 50, 49, 10,
117, 117, 1, 1, 50, 49, 117, 117, 117, 117, 1, 1, 50, 49, 117, 117,
2, 1, 50, 49, 10, 117, 117, 1, 2, 1, 50, 49, 10, 117, 117, 1,
50, 49, 10, 117, 117, 1, 50, 49, 50, 49, 10, 117, 117, 1, 1, 50,
59, 117, 59, 117, 117, 1, 50, 49, 49, 117, 117, 1, 50, 49, 59, 117,
117, 85, 115, 0 59, 117, 117, 1, 50, 49, 117, 85,
115, 0
}; };
static const short _deserialize_json_index_offsets[] = { static const short _deserialize_json_index_offsets[] = {
@ -58,9 +60,10 @@ static const short _deserialize_json_index_offsets[] = {
271, 282, 400, 518, 636, 638, 689, 739, 271, 282, 400, 518, 636, 638, 689, 739,
750, 868, 986, 988, 990, 1041, 1091, 1209, 750, 868, 986, 988, 990, 1041, 1091, 1209,
1327, 1330, 1332, 1383, 1433, 1444, 1562, 1680, 1327, 1330, 1332, 1383, 1433, 1444, 1562, 1680,
1682, 1733, 1783, 1794, 1912, 2030, 2032, 2083, 1682, 1733, 1783, 1794, 1912, 2030, 2032, 2034,
2133, 2193, 2311, 2371, 2489, 2607, 2609, 2660, 2085, 2135, 2253, 2371, 2373, 2424, 2474, 2534,
2710, 2828, 2914, 3030 2652, 2712, 2830, 2948, 2950, 3001, 3051, 3169,
3255, 3371
}; };
static const char _deserialize_json_indicies[] = { static const char _deserialize_json_indicies[] = {
@ -82,28 +85,28 @@ static const char _deserialize_json_indicies[] = {
3, 3, 1, 1, 1, 1, 1, 1, 3, 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, 3, 1, 4, 1, 1, 1, 1, 1, 3, 1, 4, 1,
5, 1, 6, 7, 1, 1, 8, 1, 5, 1, 6, 7, 1, 8, 9, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 9, 1, 10, 11, 1, 1, 1, 1, 10, 1, 11, 12,
1, 12, 1, 12, 12, 12, 12, 12, 1, 13, 1, 13, 13, 13, 13, 13,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 13, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 13, 1, 13, 13, 1, 1, 1, 1, 14, 1, 14, 14,
13, 13, 13, 1, 1, 1, 1, 1, 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, 13, 1, 1, 1, 1, 1, 1, 1, 14, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 14, 1, 1, 15, 16, 16, 1, 1, 15, 1, 1, 16, 17, 17,
16, 16, 16, 16, 16, 16, 16, 1, 17, 17, 17, 17, 17, 17, 17, 1,
17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19,
18, 18, 1, 19, 19, 19, 19, 19, 19, 19, 1, 20, 20, 20, 20, 20,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 19, 1, 1, 1, 1, 1, 1, 1, 20, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 20, 1, 1, 1, 1, 1, 1, 1, 21, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@ -113,11 +116,11 @@ static const char _deserialize_json_indicies[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 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, 22,
1, 22, 22, 22, 22, 22, 1, 1, 1, 23, 23, 23, 23, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1,
22, 1, 1, 1, 1, 1, 1, 1, 23, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 3, 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,
@ -128,13 +131,13 @@ static const char _deserialize_json_indicies[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 23, 1, 19, 1, 1, 1, 1, 1, 24, 1, 20,
19, 19, 19, 19, 1, 1, 1, 1, 20, 20, 20, 20, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 19, 1, 1, 1, 1, 1, 1, 1, 20, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 20, 1, 1, 1, 18, 18, 1, 1, 21, 1, 1, 1, 19, 19,
18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 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,
@ -143,26 +146,26 @@ static const char _deserialize_json_indicies[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 21, 1, 24, 1, 24, 1, 1, 1, 22, 1, 25, 1, 25,
24, 24, 24, 24, 1, 1, 1, 1, 25, 25, 25, 25, 1, 1, 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, 1, 1, 1, 1, 1, 1, 25, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25, 1, 25, 25, 25, 25, 25, 1, 26, 1, 26, 26, 26, 26, 26, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 25, 1, 1, 1, 1, 1, 1, 1, 26, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 26, 1, 1, 1, 1, 1, 1, 1, 27, 1,
1, 27, 28, 28, 28, 28, 28, 28, 1, 28, 29, 29, 29, 29, 29, 29,
28, 28, 28, 1, 29, 30, 30, 30, 29, 29, 29, 1, 30, 31, 31, 31,
30, 30, 30, 30, 30, 30, 1, 31, 31, 31, 31, 31, 31, 31, 1, 32,
31, 31, 31, 31, 1, 1, 1, 1, 32, 32, 32, 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, 31, 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, 32, 1, 1, 1, 1, 1, 1, 1, 33, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@ -172,13 +175,13 @@ static const char _deserialize_json_indicies[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 31, 31, 31, 1, 1, 1, 34, 1, 32, 32, 32,
31, 31, 1, 1, 1, 1, 1, 1, 32, 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, 31, 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,
32, 1, 1, 1, 30, 30, 30, 30, 33, 1, 1, 1, 31, 31, 31, 31,
30, 30, 30, 30, 30, 30, 1, 1, 31, 31, 31, 31, 31, 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,
@ -187,24 +190,24 @@ static const char _deserialize_json_indicies[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 35, 1, 35, 1, 34, 1, 35, 1, 36, 1, 36,
35, 35, 35, 35, 1, 1, 1, 1, 36, 36, 36, 36, 1, 1, 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, 36, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 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, 36, 36, 36, 36, 36, 1, 37, 1, 37, 37, 37, 37, 37, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 37, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 37, 38, 38, 38, 38, 38, 38, 1, 38, 39, 39, 39, 39, 39, 39,
38, 38, 38, 1, 39, 39, 39, 39, 39, 39, 39, 1, 40, 40, 40, 40,
39, 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, 39, 1, 1, 1, 1, 1, 1, 1, 40, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 40, 1, 1, 1, 1, 1, 1, 1, 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,
@ -215,13 +218,13 @@ static const char _deserialize_json_indicies[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 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, 39, 39, 39, 39, 39, 1, 42, 1, 40, 40, 40, 40, 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, 1, 1, 1,
1, 39, 1, 1, 1, 1, 1, 1, 1, 40, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 40, 1, 1, 1, 1, 1, 1, 1, 41, 1, 1,
1, 42, 42, 42, 42, 42, 42, 42, 1, 43, 43, 43, 43, 43, 43, 43,
42, 42, 42, 1, 1, 1, 1, 1, 43, 43, 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, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@ -229,27 +232,27 @@ static const char _deserialize_json_indicies[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 42, 1,
43, 44, 1, 45, 1, 45, 45, 45, 44, 45, 1, 46, 1, 46, 46, 46,
45, 45, 1, 1, 1, 1, 1, 1, 46, 46, 1, 1, 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, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 46, 1, 1, 1, 1, 1, 1, 1, 47, 1,
46, 46, 46, 46, 46, 1, 1, 1, 47, 47, 47, 47, 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, 46, 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, 47, 1, 1, 48, 1, 1, 1, 1, 48, 1, 1, 49,
49, 49, 49, 49, 49, 49, 49, 49, 50, 50, 50, 50, 50, 50, 50, 50,
49, 1, 50, 51, 51, 51, 51, 51, 50, 1, 51, 52, 52, 52, 52, 52,
51, 51, 51, 51, 1, 52, 52, 52, 52, 52, 52, 52, 1, 53, 53, 53,
52, 52, 1, 1, 1, 1, 1, 1, 53, 53, 1, 1, 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, 53, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
53, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@ -259,13 +262,13 @@ static const char _deserialize_json_indicies[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 54, 1, 52, 52, 52, 52, 52, 1, 55, 1, 53, 53, 53, 53, 53,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 53, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 53, 1, 1, 1, 1, 1, 1, 1, 54, 1,
1, 1, 51, 51, 51, 51, 51, 51, 1, 1, 52, 52, 52, 52, 52, 52,
51, 51, 51, 51, 1, 1, 1, 1, 52, 52, 52, 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,
@ -273,26 +276,26 @@ static const char _deserialize_json_indicies[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 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, 55,
1, 55, 1, 55, 55, 55, 55, 55, 1, 56, 1, 56, 56, 56, 56, 56,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 56, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 56, 1, 56, 56, 1, 1, 1, 1, 57, 1, 57, 57,
56, 56, 56, 1, 1, 1, 1, 1, 57, 57, 57, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 56, 1, 1, 1, 1, 1, 1, 1, 57, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 57, 1, 1, 58, 59, 59, 1, 1, 58, 1, 1, 59, 60, 60,
59, 59, 59, 59, 59, 59, 59, 1, 60, 60, 60, 60, 60, 60, 60, 1,
60, 61, 61, 61, 61, 61, 61, 61, 61, 62, 62, 62, 62, 62, 62, 62,
61, 61, 1, 62, 62, 62, 62, 62, 62, 62, 1, 63, 63, 63, 63, 63,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 62, 1, 1, 1, 1, 1, 1, 1, 63, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 63, 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, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@ -302,14 +305,14 @@ static const char _deserialize_json_indicies[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 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, 65,
1, 62, 62, 62, 62, 62, 1, 1, 1, 63, 63, 63, 63, 63, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
62, 1, 1, 1, 1, 1, 1, 1, 63, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 63, 1, 1, 1, 1, 1, 1, 1, 64, 1, 1, 1,
61, 61, 61, 61, 61, 61, 61, 61, 62, 62, 62, 62, 62, 62, 62, 62,
61, 61, 1, 1, 1, 1, 1, 1, 62, 62, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@ -317,32 +320,25 @@ static const char _deserialize_json_indicies[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 64, 1, 65, 1, 1, 1, 1, 1, 65, 1, 66,
1, 65, 65, 65, 65, 65, 1, 1, 1, 67, 1, 67, 67, 67, 67, 67,
1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 1, 1, 67, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 66, 1, 66, 66, 66, 66, 1, 1, 1, 1, 68, 1, 68, 68,
66, 1, 1, 1, 1, 1, 1, 1, 68, 68, 68, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 66, 1, 67, 1, 1, 1, 1, 1, 1, 1, 68, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 68, 69, 69, 69, 69, 1, 1, 1, 1, 1, 69, 70, 70,
69, 69, 69, 69, 69, 1, 71, 70, 70, 70, 70, 70, 70, 70, 70, 1,
70, 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, 71, 71, 1, 1, 1,
70, 70, 70, 70, 70, 70, 70, 70,
70, 70, 70, 70, 70, 70, 70, 70,
70, 70, 70, 70, 70, 70, 70, 70,
70, 70, 70, 70, 70, 70, 70, 70,
70, 70, 70, 70, 70, 70, 70, 70,
70, 70, 70, 70, 70, 70, 70, 70,
72, 70, 73, 73, 73, 73, 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, 71,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 73, 1, 1, 1, 1, 1, 1, 1, 1, 1, 72, 1, 1, 1, 1,
1, 1, 1, 1, 1, 74, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@ -352,36 +348,48 @@ static const char _deserialize_json_indicies[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 75, 1, 1, 1, 1, 1, 73, 1, 71, 71,
70, 1, 1, 1, 1, 1, 1, 1, 71, 71, 71, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 71, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 72, 1, 1, 1, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 70, 1, 76, 76, 76, 76,
76, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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,
1, 1, 73, 1, 75, 1, 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, 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, 76,
1, 76, 76, 76, 76, 76, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
76, 1, 77, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
78, 79, 79, 79, 79, 79, 79, 79,
79, 79, 1, 81, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 82, 80, 83,
83, 83, 83, 83, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
78, 1, 76, 76, 76, 76, 76, 1, 1, 1, 1, 1, 1, 1, 83, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 84, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 76, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 77, 1, 1,
1, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@ -389,49 +397,86 @@ static const char _deserialize_json_indicies[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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,
80, 1, 80, 80, 80, 80, 80, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 85, 1, 80, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 80, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 81, 1, 81, 81, 81,
81, 81, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 81, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 82, 83, 83, 83,
83, 83, 83, 83, 83, 83, 1, 76,
76, 76, 76, 76, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 76, 1, 1, 1, 1, 1, 1, 1, 1, 80,
1, 86, 86, 86, 86, 86, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 77, 1, 1, 1, 84, 84,
84, 84, 84, 84, 84, 84, 84, 84,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 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, 85, 85, 85,
85, 85, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 85, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
86, 1, 1, 1, 1, 1, 1, 1, 86, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 87, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 87, 1, 0, 0, 0, 0, 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, 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, 88, 1, 86,
86, 86, 86, 86, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 86, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 87, 1, 1, 1, 89, 89,
89, 89, 89, 89, 89, 89, 89, 89,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 88, 1, 90, 1, 90,
90, 90, 90, 90, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 90, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
91, 1, 91, 91, 91, 91, 91, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 91, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 92, 93, 93, 93, 93, 93, 93,
93, 93, 93, 1, 86, 86, 86, 86,
86, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 86, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 87,
1, 1, 1, 94, 94, 94, 94, 94,
94, 94, 94, 94, 94, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
88, 1, 95, 95, 95, 95, 95, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 95, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 96, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 97, 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,
@ -442,46 +487,50 @@ static const char _deserialize_json_indicies[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 1, 1,
0 1, 1, 2, 1, 1, 0
}; };
static const char _deserialize_json_trans_targs[] = { static const char _deserialize_json_trans_targs[] = {
1, 0, 2, 2, 3, 4, 18, 24, 1, 0, 2, 2, 3, 4, 18, 24,
37, 45, 5, 12, 6, 7, 8, 9, 37, 43, 51, 5, 12, 6, 7, 8,
11, 9, 11, 10, 2, 49, 10, 49, 9, 11, 9, 11, 10, 2, 55, 10,
13, 14, 15, 16, 17, 16, 17, 10, 55, 13, 14, 15, 16, 17, 16, 17,
2, 49, 19, 20, 21, 22, 23, 10, 10, 2, 55, 19, 20, 21, 22, 23,
2, 49, 23, 25, 31, 26, 27, 28, 10, 2, 55, 23, 25, 31, 26, 27,
29, 30, 29, 30, 10, 2, 49, 32, 28, 29, 30, 29, 30, 10, 2, 55,
33, 34, 35, 36, 35, 36, 10, 2, 32, 33, 34, 35, 36, 35, 36, 10,
49, 38, 39, 40, 43, 44, 40, 41, 2, 55, 38, 39, 40, 41, 42, 10,
42, 10, 2, 49, 10, 2, 49, 44, 2, 55, 42, 44, 45, 46, 49, 50,
46, 47, 43, 48, 48, 49, 50, 51 46, 47, 48, 10, 2, 55, 10, 2,
55, 50, 52, 53, 49, 54, 54, 55,
56, 57
}; };
static const char _deserialize_json_trans_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, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2,
2, 0, 0, 3, 3, 4, 0, 5, 2, 2, 0, 0, 3, 3, 4, 0,
0, 0, 2, 2, 2, 0, 0, 6, 5, 0, 0, 2, 2, 2, 0, 0,
6, 7, 0, 0, 0, 2, 2, 8, 6, 6, 7, 0, 0, 0, 2, 2,
8, 9, 0, 0, 0, 0, 0, 2, 8, 8, 9, 0, 0, 0, 0, 0,
2, 2, 0, 0, 10, 10, 11, 0, 2, 2, 2, 0, 0, 10, 10, 11,
0, 2, 2, 2, 0, 0, 12, 12, 0, 0, 2, 2, 2, 0, 0, 12,
13, 0, 0, 2, 14, 14, 0, 15, 12, 13, 0, 0, 0, 2, 2, 14,
0, 16, 16, 17, 18, 18, 19, 15, 14, 15, 0, 0, 0, 2, 16, 16,
0, 0, 20, 20, 21, 0, 0, 0 0, 17, 0, 18, 18, 19, 20, 20,
21, 17, 0, 0, 22, 22, 23, 0,
0, 0
}; };
static const int deserialize_json_start = 1; static const int deserialize_json_start = 1;
static const int deserialize_json_first_final = 49; static const int deserialize_json_first_final = 55;
static const int deserialize_json_error = 0; static const int deserialize_json_error = 0;
static const int deserialize_json_en_main = 1; static const int deserialize_json_en_main = 1;
#line 108 "hb-buffer-deserialize-json.rl" #line 111 "hb-buffer-deserialize-json.rl"
static hb_bool_t static hb_bool_t
@ -508,12 +557,12 @@ _hb_buffer_deserialize_json (hb_buffer_t *buffer,
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 505 "hb-buffer-deserialize-json.hh" #line 554 "hb-buffer-deserialize-json.hh"
{ {
cs = deserialize_json_start; cs = deserialize_json_start;
} }
#line 508 "hb-buffer-deserialize-json.hh" #line 557 "hb-buffer-deserialize-json.hh"
{ {
int _slen; int _slen;
int _trans; int _trans;
@ -561,15 +610,15 @@ _resume:
tok = p; tok = p;
} }
break; break;
case 15: case 17:
#line 55 "hb-buffer-deserialize-json.rl" #line 55 "hb-buffer-deserialize-json.rl"
{ if (unlikely (!buffer->ensure_glyphs ())) return false; } { if (unlikely (!buffer->ensure_glyphs ())) return false; }
break; break;
case 21: case 23:
#line 56 "hb-buffer-deserialize-json.rl" #line 56 "hb-buffer-deserialize-json.rl"
{ if (unlikely (!buffer->ensure_unicode ())) return false; } { if (unlikely (!buffer->ensure_unicode ())) return false; }
break; break;
case 16: case 18:
#line 58 "hb-buffer-deserialize-json.rl" #line 58 "hb-buffer-deserialize-json.rl"
{ {
/* TODO Unescape \" and \\ if found. */ /* TODO Unescape \" and \\ if found. */
@ -579,7 +628,7 @@ _resume:
return false; return false;
} }
break; break;
case 18: case 20:
#line 66 "hb-buffer-deserialize-json.rl" #line 66 "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;
@ -604,6 +653,10 @@ _resume:
{ if (!parse_int (tok, p, &pos.y_advance)) return false; } { if (!parse_int (tok, p, &pos.y_advance)) return false; }
break; break;
case 14: case 14:
#line 72 "hb-buffer-deserialize-json.rl"
{ if (!parse_uint (tok, p, &info.mask )) return false; }
break;
case 16:
#line 51 "hb-buffer-deserialize-json.rl" #line 51 "hb-buffer-deserialize-json.rl"
{ {
tok = p; tok = p;
@ -611,7 +664,7 @@ _resume:
#line 55 "hb-buffer-deserialize-json.rl" #line 55 "hb-buffer-deserialize-json.rl"
{ if (unlikely (!buffer->ensure_glyphs ())) return false; } { if (unlikely (!buffer->ensure_glyphs ())) return false; }
break; break;
case 20: case 22:
#line 51 "hb-buffer-deserialize-json.rl" #line 51 "hb-buffer-deserialize-json.rl"
{ {
tok = p; tok = p;
@ -619,7 +672,7 @@ _resume:
#line 56 "hb-buffer-deserialize-json.rl" #line 56 "hb-buffer-deserialize-json.rl"
{ if (unlikely (!buffer->ensure_unicode ())) return false; } { if (unlikely (!buffer->ensure_unicode ())) return false; }
break; break;
case 17: case 19:
#line 58 "hb-buffer-deserialize-json.rl" #line 58 "hb-buffer-deserialize-json.rl"
{ {
/* TODO Unescape \" and \\ if found. */ /* TODO Unescape \" and \\ if found. */
@ -637,7 +690,7 @@ _resume:
*end_ptr = p; *end_ptr = p;
} }
break; break;
case 19: case 21:
#line 66 "hb-buffer-deserialize-json.rl" #line 66 "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"
@ -709,7 +762,19 @@ _resume:
*end_ptr = p; *end_ptr = p;
} }
break; break;
#line 673 "hb-buffer-deserialize-json.hh" case 15:
#line 72 "hb-buffer-deserialize-json.rl"
{ if (!parse_uint (tok, p, &info.mask )) return false; }
#line 43 "hb-buffer-deserialize-json.rl"
{
buffer->add_info (info);
if (unlikely (!buffer->successful))
return false;
buffer->pos[buffer->len - 1] = pos;
*end_ptr = p;
}
break;
#line 735 "hb-buffer-deserialize-json.hh"
} }
_again: _again:
@ -721,7 +786,7 @@ _again:
_out: {} _out: {}
} }
#line 136 "hb-buffer-deserialize-json.rl" #line 139 "hb-buffer-deserialize-json.rl"
*end_ptr = p; *end_ptr = p;

View File

@ -63,12 +63,13 @@ action parse_glyph_name {
return false; return false;
} }
action parse_codepoint { if (!parse_uint (tok, p, &info.codepoint)) return false; } action parse_codepoint { if (!parse_uint (tok, p, &info.codepoint)) return false; }
action parse_cluster { if (!parse_uint (tok, p, &info.cluster )) return false; } action parse_cluster { if (!parse_uint (tok, p, &info.cluster )) return false; }
action parse_x_offset { if (!parse_int (tok, p, &pos.x_offset )) return false; } action parse_x_offset { if (!parse_int (tok, p, &pos.x_offset )) return false; }
action parse_y_offset { if (!parse_int (tok, p, &pos.y_offset )) return false; } action parse_y_offset { if (!parse_int (tok, p, &pos.y_offset )) return false; }
action parse_x_advance { if (!parse_int (tok, p, &pos.x_advance)) return false; } action parse_x_advance { if (!parse_int (tok, p, &pos.x_advance)) return false; }
action parse_y_advance { if (!parse_int (tok, p, &pos.y_advance)) return false; } action parse_y_advance { if (!parse_int (tok, p, &pos.y_advance)) return false; }
action parse_glyph_flags{ if (!parse_uint (tok, p, &info.mask )) return false; }
unum = '0' | [1-9] digit*; unum = '0' | [1-9] digit*;
num = '-'? unum; num = '-'? unum;
@ -82,13 +83,14 @@ glyph_name = '"' ([^\\"] | '\\' [\\"])* '"';
parse_glyph_name = (glyph_name >tok %parse_glyph_name); parse_glyph_name = (glyph_name >tok %parse_glyph_name);
parse_codepoint = (codepoint >tok %parse_codepoint); parse_codepoint = (codepoint >tok %parse_codepoint);
glyph = "\"g\"" colon (parse_glyph_name | parse_codepoint); glyph = "\"g\"" colon (parse_glyph_name | parse_codepoint);
unicode = "\"u\"" colon parse_codepoint; unicode = "\"u\"" colon parse_codepoint;
cluster = "\"cl\"" colon (unum >tok %parse_cluster); cluster = "\"cl\"" colon (unum >tok %parse_cluster);
xoffset = "\"dx\"" colon (num >tok %parse_x_offset); xoffset = "\"dx\"" colon (num >tok %parse_x_offset);
yoffset = "\"dy\"" colon (num >tok %parse_y_offset); yoffset = "\"dy\"" colon (num >tok %parse_y_offset);
xadvance= "\"ax\"" colon (num >tok %parse_x_advance); xadvance= "\"ax\"" colon (num >tok %parse_x_advance);
yadvance= "\"ay\"" colon (num >tok %parse_y_advance); yadvance= "\"ay\"" colon (num >tok %parse_y_advance);
glyphflags="\"fl\"" colon (unum >tok %parse_glyph_flags);
element = glyph @ensure_glyphs element = glyph @ensure_glyphs
| unicode @ensure_unicode | unicode @ensure_unicode
@ -96,7 +98,8 @@ element = glyph @ensure_glyphs
| xoffset | xoffset
| yoffset | yoffset
| xadvance | xadvance
| yadvance; | yadvance
| glyphflags;
item = item =
( '{' space* element (comma element)* space* '}') ( '{' space* element (comma element)* space* '}')
>clear_item >clear_item

View File

@ -35,26 +35,29 @@
#line 33 "hb-buffer-deserialize-text.hh" #line 33 "hb-buffer-deserialize-text.hh"
static const unsigned char _deserialize_text_trans_keys[] = { static const unsigned char _deserialize_text_trans_keys[] = {
0u, 0u, 9u, 91u, 85u, 85u, 43u, 43u, 48u, 102u, 9u, 85u, 48u, 57u, 45u, 57u, 0u, 0u, 9u, 91u, 85u, 85u, 43u, 43u, 48u, 102u, 9u, 85u, 48u, 57u, 45u, 57u,
48u, 57u, 48u, 57u, 45u, 57u, 48u, 57u, 44u, 44u, 45u, 57u, 48u, 57u, 44u, 57u, 48u, 57u, 48u, 57u, 48u, 57u, 45u, 57u, 48u, 57u, 44u, 44u, 45u, 57u, 48u, 57u,
43u, 124u, 45u, 57u, 48u, 57u, 9u, 124u, 9u, 124u, 0u, 0u, 9u, 85u, 9u, 124u, 44u, 57u, 43u, 124u, 45u, 57u, 48u, 57u, 9u, 124u, 9u, 124u, 0u, 0u, 9u, 85u,
9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u,
9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 0 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u,
9u, 124u, 9u, 124u, 9u, 124u, 0
}; };
static const char _deserialize_text_key_spans[] = { static const char _deserialize_text_key_spans[] = {
0, 83, 1, 1, 55, 77, 10, 13, 0, 83, 1, 1, 55, 77, 10, 13,
10, 10, 13, 10, 1, 13, 10, 14, 10, 10, 10, 13, 10, 1, 13, 10,
82, 13, 10, 116, 116, 0, 77, 116, 14, 82, 13, 10, 116, 116, 0, 77,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116
}; };
static const short _deserialize_text_index_offsets[] = { static const short _deserialize_text_index_offsets[] = {
0, 0, 84, 86, 88, 144, 222, 233, 0, 0, 84, 86, 88, 144, 222, 233,
247, 258, 269, 283, 294, 296, 310, 321, 247, 258, 269, 280, 294, 305, 307, 321,
336, 419, 433, 444, 561, 678, 679, 757, 332, 347, 430, 444, 455, 572, 689, 690,
874, 991, 1108, 1225, 1342, 1459, 1576, 1693, 768, 885, 1002, 1119, 1236, 1353, 1470, 1587,
1810, 1927, 2044, 2161, 2278 1704, 1821, 1938, 2055, 2172, 2289, 2406, 2523,
2640, 2757, 2874
}; };
static const char _deserialize_text_indicies[] = { static const char _deserialize_text_indicies[] = {
@ -91,144 +94,76 @@ static const char _deserialize_text_indicies[] = {
12, 12, 12, 12, 12, 12, 12, 1, 12, 12, 12, 12, 12, 12, 12, 1,
13, 14, 14, 14, 14, 14, 14, 14, 13, 14, 14, 14, 14, 14, 14, 14,
14, 14, 1, 15, 16, 16, 16, 16, 14, 14, 1, 15, 16, 16, 16, 16,
16, 16, 16, 16, 16, 1, 17, 1, 16, 16, 16, 16, 16, 1, 17, 18,
1, 18, 19, 19, 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18, 18,
19, 19, 19, 1, 20, 21, 21, 21, 1, 19, 1, 1, 20, 21, 21, 21,
21, 21, 21, 21, 21, 21, 1, 22, 21, 21, 21, 21, 21, 21, 1, 22,
1, 23, 1, 1, 24, 25, 25, 25, 23, 23, 23, 23, 23, 23, 23, 23,
25, 25, 25, 25, 25, 25, 1, 26, 23, 1, 24, 1, 25, 1, 1, 26,
27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
27, 1, 22, 1, 1, 1, 21, 21, 27, 1, 28, 29, 29, 29, 29, 29,
21, 21, 21, 21, 21, 21, 21, 21, 29, 29, 29, 29, 1, 24, 1, 1,
1, 28, 28, 1, 1, 1, 1, 1, 1, 23, 23, 23, 23, 23, 23, 23,
23, 23, 23, 1, 30, 30, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 28, 1, 1, 28, 1, 1, 1, 1, 1, 1, 1, 30, 1,
1, 30, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 30, 30, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 28, 28, 1, 1, 1, 1, 1, 1, 1, 1, 1, 30, 1, 31,
1, 1, 32, 33, 33, 33, 33, 33,
33, 33, 33, 33, 1, 34, 35, 35,
35, 35, 35, 35, 35, 35, 35, 1,
36, 36, 36, 36, 36, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 36,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 37,
37, 37, 37, 37, 37, 37, 37, 37,
37, 1, 1, 1, 38, 39, 1, 1,
37, 37, 37, 37, 37, 37, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 28, 1, 29, 1, 1, 30, 37, 37, 37, 37, 37, 37, 1, 1,
31, 31, 31, 31, 31, 31, 31, 31,
31, 1, 32, 33, 33, 33, 33, 33,
33, 33, 33, 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, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 1, 1,
1, 36, 37, 1, 1, 35, 35, 35,
35, 35, 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, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 35, 35, 35, 1, 1, 1, 40, 1, 41, 41, 41,
35, 35, 35, 1, 1, 1, 1, 1, 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, 41, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
38, 1, 39, 39, 39, 39, 39, 1,
1, 1, 1, 1, 1, 1, 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, 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, 1, 1,
1, 1, 1, 1, 1, 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, 1,
7, 7, 7, 7, 7, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 7,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 4, 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, 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, 1, 1, 1, 1, 1, 1,
1, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 42, 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, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 43, 1, 1, 7, 7, 7, 7, 7,
47, 47, 47, 47, 47, 46, 46, 46,
46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 46, 46, 46, 46, 47,
46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 48, 1, 46, 46, 46, 46,
46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 46, 49, 46, 46, 50,
46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 51, 52, 46, 46, 46,
46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 53, 46, 54, 54, 54,
54, 54, 28, 28, 28, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28,
28, 28, 28, 28, 54, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 55,
1, 28, 28, 28, 28, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28,
28, 56, 28, 28, 57, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28,
58, 59, 28, 28, 28, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28,
60, 28, 61, 61, 61, 61, 61, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 7, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 1, 4,
1, 44, 44, 44, 44, 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, 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, 1, 1, 1, 64, 1, 65,
65, 65, 65, 65, 1, 1, 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, 1, 1, 1, 1, 1, 1, 45, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@ -236,172 +171,322 @@ static const char _deserialize_text_indicies[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 46, 1, 44, 44,
44, 44, 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, 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, 1, 1, 1, 1, 1, 1, 47, 47, 47,
1, 1, 66, 1, 67, 67, 67, 67, 47, 47, 47, 47, 47, 47, 47, 1,
67, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 45, 1, 1, 1, 1,
46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 67, 46, 46, 46, 46,
46, 46, 46, 46, 46, 46, 48, 1,
46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 46, 46, 46, 46, 46,
49, 46, 46, 50, 46, 46, 46, 46,
46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 46, 46, 46, 46, 51,
52, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 46, 46, 46, 46, 53,
46, 68, 68, 68, 68, 68, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
68, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 69, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
70, 1, 1, 1, 1, 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, 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,
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, 1, 1, 1, 1, 1, 1, 1,
1, 1, 74, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 46, 1, 49, 49, 49, 49, 49,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 49, 48, 48, 50, 48, 48,
48, 48, 48, 48, 48, 51, 1, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 52,
48, 48, 53, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 54, 55,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 56, 48,
57, 57, 57, 57, 57, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 57,
30, 30, 58, 30, 30, 30, 30, 30,
30, 30, 59, 1, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 60, 30, 30, 61,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 62, 63, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 64, 30, 57, 57, 57,
57, 57, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 57, 30, 30, 58,
30, 30, 30, 30, 30, 30, 30, 59,
1, 30, 30, 30, 65, 66, 66, 66,
66, 66, 66, 66, 66, 66, 30, 30,
30, 60, 30, 30, 61, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
62, 63, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
64, 30, 67, 67, 67, 67, 67, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 67, 1, 1, 68, 1, 1, 1,
1, 1, 1, 1, 1, 69, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 75, 1, 72, 72, 72, 72, 72,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
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, 70, 1,
1, 1, 1, 1, 1, 73, 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, 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, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 75, 1,
68, 68, 68, 68, 68, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 68,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 69, 1, 1, 1, 1, 76,
76, 76, 76, 76, 76, 76, 76, 76,
76, 1, 1, 1, 1, 1, 1, 70,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 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, 71, 1, 77, 77, 77, 1, 1, 73, 1, 74, 74, 74, 74,
77, 77, 1, 1, 1, 1, 1, 1, 74, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 74, 48, 48, 50, 48,
48, 48, 48, 48, 48, 48, 51, 1,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
52, 48, 48, 53, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 54,
55, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 56,
48, 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,
75, 1, 1, 76, 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,
78, 1, 1, 1, 1, 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, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 79, 1, 80, 80,
80, 80, 80, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 80, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 81, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 82, 1, 80, 80, 80, 80, 80,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 80, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 83, 83, 83, 83, 83, 83,
83, 83, 83, 83, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 81,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 82, 1,
84, 84, 84, 84, 84, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 84,
1, 1, 85, 1, 1, 1, 1, 1,
1, 1, 86, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 87, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 88, 1, 84, 84, 84,
84, 84, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 84, 1, 1, 85,
1, 1, 1, 1, 1, 1, 1, 86,
1, 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, 87, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
88, 1, 75, 75, 75, 75, 75, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 75, 1, 1, 76, 1, 1, 1,
1, 1, 1, 1, 77, 1, 1, 1, 1, 1, 1, 1, 77, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 89, 89, 89, 89, 89, 89, 89,
1, 1, 1, 1, 1, 1, 1, 1, 89, 89, 89, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 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, 1, 1, 1, 1, 1, 1, 78, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 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,
79, 1, 77, 77, 77, 77, 77, 1,
1, 1, 1, 1, 1, 1, 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, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 79, 1, 90,
90, 90, 90, 90, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 90, 1,
1, 91, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 79, 1, 61,
61, 61, 61, 61, 1, 1, 1, 1,
1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1,
1, 1, 62, 1, 1, 1, 14, 14, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 92, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 93, 1, 90, 90, 90, 90,
90, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 90, 1, 1, 91, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 35, 35, 35, 35, 35,
35, 35, 35, 35, 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, 1, 1, 1, 1, 1,
92, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 93,
1, 67, 67, 67, 67, 67, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
67, 1, 1, 68, 1, 1, 1, 1,
1, 1, 1, 1, 69, 1, 1, 1,
14, 14, 14, 14, 14, 14, 14, 14, 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, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 70, 1, 1,
1, 1, 1, 63, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 64, 1, 0 1, 1, 1, 1, 71, 1, 94, 94,
94, 94, 94, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 94, 30, 30,
58, 30, 30, 30, 30, 30, 30, 30,
59, 1, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 60, 30, 30, 61, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 62, 95, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 96, 30, 94, 94, 94, 94, 94,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 94, 30, 30, 58, 30, 30,
30, 30, 30, 30, 30, 59, 1, 30,
30, 30, 97, 97, 97, 97, 97, 97,
97, 97, 97, 97, 30, 30, 30, 60,
30, 30, 61, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 62, 95,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 96, 30,
0
}; };
static const char _deserialize_text_trans_targs[] = { static const char _deserialize_text_trans_targs[] = {
1, 0, 2, 25, 3, 4, 19, 5, 1, 0, 2, 26, 3, 4, 20, 5,
23, 24, 8, 27, 36, 27, 36, 30, 24, 25, 8, 29, 40, 29, 40, 32,
33, 11, 12, 15, 12, 15, 13, 14, 37, 33, 34, 12, 13, 16, 13, 16,
31, 32, 31, 32, 26, 18, 34, 35, 14, 15, 35, 36, 35, 36, 27, 19,
34, 35, 20, 19, 6, 21, 22, 20, 38, 39, 38, 39, 21, 20, 6, 22,
21, 22, 20, 21, 22, 24, 26, 26, 23, 21, 22, 23, 21, 22, 23, 25,
7, 9, 10, 16, 21, 29, 26, 7, 27, 27, 28, 7, 9, 11, 17, 22,
9, 10, 16, 21, 29, 28, 17, 21, 31, 27, 28, 7, 9, 11, 17, 22,
29, 28, 29, 29, 28, 7, 10, 29, 31, 41, 42, 30, 10, 18, 22, 31,
28, 7, 21, 29, 33, 28, 21, 29 30, 31, 31, 30, 10, 7, 11, 31,
30, 22, 31, 34, 30, 10, 7, 22,
31, 37, 30, 10, 22, 31, 27, 22,
31, 42
}; };
static const char _deserialize_text_trans_actions[] = { static const char _deserialize_text_trans_actions[] = {
0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 1, 0, 2, 0,
2, 2, 3, 4, 4, 5, 5, 4, 2, 2, 3, 4, 4, 5, 5, 4,
4, 3, 3, 3, 0, 0, 6, 3, 4, 4, 4, 3, 3, 3, 0, 0,
4, 4, 5, 5, 5, 3, 4, 4, 6, 3, 4, 4, 5, 5, 5, 3,
5, 5, 7, 8, 9, 7, 7, 0, 4, 4, 5, 5, 7, 8, 9, 7,
0, 0, 10, 10, 10, 8, 12, 13, 7, 0, 0, 0, 10, 10, 10, 8,
14, 14, 14, 15, 11, 11, 17, 18, 12, 13, 14, 15, 15, 15, 16, 11,
18, 18, 0, 16, 16, 19, 20, 19, 11, 18, 19, 20, 20, 20, 0, 17,
19, 0, 0, 13, 10, 21, 21, 10, 17, 4, 4, 21, 22, 22, 21, 21,
22, 23, 22, 22, 5, 24, 24, 24 0, 0, 13, 10, 23, 23, 23, 10,
24, 24, 24, 5, 25, 26, 26, 25,
25, 5, 27, 28, 27, 27, 30, 29,
29, 5
}; };
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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 7, 0, 0, 0, 10, 0, 0, 0, 0, 7, 0, 0, 0,
10, 11, 16, 19, 0, 11, 10, 22, 10, 10, 11, 17, 17, 21, 0, 11,
22, 10, 24, 24, 19 10, 24, 24, 25, 25, 10, 27, 27,
21, 29, 29
}; };
static const int deserialize_text_start = 1; static const int deserialize_text_start = 1;
static const int deserialize_text_first_final = 19; static const int deserialize_text_first_final = 20;
static const int deserialize_text_error = 0; static const int deserialize_text_error = 0;
static const int deserialize_text_en_main = 1; static const int deserialize_text_en_main = 1;
#line 114 "hb-buffer-deserialize-text.rl" #line 117 "hb-buffer-deserialize-text.rl"
static hb_bool_t static hb_bool_t
@ -424,12 +509,12 @@ _hb_buffer_deserialize_text (hb_buffer_t *buffer,
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 421 "hb-buffer-deserialize-text.hh" #line 506 "hb-buffer-deserialize-text.hh"
{ {
cs = deserialize_text_start; cs = deserialize_text_start;
} }
#line 424 "hb-buffer-deserialize-text.hh" #line 509 "hb-buffer-deserialize-text.hh"
{ {
int _slen; int _slen;
int _trans; int _trans;
@ -475,7 +560,7 @@ _resume:
#line 56 "hb-buffer-deserialize-text.rl" #line 56 "hb-buffer-deserialize-text.rl"
{ if (unlikely (!buffer->ensure_unicode ())) return false; } { if (unlikely (!buffer->ensure_unicode ())) return false; }
break; break;
case 18: case 20:
#line 58 "hb-buffer-deserialize-text.rl" #line 58 "hb-buffer-deserialize-text.rl"
{ {
/* TODO Unescape delimiters. */ /* TODO Unescape delimiters. */
@ -489,7 +574,7 @@ _resume:
#line 66 "hb-buffer-deserialize-text.rl" #line 66 "hb-buffer-deserialize-text.rl"
{if (!parse_hex (tok, p, &info.codepoint )) return false; } {if (!parse_hex (tok, p, &info.codepoint )) return false; }
break; break;
case 21: case 23:
#line 68 "hb-buffer-deserialize-text.rl" #line 68 "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;
@ -497,15 +582,19 @@ _resume:
#line 69 "hb-buffer-deserialize-text.rl" #line 69 "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 23: case 26:
#line 70 "hb-buffer-deserialize-text.rl" #line 70 "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 20: case 22:
#line 71 "hb-buffer-deserialize-text.rl" #line 71 "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 15: case 28:
#line 72 "hb-buffer-deserialize-text.rl"
{ if (!parse_int (tok, p, &pos.y_advance)) return false; }
break;
case 16:
#line 38 "hb-buffer-deserialize-text.rl" #line 38 "hb-buffer-deserialize-text.rl"
{ {
memset (&info, 0, sizeof (info)); memset (&info, 0, sizeof (info));
@ -532,7 +621,7 @@ _resume:
#line 56 "hb-buffer-deserialize-text.rl" #line 56 "hb-buffer-deserialize-text.rl"
{ if (unlikely (!buffer->ensure_unicode ())) return false; } { if (unlikely (!buffer->ensure_unicode ())) return false; }
break; break;
case 16: case 17:
#line 58 "hb-buffer-deserialize-text.rl" #line 58 "hb-buffer-deserialize-text.rl"
{ {
/* TODO Unescape delimiters. */ /* TODO Unescape delimiters. */
@ -549,6 +638,18 @@ _resume:
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
} }
break;
case 19:
#line 58 "hb-buffer-deserialize-text.rl"
{
/* TODO Unescape delimiters. */
if (!hb_font_glyph_from_string (font,
tok, p - tok,
&info.codepoint))
return false;
}
#line 55 "hb-buffer-deserialize-text.rl"
{ if (unlikely (!buffer->ensure_glyphs ())) return false; }
break; break;
case 7: case 7:
#line 66 "hb-buffer-deserialize-text.rl" #line 66 "hb-buffer-deserialize-text.rl"
@ -574,7 +675,7 @@ _resume:
*end_ptr = p; *end_ptr = p;
} }
break; break;
case 22: case 25:
#line 70 "hb-buffer-deserialize-text.rl" #line 70 "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"
@ -586,7 +687,7 @@ _resume:
*end_ptr = p; *end_ptr = p;
} }
break; break;
case 19: case 21:
#line 71 "hb-buffer-deserialize-text.rl" #line 71 "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"
@ -598,7 +699,7 @@ _resume:
*end_ptr = p; *end_ptr = p;
} }
break; break;
case 24: case 27:
#line 72 "hb-buffer-deserialize-text.rl" #line 72 "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"
@ -608,6 +709,18 @@ _resume:
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
}
break;
case 24:
#line 73 "hb-buffer-deserialize-text.rl"
{ if (!parse_uint (tok, p, &info.mask )) return false; }
#line 43 "hb-buffer-deserialize-text.rl"
{
buffer->add_info (info);
if (unlikely (!buffer->successful))
return false;
buffer->pos[buffer->len - 1] = pos;
*end_ptr = p;
} }
break; break;
case 12: case 12:
@ -623,7 +736,7 @@ _resume:
#line 55 "hb-buffer-deserialize-text.rl" #line 55 "hb-buffer-deserialize-text.rl"
{ if (unlikely (!buffer->ensure_glyphs ())) return false; } { if (unlikely (!buffer->ensure_glyphs ())) return false; }
break; break;
case 14: case 15:
#line 38 "hb-buffer-deserialize-text.rl" #line 38 "hb-buffer-deserialize-text.rl"
{ {
memset (&info, 0, sizeof (info)); memset (&info, 0, sizeof (info));
@ -642,7 +755,7 @@ _resume:
return false; return false;
} }
break; break;
case 17: case 18:
#line 58 "hb-buffer-deserialize-text.rl" #line 58 "hb-buffer-deserialize-text.rl"
{ {
/* TODO Unescape delimiters. */ /* TODO Unescape delimiters. */
@ -660,6 +773,26 @@ _resume:
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
}
break;
case 29:
#line 58 "hb-buffer-deserialize-text.rl"
{
/* TODO Unescape delimiters. */
if (!hb_font_glyph_from_string (font,
tok, p - tok,
&info.codepoint))
return false;
}
#line 73 "hb-buffer-deserialize-text.rl"
{ if (!parse_uint (tok, p, &info.mask )) return false; }
#line 43 "hb-buffer-deserialize-text.rl"
{
buffer->add_info (info);
if (unlikely (!buffer->successful))
return false;
buffer->pos[buffer->len - 1] = pos;
*end_ptr = p;
} }
break; break;
case 11: case 11:
@ -680,6 +813,49 @@ _resume:
&info.codepoint)) &info.codepoint))
return false; return false;
} }
#line 43 "hb-buffer-deserialize-text.rl"
{
buffer->add_info (info);
if (unlikely (!buffer->successful))
return false;
buffer->pos[buffer->len - 1] = pos;
*end_ptr = p;
}
break;
case 14:
#line 38 "hb-buffer-deserialize-text.rl"
{
memset (&info, 0, sizeof (info));
memset (&pos , 0, sizeof (pos ));
}
#line 51 "hb-buffer-deserialize-text.rl"
{
tok = p;
}
#line 58 "hb-buffer-deserialize-text.rl"
{
/* TODO Unescape delimiters. */
if (!hb_font_glyph_from_string (font,
tok, p - tok,
&info.codepoint))
return false;
}
#line 55 "hb-buffer-deserialize-text.rl"
{ if (unlikely (!buffer->ensure_glyphs ())) return false; }
break;
case 30:
#line 58 "hb-buffer-deserialize-text.rl"
{
/* TODO Unescape delimiters. */
if (!hb_font_glyph_from_string (font,
tok, p - tok,
&info.codepoint))
return false;
}
#line 73 "hb-buffer-deserialize-text.rl"
{ if (!parse_uint (tok, p, &info.mask )) return false; }
#line 55 "hb-buffer-deserialize-text.rl"
{ if (unlikely (!buffer->ensure_glyphs ())) return false; }
#line 43 "hb-buffer-deserialize-text.rl" #line 43 "hb-buffer-deserialize-text.rl"
{ {
buffer->add_info (info); buffer->add_info (info);
@ -718,7 +894,7 @@ _resume:
*end_ptr = p; *end_ptr = p;
} }
break; break;
#line 666 "hb-buffer-deserialize-text.hh" #line 826 "hb-buffer-deserialize-text.hh"
} }
_again: _again:
@ -730,7 +906,7 @@ _again:
if ( p == eof ) if ( p == eof )
{ {
switch ( _deserialize_text_eof_actions[cs] ) { switch ( _deserialize_text_eof_actions[cs] ) {
case 16: case 17:
#line 58 "hb-buffer-deserialize-text.rl" #line 58 "hb-buffer-deserialize-text.rl"
{ {
/* TODO Unescape delimiters. */ /* TODO Unescape delimiters. */
@ -772,7 +948,7 @@ _again:
*end_ptr = p; *end_ptr = p;
} }
break; break;
case 22: case 25:
#line 70 "hb-buffer-deserialize-text.rl" #line 70 "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"
@ -784,7 +960,7 @@ _again:
*end_ptr = p; *end_ptr = p;
} }
break; break;
case 19: case 21:
#line 71 "hb-buffer-deserialize-text.rl" #line 71 "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"
@ -796,7 +972,7 @@ _again:
*end_ptr = p; *end_ptr = p;
} }
break; break;
case 24: case 27:
#line 72 "hb-buffer-deserialize-text.rl" #line 72 "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"
@ -806,6 +982,38 @@ _again:
return false; return false;
buffer->pos[buffer->len - 1] = pos; buffer->pos[buffer->len - 1] = pos;
*end_ptr = p; *end_ptr = p;
}
break;
case 24:
#line 73 "hb-buffer-deserialize-text.rl"
{ if (!parse_uint (tok, p, &info.mask )) return false; }
#line 43 "hb-buffer-deserialize-text.rl"
{
buffer->add_info (info);
if (unlikely (!buffer->successful))
return false;
buffer->pos[buffer->len - 1] = pos;
*end_ptr = p;
}
break;
case 29:
#line 58 "hb-buffer-deserialize-text.rl"
{
/* TODO Unescape delimiters. */
if (!hb_font_glyph_from_string (font,
tok, p - tok,
&info.codepoint))
return false;
}
#line 73 "hb-buffer-deserialize-text.rl"
{ if (!parse_uint (tok, p, &info.mask )) return false; }
#line 43 "hb-buffer-deserialize-text.rl"
{
buffer->add_info (info);
if (unlikely (!buffer->successful))
return false;
buffer->pos[buffer->len - 1] = pos;
*end_ptr = p;
} }
break; break;
case 11: case 11:
@ -835,14 +1043,14 @@ _again:
*end_ptr = p; *end_ptr = p;
} }
break; break;
#line 766 "hb-buffer-deserialize-text.hh" #line 953 "hb-buffer-deserialize-text.hh"
} }
} }
_out: {} _out: {}
} }
#line 138 "hb-buffer-deserialize-text.rl" #line 141 "hb-buffer-deserialize-text.rl"
*end_ptr = p; *end_ptr = p;

View File

@ -65,11 +65,12 @@ action parse_glyph {
action parse_hexdigits {if (!parse_hex (tok, p, &info.codepoint )) return false; } action parse_hexdigits {if (!parse_hex (tok, p, &info.codepoint )) return false; }
action parse_cluster { if (!parse_uint (tok, p, &info.cluster )) return false; } action parse_cluster { if (!parse_uint (tok, p, &info.cluster )) return false; }
action parse_x_offset { if (!parse_int (tok, p, &pos.x_offset )) return false; } action parse_x_offset { if (!parse_int (tok, p, &pos.x_offset )) return false; }
action parse_y_offset { if (!parse_int (tok, p, &pos.y_offset )) return false; } action parse_y_offset { if (!parse_int (tok, p, &pos.y_offset )) return false; }
action parse_x_advance { if (!parse_int (tok, p, &pos.x_advance)) return false; } action parse_x_advance { if (!parse_int (tok, p, &pos.x_advance)) return false; }
action parse_y_advance { if (!parse_int (tok, p, &pos.y_advance)) return false; } action parse_y_advance { if (!parse_int (tok, p, &pos.y_advance)) return false; }
action parse_glyph_flags{ if (!parse_uint (tok, p, &info.mask )) return false; }
unum = '0' | [1-9] digit*; unum = '0' | [1-9] digit*;
num = '-'? unum; num = '-'? unum;
@ -81,6 +82,7 @@ glyph = (glyph_id | glyph_name) >tok %parse_glyph;
cluster = '=' (unum >tok %parse_cluster); cluster = '=' (unum >tok %parse_cluster);
offsets = '@' (num >tok %parse_x_offset) ',' (num >tok %parse_y_offset ); offsets = '@' (num >tok %parse_x_offset) ',' (num >tok %parse_y_offset );
advances= '+' (num >tok %parse_x_advance) (',' (num >tok %parse_y_advance))?; advances= '+' (num >tok %parse_x_advance) (',' (num >tok %parse_y_advance))?;
glyphflags= '#' (unum >tok %parse_glyph_flags);
glyph_item = glyph_item =
( (
@ -88,6 +90,7 @@ glyph_item =
cluster? cluster?
offsets? offsets?
advances? advances?
glyphflags?
) )
>clear_item >clear_item
@ensure_glyphs @ensure_glyphs

View File

@ -31,7 +31,7 @@
#include "hb.hh" #include "hb.hh"
#line 35 "hb-number-parser.hh" #line 32 "hb-number-parser.hh"
static const unsigned char _double_parser_trans_keys[] = { static const unsigned char _double_parser_trans_keys[] = {
0u, 0u, 43u, 57u, 46u, 57u, 48u, 57u, 43u, 57u, 48u, 57u, 48u, 101u, 48u, 57u, 0u, 0u, 43u, 57u, 46u, 57u, 48u, 57u, 43u, 57u, 48u, 57u, 48u, 101u, 48u, 57u,
46u, 101u, 0 46u, 101u, 0
@ -135,12 +135,12 @@ strtod_rl (const char *p, const char **end_ptr /* IN/OUT */)
int cs; int cs;
#line 139 "hb-number-parser.hh" #line 132 "hb-number-parser.hh"
{ {
cs = double_parser_start; cs = double_parser_start;
} }
#line 144 "hb-number-parser.hh" #line 135 "hb-number-parser.hh"
{ {
int _slen; int _slen;
int _trans; int _trans;
@ -198,7 +198,7 @@ _resume:
exp_overflow = true; exp_overflow = true;
} }
break; break;
#line 202 "hb-number-parser.hh" #line 187 "hb-number-parser.hh"
} }
_again: _again:

View File

@ -53,7 +53,7 @@ enum indic_syllable_type_t {
}; };
#line 57 "hb-ot-shaper-indic-machine.hh" #line 54 "hb-ot-shaper-indic-machine.hh"
#define indic_syllable_machine_ex_A 9u #define indic_syllable_machine_ex_A 9u
#define indic_syllable_machine_ex_C 1u #define indic_syllable_machine_ex_C 1u
#define indic_syllable_machine_ex_CM 16u #define indic_syllable_machine_ex_CM 16u
@ -75,7 +75,7 @@ enum indic_syllable_type_t {
#define indic_syllable_machine_ex_ZWNJ 5u #define indic_syllable_machine_ex_ZWNJ 5u
#line 79 "hb-ot-shaper-indic-machine.hh" #line 74 "hb-ot-shaper-indic-machine.hh"
static const unsigned char _indic_syllable_machine_trans_keys[] = { static const unsigned char _indic_syllable_machine_trans_keys[] = {
8u, 8u, 4u, 8u, 5u, 7u, 5u, 8u, 4u, 8u, 4u, 12u, 4u, 8u, 8u, 8u, 8u, 8u, 4u, 8u, 5u, 7u, 5u, 8u, 4u, 8u, 4u, 12u, 4u, 8u, 8u, 8u,
5u, 7u, 5u, 8u, 4u, 8u, 4u, 12u, 4u, 12u, 4u, 12u, 8u, 8u, 5u, 7u, 5u, 7u, 5u, 8u, 4u, 8u, 4u, 12u, 4u, 12u, 4u, 12u, 8u, 8u, 5u, 7u,
@ -422,7 +422,7 @@ find_syllables_indic (hb_buffer_t *buffer)
int cs; int cs;
hb_glyph_info_t *info = buffer->info; hb_glyph_info_t *info = buffer->info;
#line 426 "hb-ot-shaper-indic-machine.hh" #line 415 "hb-ot-shaper-indic-machine.hh"
{ {
cs = indic_syllable_machine_start; cs = indic_syllable_machine_start;
ts = 0; ts = 0;
@ -438,7 +438,7 @@ find_syllables_indic (hb_buffer_t *buffer)
unsigned int syllable_serial = 1; unsigned int syllable_serial = 1;
#line 442 "hb-ot-shaper-indic-machine.hh" #line 427 "hb-ot-shaper-indic-machine.hh"
{ {
int _slen; int _slen;
int _trans; int _trans;
@ -452,7 +452,7 @@ _resume:
#line 1 "NONE" #line 1 "NONE"
{ts = p;} {ts = p;}
break; break;
#line 456 "hb-ot-shaper-indic-machine.hh" #line 439 "hb-ot-shaper-indic-machine.hh"
} }
_keys = _indic_syllable_machine_trans_keys + (cs<<1); _keys = _indic_syllable_machine_trans_keys + (cs<<1);
@ -555,7 +555,7 @@ _eof_trans:
#line 113 "hb-ot-shaper-indic-machine.rl" #line 113 "hb-ot-shaper-indic-machine.rl"
{act = 6;} {act = 6;}
break; break;
#line 559 "hb-ot-shaper-indic-machine.hh" #line 521 "hb-ot-shaper-indic-machine.hh"
} }
_again: _again:
@ -564,7 +564,7 @@ _again:
#line 1 "NONE" #line 1 "NONE"
{ts = 0;} {ts = 0;}
break; break;
#line 568 "hb-ot-shaper-indic-machine.hh" #line 528 "hb-ot-shaper-indic-machine.hh"
} }
if ( ++p != pe ) if ( ++p != pe )

View File

@ -48,7 +48,7 @@ enum khmer_syllable_type_t {
}; };
#line 52 "hb-ot-shaper-khmer-machine.hh" #line 49 "hb-ot-shaper-khmer-machine.hh"
#define khmer_syllable_machine_ex_C 1u #define khmer_syllable_machine_ex_C 1u
#define khmer_syllable_machine_ex_DOTTEDCIRCLE 11u #define khmer_syllable_machine_ex_DOTTEDCIRCLE 11u
#define khmer_syllable_machine_ex_H 4u #define khmer_syllable_machine_ex_H 4u
@ -66,7 +66,7 @@ enum khmer_syllable_type_t {
#define khmer_syllable_machine_ex_ZWNJ 5u #define khmer_syllable_machine_ex_ZWNJ 5u
#line 70 "hb-ot-shaper-khmer-machine.hh" #line 65 "hb-ot-shaper-khmer-machine.hh"
static const unsigned char _khmer_syllable_machine_trans_keys[] = { static const unsigned char _khmer_syllable_machine_trans_keys[] = {
5u, 26u, 5u, 26u, 1u, 15u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 1u, 15u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u,
5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 1u, 15u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 5u, 26u, 1u, 15u, 5u, 26u, 5u, 26u,
@ -294,7 +294,7 @@ find_syllables_khmer (hb_buffer_t *buffer)
int cs; int cs;
hb_glyph_info_t *info = buffer->info; hb_glyph_info_t *info = buffer->info;
#line 298 "hb-ot-shaper-khmer-machine.hh" #line 287 "hb-ot-shaper-khmer-machine.hh"
{ {
cs = khmer_syllable_machine_start; cs = khmer_syllable_machine_start;
ts = 0; ts = 0;
@ -310,7 +310,7 @@ find_syllables_khmer (hb_buffer_t *buffer)
unsigned int syllable_serial = 1; unsigned int syllable_serial = 1;
#line 314 "hb-ot-shaper-khmer-machine.hh" #line 299 "hb-ot-shaper-khmer-machine.hh"
{ {
int _slen; int _slen;
int _trans; int _trans;
@ -324,7 +324,7 @@ _resume:
#line 1 "NONE" #line 1 "NONE"
{ts = p;} {ts = p;}
break; break;
#line 328 "hb-ot-shaper-khmer-machine.hh" #line 311 "hb-ot-shaper-khmer-machine.hh"
} }
_keys = _khmer_syllable_machine_trans_keys + (cs<<1); _keys = _khmer_syllable_machine_trans_keys + (cs<<1);
@ -394,7 +394,7 @@ _eof_trans:
#line 98 "hb-ot-shaper-khmer-machine.rl" #line 98 "hb-ot-shaper-khmer-machine.rl"
{act = 3;} {act = 3;}
break; break;
#line 398 "hb-ot-shaper-khmer-machine.hh" #line 368 "hb-ot-shaper-khmer-machine.hh"
} }
_again: _again:
@ -403,7 +403,7 @@ _again:
#line 1 "NONE" #line 1 "NONE"
{ts = 0;} {ts = 0;}
break; break;
#line 407 "hb-ot-shaper-khmer-machine.hh" #line 375 "hb-ot-shaper-khmer-machine.hh"
} }
if ( ++p != pe ) if ( ++p != pe )

View File

@ -50,7 +50,7 @@ enum myanmar_syllable_type_t {
}; };
#line 54 "hb-ot-shaper-myanmar-machine.hh" #line 51 "hb-ot-shaper-myanmar-machine.hh"
#define myanmar_syllable_machine_ex_A 9u #define myanmar_syllable_machine_ex_A 9u
#define myanmar_syllable_machine_ex_As 32u #define myanmar_syllable_machine_ex_As 32u
#define myanmar_syllable_machine_ex_C 1u #define myanmar_syllable_machine_ex_C 1u
@ -77,7 +77,7 @@ enum myanmar_syllable_type_t {
#define myanmar_syllable_machine_ex_ZWNJ 5u #define myanmar_syllable_machine_ex_ZWNJ 5u
#line 81 "hb-ot-shaper-myanmar-machine.hh" #line 76 "hb-ot-shaper-myanmar-machine.hh"
static const unsigned char _myanmar_syllable_machine_trans_keys[] = { static const unsigned char _myanmar_syllable_machine_trans_keys[] = {
1u, 41u, 3u, 41u, 5u, 39u, 5u, 8u, 3u, 41u, 3u, 39u, 3u, 39u, 5u, 39u, 1u, 41u, 3u, 41u, 5u, 39u, 5u, 8u, 3u, 41u, 3u, 39u, 3u, 39u, 5u, 39u,
5u, 39u, 3u, 39u, 3u, 39u, 3u, 41u, 5u, 39u, 1u, 15u, 3u, 39u, 3u, 39u, 5u, 39u, 3u, 39u, 3u, 39u, 3u, 41u, 5u, 39u, 1u, 15u, 3u, 39u, 3u, 39u,
@ -443,7 +443,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
int cs; int cs;
hb_glyph_info_t *info = buffer->info; hb_glyph_info_t *info = buffer->info;
#line 447 "hb-ot-shaper-myanmar-machine.hh" #line 436 "hb-ot-shaper-myanmar-machine.hh"
{ {
cs = myanmar_syllable_machine_start; cs = myanmar_syllable_machine_start;
ts = 0; ts = 0;
@ -459,7 +459,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
unsigned int syllable_serial = 1; unsigned int syllable_serial = 1;
#line 463 "hb-ot-shaper-myanmar-machine.hh" #line 448 "hb-ot-shaper-myanmar-machine.hh"
{ {
int _slen; int _slen;
int _trans; int _trans;
@ -473,7 +473,7 @@ _resume:
#line 1 "NONE" #line 1 "NONE"
{ts = p;} {ts = p;}
break; break;
#line 477 "hb-ot-shaper-myanmar-machine.hh" #line 460 "hb-ot-shaper-myanmar-machine.hh"
} }
_keys = _myanmar_syllable_machine_trans_keys + (cs<<1); _keys = _myanmar_syllable_machine_trans_keys + (cs<<1);
@ -519,7 +519,7 @@ _eof_trans:
#line 113 "hb-ot-shaper-myanmar-machine.rl" #line 113 "hb-ot-shaper-myanmar-machine.rl"
{te = p;p--;{ found_syllable (myanmar_non_myanmar_cluster); }} {te = p;p--;{ found_syllable (myanmar_non_myanmar_cluster); }}
break; break;
#line 523 "hb-ot-shaper-myanmar-machine.hh" #line 498 "hb-ot-shaper-myanmar-machine.hh"
} }
_again: _again:
@ -528,7 +528,7 @@ _again:
#line 1 "NONE" #line 1 "NONE"
{ts = 0;} {ts = 0;}
break; break;
#line 532 "hb-ot-shaper-myanmar-machine.hh" #line 505 "hb-ot-shaper-myanmar-machine.hh"
} }
if ( ++p != pe ) if ( ++p != pe )

View File

@ -53,7 +53,7 @@ enum use_syllable_type_t {
}; };
#line 57 "hb-ot-shaper-use-machine.hh" #line 54 "hb-ot-shaper-use-machine.hh"
#define use_syllable_machine_ex_B 1u #define use_syllable_machine_ex_B 1u
#define use_syllable_machine_ex_CGJ 6u #define use_syllable_machine_ex_CGJ 6u
#define use_syllable_machine_ex_CMAbv 31u #define use_syllable_machine_ex_CMAbv 31u
@ -97,7 +97,7 @@ enum use_syllable_type_t {
#define use_syllable_machine_ex_ZWNJ 14u #define use_syllable_machine_ex_ZWNJ 14u
#line 101 "hb-ot-shaper-use-machine.hh" #line 96 "hb-ot-shaper-use-machine.hh"
static const unsigned char _use_syllable_machine_trans_keys[] = { static const unsigned char _use_syllable_machine_trans_keys[] = {
0u, 53u, 11u, 53u, 11u, 53u, 1u, 53u, 23u, 48u, 24u, 47u, 25u, 47u, 26u, 47u, 0u, 53u, 11u, 53u, 11u, 53u, 1u, 53u, 23u, 48u, 24u, 47u, 25u, 47u, 26u, 47u,
45u, 46u, 46u, 46u, 24u, 48u, 24u, 48u, 24u, 48u, 1u, 1u, 24u, 48u, 22u, 53u, 45u, 46u, 46u, 46u, 24u, 48u, 24u, 48u, 24u, 48u, 1u, 1u, 24u, 48u, 22u, 53u,
@ -780,7 +780,7 @@ find_syllables_use (hb_buffer_t *buffer)
unsigned int act HB_UNUSED; unsigned int act HB_UNUSED;
int cs; int cs;
#line 784 "hb-ot-shaper-use-machine.hh" #line 773 "hb-ot-shaper-use-machine.hh"
{ {
cs = use_syllable_machine_start; cs = use_syllable_machine_start;
ts = 0; ts = 0;
@ -793,7 +793,7 @@ find_syllables_use (hb_buffer_t *buffer)
unsigned int syllable_serial = 1; unsigned int syllable_serial = 1;
#line 797 "hb-ot-shaper-use-machine.hh" #line 782 "hb-ot-shaper-use-machine.hh"
{ {
int _slen; int _slen;
int _trans; int _trans;
@ -807,7 +807,7 @@ _resume:
#line 1 "NONE" #line 1 "NONE"
{ts = p;} {ts = p;}
break; break;
#line 811 "hb-ot-shaper-use-machine.hh" #line 794 "hb-ot-shaper-use-machine.hh"
} }
_keys = _use_syllable_machine_trans_keys + (cs<<1); _keys = _use_syllable_machine_trans_keys + (cs<<1);
@ -897,7 +897,7 @@ _eof_trans:
#line 171 "hb-ot-shaper-use-machine.rl" #line 171 "hb-ot-shaper-use-machine.rl"
{act = 2;} {act = 2;}
break; break;
#line 901 "hb-ot-shaper-use-machine.hh" #line 866 "hb-ot-shaper-use-machine.hh"
} }
_again: _again:
@ -906,7 +906,7 @@ _again:
#line 1 "NONE" #line 1 "NONE"
{ts = 0;} {ts = 0;}
break; break;
#line 910 "hb-ot-shaper-use-machine.hh" #line 873 "hb-ot-shaper-use-machine.hh"
} }
if ( ++p != pe ) if ( ++p != pe )

View File

@ -75,15 +75,15 @@ main (int argc, char **argv)
while (hb_buffer_deserialize_glyphs (buf, while (hb_buffer_deserialize_glyphs (buf,
p, -1, &p, p, -1, &p,
font, font,
HB_BUFFER_SERIALIZE_FORMAT_JSON)) HB_BUFFER_SERIALIZE_FORMAT_TEXT))
; ;
if (*p && *p != '\n') if (*p && *p != '\n')
ret = false; ret = false;
hb_buffer_serialize_glyphs (buf, 0, hb_buffer_get_length (buf), hb_buffer_serialize_glyphs (buf, 0, hb_buffer_get_length (buf),
out, sizeof (out), nullptr, out, sizeof (out), nullptr,
font, HB_BUFFER_SERIALIZE_FORMAT_JSON, font, HB_BUFFER_SERIALIZE_FORMAT_TEXT,
HB_BUFFER_SERIALIZE_FLAG_DEFAULT); HB_BUFFER_SERIALIZE_FLAG_GLYPH_FLAGS);
puts (out); puts (out);
} }