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,28 +1,30 @@
#line 1 "hb-buffer-deserialize-json.rl"
/* /*
* Copyright © 2013 Google, Inc. * Copyright © 2013 Google, Inc.
* *
* This is part of HarfBuzz, a text shaping library. * This is part of HarfBuzz, a text shaping library.
* *
* Permission is hereby granted, without written agreement and without * Permission is hereby granted, without written agreement and without
* license or royalty fees, to use, copy, modify, and distribute this * license or royalty fees, to use, copy, modify, and distribute this
* software and its documentation for any purpose, provided that the * software and its documentation for any purpose, provided that the
* above copyright notice and the following two paragraphs appear in * above copyright notice and the following two paragraphs appear in
* all copies of this software. * all copies of this software.
* *
* IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
* IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE. * DAMAGE.
* *
* THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
* ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
* *
* Google Author(s): Behdad Esfahbod * Google Author(s): Behdad Esfahbod
*/ */
#ifndef HB_BUFFER_DESERIALIZE_JSON_HH #ifndef HB_BUFFER_DESERIALIZE_JSON_HH
#define HB_BUFFER_DESERIALIZE_JSON_HH #define HB_BUFFER_DESERIALIZE_JSON_HH
@ -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,13 +435,15 @@ 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,
const char *buf, const char *buf,
unsigned int buf_len, unsigned int buf_len,
const char **end_ptr, const char **end_ptr,
hb_font_t *font) hb_font_t *font)
{ {
const char *p = buf, *pe = buf + buf_len; const char *p = buf, *pe = buf + buf_len;
@ -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"
{ if (!parse_uint (tok, p, &info.codepoint)) return false; }
break;
case 8:
#line 63 "hb-buffer-deserialize-json.rl"
{ if (!parse_uint (tok, p, &info.cluster )) return false; }
break;
case 10:
#line 64 "hb-buffer-deserialize-json.rl"
{ if (!parse_int (tok, p, &pos.x_offset )) return false; }
break;
case 12:
#line 65 "hb-buffer-deserialize-json.rl"
{ if (!parse_int (tok, p, &pos.y_offset )) return false; }
break;
case 3:
#line 66 "hb-buffer-deserialize-json.rl"
{ if (!parse_int (tok, p, &pos.x_advance)) return false; }
break;
case 6:
#line 67 "hb-buffer-deserialize-json.rl"
{ if (!parse_int (tok, p, &pos.y_advance)) return false; }
break;
case 16:
#line 62 "hb-buffer-deserialize-json.rl"
{ if (!parse_uint (tok, p, &info.codepoint)) return false; }
#line 43 "hb-buffer-deserialize-json.rl"
{ {
#line 62 "hb-buffer-deserialize-json.rl"
if (!parse_uint (tok, p, &info.codepoint)) return false; }
break; }
case 8: {
{
#line 63 "hb-buffer-deserialize-json.rl"
if (!parse_uint (tok, p, &info.cluster )) return false; }
break; }
case 10: {
{
#line 64 "hb-buffer-deserialize-json.rl"
if (!parse_int (tok, p, &pos.x_offset )) return false; }
break; }
case 12: {
{
#line 65 "hb-buffer-deserialize-json.rl"
if (!parse_int (tok, p, &pos.y_offset )) return false; }
break; }
case 3: {
{
#line 66 "hb-buffer-deserialize-json.rl"
if (!parse_int (tok, p, &pos.x_advance)) return false; }
break; }
case 6: {
{
#line 67 "hb-buffer-deserialize-json.rl"
if (!parse_int (tok, p, &pos.y_advance)) return false; }
break; }
case 16: {
{
#line 62 "hb-buffer-deserialize-json.rl"
if (!parse_uint (tok, p, &info.codepoint)) return false; }
{
#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"
{ if (!parse_uint (tok, p, &info.cluster )) return false; }
#line 43 "hb-buffer-deserialize-json.rl"
{ {
#line 63 "hb-buffer-deserialize-json.rl"
if (!parse_uint (tok, p, &info.cluster )) return false; }
{
#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"
{ if (!parse_int (tok, p, &pos.x_offset )) return false; }
#line 43 "hb-buffer-deserialize-json.rl"
{ {
#line 64 "hb-buffer-deserialize-json.rl"
if (!parse_int (tok, p, &pos.x_offset )) return false; }
{
#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"
{ if (!parse_int (tok, p, &pos.y_offset )) return false; }
#line 43 "hb-buffer-deserialize-json.rl"
{ {
#line 65 "hb-buffer-deserialize-json.rl"
if (!parse_int (tok, p, &pos.y_offset )) return false; }
{
#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"
{ if (!parse_int (tok, p, &pos.x_advance)) return false; }
#line 43 "hb-buffer-deserialize-json.rl"
{ {
#line 66 "hb-buffer-deserialize-json.rl"
if (!parse_int (tok, p, &pos.x_advance)) return false; }
{
#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"
{ if (!parse_int (tok, p, &pos.y_advance)) return false; }
#line 43 "hb-buffer-deserialize-json.rl"
{ {
#line 67 "hb-buffer-deserialize-json.rl"
if (!parse_int (tok, p, &pos.y_advance)) return false; }
{
#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;
#line 624 "hb-buffer-deserialize-json.hh"
} }
break; } _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,28 +1,30 @@
#line 1 "hb-buffer-deserialize-text.rl"
/* /*
* Copyright © 2013 Google, Inc. * Copyright © 2013 Google, Inc.
* *
* This is part of HarfBuzz, a text shaping library. * This is part of HarfBuzz, a text shaping library.
* *
* Permission is hereby granted, without written agreement and without * Permission is hereby granted, without written agreement and without
* license or royalty fees, to use, copy, modify, and distribute this * license or royalty fees, to use, copy, modify, and distribute this
* software and its documentation for any purpose, provided that the * software and its documentation for any purpose, provided that the
* above copyright notice and the following two paragraphs appear in * above copyright notice and the following two paragraphs appear in
* all copies of this software. * all copies of this software.
* *
* IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
* IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE. * DAMAGE.
* *
* THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
* ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
* *
* Google Author(s): Behdad Esfahbod * Google Author(s): Behdad Esfahbod
*/ */
#ifndef HB_BUFFER_DESERIALIZE_TEXT_HH #ifndef HB_BUFFER_DESERIALIZE_TEXT_HH
#define HB_BUFFER_DESERIALIZE_TEXT_HH #define HB_BUFFER_DESERIALIZE_TEXT_HH
@ -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,13 +312,15 @@ 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,
const char *buf, const char *buf,
unsigned int buf_len, unsigned int buf_len,
const char **end_ptr, const char **end_ptr,
hb_font_t *font) hb_font_t *font)
{ {
const char *p = buf, *pe = buf + buf_len; const char *p = buf, *pe = buf + buf_len;
@ -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"
{ if (!parse_uint (tok, p, &info.cluster )) return false; }
break;
case 3:
#line 63 "hb-buffer-deserialize-text.rl"
{ if (!parse_int (tok, p, &pos.x_offset )) return false; }
break;
case 12:
#line 64 "hb-buffer-deserialize-text.rl"
{ if (!parse_int (tok, p, &pos.y_offset )) return false; }
break;
case 7:
#line 65 "hb-buffer-deserialize-text.rl"
{ if (!parse_int (tok, p, &pos.x_advance)) return false; }
break;
case 1:
#line 38 "hb-buffer-deserialize-text.rl"
{ {
#line 62 "hb-buffer-deserialize-text.rl"
if (!parse_uint (tok, p, &info.cluster )) return false; }
break; }
case 3: {
{
#line 63 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.x_offset )) return false; }
break; }
case 12: {
{
#line 64 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.y_offset )) return false; }
break; }
case 7: {
{
#line 65 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.x_advance)) return false; }
break; }
case 1: {
{
#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"
{ if (!parse_uint (tok, p, &info.cluster )) return false; }
#line 43 "hb-buffer-deserialize-text.rl"
{ {
#line 62 "hb-buffer-deserialize-text.rl"
if (!parse_uint (tok, p, &info.cluster )) return false; }
{
#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"
{ if (!parse_int (tok, p, &pos.y_offset )) return false; }
#line 43 "hb-buffer-deserialize-text.rl"
{ {
#line 64 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.y_offset )) return false; }
{
#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"
{ if (!parse_int (tok, p, &pos.x_advance)) return false; }
#line 43 "hb-buffer-deserialize-text.rl"
{ {
#line 65 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.x_advance)) return false; }
{
#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"
{ if (!parse_int (tok, p, &pos.y_advance)) return false; }
#line 43 "hb-buffer-deserialize-text.rl"
{ {
#line 66 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.y_advance)) return false; }
{
#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;
#line 480 "hb-buffer-deserialize-text.hh"
} }
break; } _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"
{ if (!parse_uint (tok, p, &info.cluster )) return false; }
#line 43 "hb-buffer-deserialize-text.rl"
{ {
#line 62 "hb-buffer-deserialize-text.rl"
if (!parse_uint (tok, p, &info.cluster )) return false; }
{
#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"
{ if (!parse_int (tok, p, &pos.y_offset )) return false; }
#line 43 "hb-buffer-deserialize-text.rl"
{ {
#line 64 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.y_offset )) return false; }
{
#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"
{ if (!parse_int (tok, p, &pos.x_advance)) return false; }
#line 43 "hb-buffer-deserialize-text.rl"
{ {
#line 65 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.x_advance)) return false; }
{
#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"
{ if (!parse_int (tok, p, &pos.y_advance)) return false; }
#line 43 "hb-buffer-deserialize-text.rl"
{ {
#line 66 "hb-buffer-deserialize-text.rl"
if (!parse_int (tok, p, &pos.y_advance)) return false; }
{
#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,28 +1,30 @@
#line 1 "hb-ot-shape-complex-khmer-machine.rl"
/* /*
* Copyright © 2011,2012 Google, Inc. * Copyright © 2011,2012 Google, Inc.
* *
* This is part of HarfBuzz, a text shaping library. * This is part of HarfBuzz, a text shaping library.
* *
* Permission is hereby granted, without written agreement and without * Permission is hereby granted, without written agreement and without
* license or royalty fees, to use, copy, modify, and distribute this * license or royalty fees, to use, copy, modify, and distribute this
* software and its documentation for any purpose, provided that the * software and its documentation for any purpose, provided that the
* above copyright notice and the following two paragraphs appear in * above copyright notice and the following two paragraphs appear in
* all copies of this software. * all copies of this software.
* *
* IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
* IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE. * DAMAGE.
* *
* THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
* ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
* *
* Google Author(s): Behdad Esfahbod * Google Author(s): Behdad Esfahbod
*/ */
#ifndef HB_OT_SHAPE_COMPLEX_KHMER_MACHINE_HH #ifndef HB_OT_SHAPE_COMPLEX_KHMER_MACHINE_HH
#define HB_OT_SHAPE_COMPLEX_KHMER_MACHINE_HH #define HB_OT_SHAPE_COMPLEX_KHMER_MACHINE_HH
@ -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,17 +215,21 @@ 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); \
for (unsigned int i = ts; i < te; i++) \ for (unsigned int i = ts; i < te; i++) \
info[i].syllable() = (syllable_serial << 4) | syllable_type; \ info[i].syllable() = (syllable_serial << 4) | syllable_type; \
syllable_serial++; \ syllable_serial++; \
if (unlikely (syllable_serial == 16)) syllable_serial=1; \ if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
} HB_STMT_END } HB_STMT_END
static void static void
find_syllables (hb_buffer_t *buffer) find_syllables (hb_buffer_t *buffer)
@ -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;
#line 272 "hb-ot-shape-complex-khmer-machine.hh"
break; }
} }
_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;
case 8:
break; } #line 76 "hb-ot-shape-complex-khmer-machine.rl"
case 8: { {te = p+1;{ found_syllable (non_khmer_cluster); }}
{ break;
#line 76 "hb-ot-shape-complex-khmer-machine.rl" case 10:
{te = p+1;{ #line 74 "hb-ot-shape-complex-khmer-machine.rl"
#line 76 "hb-ot-shape-complex-khmer-machine.rl" {te = p;p--;{ found_syllable (consonant_syllable); }}
found_syllable (non_khmer_cluster); }}} break;
case 12:
break; } #line 75 "hb-ot-shape-complex-khmer-machine.rl"
case 10: { {te = p;p--;{ found_syllable (broken_cluster); }}
{ break;
#line 74 "hb-ot-shape-complex-khmer-machine.rl" case 11:
{te = p;p = p - 1;{ #line 76 "hb-ot-shape-complex-khmer-machine.rl"
#line 74 "hb-ot-shape-complex-khmer-machine.rl" {te = p;p--;{ found_syllable (non_khmer_cluster); }}
found_syllable (consonant_syllable); }}} break;
case 1:
break; } #line 74 "hb-ot-shape-complex-khmer-machine.rl"
case 12: { {{p = ((te))-1;}{ found_syllable (consonant_syllable); }}
{ break;
#line 75 "hb-ot-shape-complex-khmer-machine.rl" case 5:
{te = p;p = p - 1;{ #line 75 "hb-ot-shape-complex-khmer-machine.rl"
#line 75 "hb-ot-shape-complex-khmer-machine.rl" {{p = ((te))-1;}{ found_syllable (broken_cluster); }}
found_syllable (broken_cluster); }}} break;
case 3:
break; } #line 1 "NONE"
case 11: { { switch( act ) {
{ case 2:
#line 76 "hb-ot-shape-complex-khmer-machine.rl" {{p = ((te))-1;} found_syllable (broken_cluster); }
{te = p;p = p - 1;{ break;
#line 76 "hb-ot-shape-complex-khmer-machine.rl" case 3:
found_syllable (non_khmer_cluster); }}} {{p = ((te))-1;} found_syllable (non_khmer_cluster); }
break;
break; } }
case 1: { }
{ break;
#line 74 "hb-ot-shape-complex-khmer-machine.rl" case 4:
{p = ((te))-1; #line 1 "NONE"
{ {te = p+1;}
#line 74 "hb-ot-shape-complex-khmer-machine.rl" #line 75 "hb-ot-shape-complex-khmer-machine.rl"
found_syllable (consonant_syllable); }}} {act = 2;}
break;
break; } case 9:
case 5: { #line 1 "NONE"
{ {te = p+1;}
#line 75 "hb-ot-shape-complex-khmer-machine.rl" #line 76 "hb-ot-shape-complex-khmer-machine.rl"
{p = ((te))-1; {act = 3;}
{ break;
#line 75 "hb-ot-shape-complex-khmer-machine.rl" #line 342 "hb-ot-shape-complex-khmer-machine.hh"
found_syllable (broken_cluster); }}}
break; }
case 3: {
{
#line 1 "NONE"
{switch( act ) {
case 2: {
p = ((te))-1;
{
#line 75 "hb-ot-shape-complex-khmer-machine.rl"
found_syllable (broken_cluster); } break; }
case 3: {
p = ((te))-1;
{
#line 76 "hb-ot-shape-complex-khmer-machine.rl"
found_syllable (non_khmer_cluster); } break; }
}}
} }
break; } _again:
case 4: {
{
#line 1 "NONE"
{te = p+1;}}
{
#line 75 "hb-ot-shape-complex-khmer-machine.rl"
{act = 2;}}
break; }
case 9: {
{
#line 1 "NONE"
{te = p+1;}}
{
#line 76 "hb-ot-shape-complex-khmer-machine.rl"
{act = 3;}}
break; }
}
}
_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;
#line 351 "hb-ot-shape-complex-khmer-machine.hh"
break; }
} }
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,28 +1,30 @@
#line 1 "hb-ot-shape-complex-myanmar-machine.rl"
/* /*
* Copyright © 2011,2012 Google, Inc. * Copyright © 2011,2012 Google, Inc.
* *
* This is part of HarfBuzz, a text shaping library. * This is part of HarfBuzz, a text shaping library.
* *
* Permission is hereby granted, without written agreement and without * Permission is hereby granted, without written agreement and without
* license or royalty fees, to use, copy, modify, and distribute this * license or royalty fees, to use, copy, modify, and distribute this
* software and its documentation for any purpose, provided that the * software and its documentation for any purpose, provided that the
* above copyright notice and the following two paragraphs appear in * above copyright notice and the following two paragraphs appear in
* all copies of this software. * all copies of this software.
* *
* IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
* IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE. * DAMAGE.
* *
* THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
* ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
* *
* Google Author(s): Behdad Esfahbod * Google Author(s): Behdad Esfahbod
*/ */
#ifndef HB_OT_SHAPE_COMPLEX_MYANMAR_MACHINE_HH #ifndef HB_OT_SHAPE_COMPLEX_MYANMAR_MACHINE_HH
#define HB_OT_SHAPE_COMPLEX_MYANMAR_MACHINE_HH #define HB_OT_SHAPE_COMPLEX_MYANMAR_MACHINE_HH
@ -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,17 +286,21 @@ 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); \
for (unsigned int i = ts; i < te; i++) \ for (unsigned int i = ts; i < te; i++) \
info[i].syllable() = (syllable_serial << 4) | syllable_type; \ info[i].syllable() = (syllable_serial << 4) | syllable_type; \
syllable_serial++; \ syllable_serial++; \
if (unlikely (syllable_serial == 16)) syllable_serial=1; \ if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
} HB_STMT_END } HB_STMT_END
static void static void
find_syllables (hb_buffer_t *buffer) find_syllables (hb_buffer_t *buffer)
@ -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;
#line 343 "hb-ot-shape-complex-myanmar-machine.hh"
break; }
} }
_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;{ found_syllable (consonant_syllable); }}
{te = p+1;{ break;
#line 86 "hb-ot-shape-complex-myanmar-machine.rl" case 4:
found_syllable (consonant_syllable); }}} #line 87 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p+1;{ found_syllable (non_myanmar_cluster); }}
break; } break;
case 4: { case 10:
{ #line 88 "hb-ot-shape-complex-myanmar-machine.rl"
#line 87 "hb-ot-shape-complex-myanmar-machine.rl" {te = p+1;{ found_syllable (punctuation_cluster); }}
{te = p+1;{ break;
#line 87 "hb-ot-shape-complex-myanmar-machine.rl" case 8:
found_syllable (non_myanmar_cluster); }}} #line 89 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p+1;{ found_syllable (broken_cluster); }}
break; } break;
case 10: { case 3:
{ #line 90 "hb-ot-shape-complex-myanmar-machine.rl"
#line 88 "hb-ot-shape-complex-myanmar-machine.rl" {te = p+1;{ found_syllable (non_myanmar_cluster); }}
{te = p+1;{ break;
#line 88 "hb-ot-shape-complex-myanmar-machine.rl" case 5:
found_syllable (punctuation_cluster); }}} #line 86 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p;p--;{ found_syllable (consonant_syllable); }}
break; } break;
case 8: { case 7:
{ #line 89 "hb-ot-shape-complex-myanmar-machine.rl"
#line 89 "hb-ot-shape-complex-myanmar-machine.rl" {te = p;p--;{ found_syllable (broken_cluster); }}
{te = p+1;{ break;
#line 89 "hb-ot-shape-complex-myanmar-machine.rl" case 9:
found_syllable (broken_cluster); }}} #line 90 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p;p--;{ found_syllable (non_myanmar_cluster); }}
break; } break;
case 3: { #line 393 "hb-ot-shape-complex-myanmar-machine.hh"
{
#line 90 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p+1;{
#line 90 "hb-ot-shape-complex-myanmar-machine.rl"
found_syllable (non_myanmar_cluster); }}}
break; }
case 5: {
{
#line 86 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p;p = p - 1;{
#line 86 "hb-ot-shape-complex-myanmar-machine.rl"
found_syllable (consonant_syllable); }}}
break; }
case 7: {
{
#line 89 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p;p = p - 1;{
#line 89 "hb-ot-shape-complex-myanmar-machine.rl"
found_syllable (broken_cluster); }}}
break; }
case 9: {
{
#line 90 "hb-ot-shape-complex-myanmar-machine.rl"
{te = p;p = p - 1;{
#line 90 "hb-ot-shape-complex-myanmar-machine.rl"
found_syllable (non_myanmar_cluster); }}}
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;
#line 402 "hb-ot-shape-complex-myanmar-machine.hh"
break; }
} }
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"
}
}
} }

File diff suppressed because it is too large Load Diff