1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/gfx/harfbuzz/src/hb-buffer-deserialize-json.hh Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,643 @@ 1.4 + 1.5 +#line 1 "../../src/hb-buffer-deserialize-json.rl" 1.6 +/* 1.7 + * Copyright © 2013 Google, Inc. 1.8 + * 1.9 + * This is part of HarfBuzz, a text shaping library. 1.10 + * 1.11 + * Permission is hereby granted, without written agreement and without 1.12 + * license or royalty fees, to use, copy, modify, and distribute this 1.13 + * software and its documentation for any purpose, provided that the 1.14 + * above copyright notice and the following two paragraphs appear in 1.15 + * all copies of this software. 1.16 + * 1.17 + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR 1.18 + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 1.19 + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN 1.20 + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 1.21 + * DAMAGE. 1.22 + * 1.23 + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, 1.24 + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 1.25 + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS 1.26 + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO 1.27 + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 1.28 + * 1.29 + * Google Author(s): Behdad Esfahbod 1.30 + */ 1.31 + 1.32 +#ifndef HB_BUFFER_DESERIALIZE_JSON_HH 1.33 +#define HB_BUFFER_DESERIALIZE_JSON_HH 1.34 + 1.35 +#include "hb-private.hh" 1.36 + 1.37 + 1.38 +#line 36 "hb-buffer-deserialize-json.hh.tmp" 1.39 +static const unsigned char _deserialize_json_trans_keys[] = { 1.40 + 0u, 0u, 9u, 123u, 9u, 34u, 97u, 103u, 120u, 121u, 34u, 34u, 9u, 58u, 9u, 57u, 1.41 + 48u, 57u, 9u, 125u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 1.42 + 9u, 125u, 9u, 125u, 108u, 108u, 34u, 34u, 9u, 58u, 9u, 57u, 9u, 125u, 9u, 125u, 1.43 + 120u, 121u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 34u, 34u, 1.44 + 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 1.45 + 65u, 122u, 34u, 122u, 9u, 125u, 9u, 125u, 9u, 93u, 9u, 123u, 0u, 0u, 0 1.46 +}; 1.47 + 1.48 +static const char _deserialize_json_key_spans[] = { 1.49 + 0, 115, 26, 7, 2, 1, 50, 49, 1.50 + 10, 117, 117, 117, 1, 50, 49, 10, 1.51 + 117, 117, 1, 1, 50, 49, 117, 117, 1.52 + 2, 1, 50, 49, 10, 117, 117, 1, 1.53 + 50, 49, 10, 117, 117, 1, 50, 49, 1.54 + 58, 89, 117, 117, 85, 115, 0 1.55 +}; 1.56 + 1.57 +static const short _deserialize_json_index_offsets[] = { 1.58 + 0, 0, 116, 143, 151, 154, 156, 207, 1.59 + 257, 268, 386, 504, 622, 624, 675, 725, 1.60 + 736, 854, 972, 974, 976, 1027, 1077, 1195, 1.61 + 1313, 1316, 1318, 1369, 1419, 1430, 1548, 1666, 1.62 + 1668, 1719, 1769, 1780, 1898, 2016, 2018, 2069, 1.63 + 2119, 2178, 2268, 2386, 2504, 2590, 2706 1.64 +}; 1.65 + 1.66 +static const char _deserialize_json_indicies[] = { 1.67 + 0, 0, 0, 0, 0, 1, 1, 1.68 + 1, 1, 1, 1, 1, 1, 1, 1, 1.69 + 1, 1, 1, 1, 1, 1, 1, 1, 1.70 + 0, 1, 1, 1, 1, 1, 1, 1, 1.71 + 1, 1, 1, 1, 1, 1, 1, 1, 1.72 + 1, 1, 1, 1, 1, 1, 1, 1, 1.73 + 1, 1, 1, 1, 1, 1, 1, 1, 1.74 + 1, 1, 1, 1, 1, 1, 1, 1, 1.75 + 1, 1, 1, 1, 1, 1, 1, 1, 1.76 + 1, 1, 1, 1, 1, 1, 1, 1, 1.77 + 1, 1, 1, 1, 1, 1, 1, 1, 1.78 + 1, 1, 1, 1, 1, 1, 1, 1, 1.79 + 1, 1, 1, 1, 1, 1, 1, 1, 1.80 + 1, 1, 1, 1, 1, 1, 1, 1, 1.81 + 1, 1, 1, 2, 1, 3, 3, 3, 1.82 + 3, 3, 1, 1, 1, 1, 1, 1, 1.83 + 1, 1, 1, 1, 1, 1, 1, 1, 1.84 + 1, 1, 1, 1, 3, 1, 4, 1, 1.85 + 5, 1, 6, 7, 1, 1, 8, 1, 1.86 + 9, 10, 1, 11, 1, 11, 11, 11, 1.87 + 11, 11, 1, 1, 1, 1, 1, 1, 1.88 + 1, 1, 1, 1, 1, 1, 1, 1, 1.89 + 1, 1, 1, 1, 11, 1, 1, 1, 1.90 + 1, 1, 1, 1, 1, 1, 1, 1, 1.91 + 1, 1, 1, 1, 1, 1, 1, 1, 1.92 + 1, 1, 1, 1, 1, 1, 12, 1, 1.93 + 12, 12, 12, 12, 12, 1, 1, 1, 1.94 + 1, 1, 1, 1, 1, 1, 1, 1, 1.95 + 1, 1, 1, 1, 1, 1, 1, 12, 1.96 + 1, 1, 1, 1, 1, 1, 1, 1, 1.97 + 1, 1, 1, 1, 13, 1, 1, 14, 1.98 + 15, 15, 15, 15, 15, 15, 15, 15, 1.99 + 15, 1, 16, 17, 17, 17, 17, 17, 1.100 + 17, 17, 17, 17, 1, 18, 18, 18, 1.101 + 18, 18, 1, 1, 1, 1, 1, 1, 1.102 + 1, 1, 1, 1, 1, 1, 1, 1, 1.103 + 1, 1, 1, 1, 18, 1, 1, 1, 1.104 + 1, 1, 1, 1, 1, 1, 1, 1, 1.105 + 19, 1, 1, 1, 1, 1, 1, 1, 1.106 + 1, 1, 1, 1, 1, 1, 1, 1, 1.107 + 1, 1, 1, 1, 1, 1, 1, 1, 1.108 + 1, 1, 1, 1, 1, 1, 1, 1, 1.109 + 1, 1, 1, 1, 1, 1, 1, 1, 1.110 + 1, 1, 1, 1, 1, 1, 1, 1, 1.111 + 1, 1, 1, 1, 1, 1, 1, 1, 1.112 + 1, 1, 1, 1, 1, 1, 1, 1, 1.113 + 1, 1, 1, 1, 1, 1, 1, 1, 1.114 + 1, 1, 1, 1, 1, 1, 1, 1, 1.115 + 1, 20, 1, 21, 21, 21, 21, 21, 1.116 + 1, 1, 1, 1, 1, 1, 1, 1, 1.117 + 1, 1, 1, 1, 1, 1, 1, 1, 1.118 + 1, 1, 21, 1, 1, 1, 1, 1, 1.119 + 1, 1, 1, 1, 1, 1, 3, 1, 1.120 + 1, 1, 1, 1, 1, 1, 1, 1, 1.121 + 1, 1, 1, 1, 1, 1, 1, 1, 1.122 + 1, 1, 1, 1, 1, 1, 1, 1, 1.123 + 1, 1, 1, 1, 1, 1, 1, 1, 1.124 + 1, 1, 1, 1, 1, 1, 1, 1, 1.125 + 1, 1, 1, 1, 1, 1, 1, 1, 1.126 + 1, 1, 1, 1, 1, 1, 1, 1, 1.127 + 1, 1, 1, 1, 1, 1, 1, 1, 1.128 + 1, 1, 1, 1, 1, 1, 1, 1, 1.129 + 1, 1, 1, 1, 1, 1, 1, 22, 1.130 + 1, 18, 18, 18, 18, 18, 1, 1, 1.131 + 1, 1, 1, 1, 1, 1, 1, 1, 1.132 + 1, 1, 1, 1, 1, 1, 1, 1, 1.133 + 18, 1, 1, 1, 1, 1, 1, 1, 1.134 + 1, 1, 1, 1, 19, 1, 1, 1, 1.135 + 17, 17, 17, 17, 17, 17, 17, 17, 1.136 + 17, 17, 1, 1, 1, 1, 1, 1, 1.137 + 1, 1, 1, 1, 1, 1, 1, 1, 1.138 + 1, 1, 1, 1, 1, 1, 1, 1, 1.139 + 1, 1, 1, 1, 1, 1, 1, 1, 1.140 + 1, 1, 1, 1, 1, 1, 1, 1, 1.141 + 1, 1, 1, 1, 1, 1, 1, 1, 1.142 + 1, 1, 1, 1, 1, 1, 1, 1, 1.143 + 1, 1, 1, 1, 1, 1, 1, 1, 1.144 + 1, 1, 1, 1, 1, 20, 1, 23, 1.145 + 1, 23, 23, 23, 23, 23, 1, 1, 1.146 + 1, 1, 1, 1, 1, 1, 1, 1, 1.147 + 1, 1, 1, 1, 1, 1, 1, 1, 1.148 + 23, 1, 1, 1, 1, 1, 1, 1, 1.149 + 1, 1, 1, 1, 1, 1, 1, 1, 1.150 + 1, 1, 1, 1, 1, 1, 1, 1, 1.151 + 1, 1, 24, 1, 24, 24, 24, 24, 1.152 + 24, 1, 1, 1, 1, 1, 1, 1, 1.153 + 1, 1, 1, 1, 1, 1, 1, 1, 1.154 + 1, 1, 1, 24, 1, 1, 1, 1, 1.155 + 1, 1, 1, 1, 1, 1, 1, 1, 1.156 + 25, 1, 1, 26, 27, 27, 27, 27, 1.157 + 27, 27, 27, 27, 27, 1, 28, 29, 1.158 + 29, 29, 29, 29, 29, 29, 29, 29, 1.159 + 1, 30, 30, 30, 30, 30, 1, 1, 1.160 + 1, 1, 1, 1, 1, 1, 1, 1, 1.161 + 1, 1, 1, 1, 1, 1, 1, 1, 1.162 + 30, 1, 1, 1, 1, 1, 1, 1, 1.163 + 1, 1, 1, 1, 31, 1, 1, 1, 1.164 + 1, 1, 1, 1, 1, 1, 1, 1, 1.165 + 1, 1, 1, 1, 1, 1, 1, 1, 1.166 + 1, 1, 1, 1, 1, 1, 1, 1, 1.167 + 1, 1, 1, 1, 1, 1, 1, 1, 1.168 + 1, 1, 1, 1, 1, 1, 1, 1, 1.169 + 1, 1, 1, 1, 1, 1, 1, 1, 1.170 + 1, 1, 1, 1, 1, 1, 1, 1, 1.171 + 1, 1, 1, 1, 1, 1, 1, 1, 1.172 + 1, 1, 1, 1, 1, 1, 1, 1, 1.173 + 1, 1, 1, 1, 1, 32, 1, 30, 1.174 + 30, 30, 30, 30, 1, 1, 1, 1, 1.175 + 1, 1, 1, 1, 1, 1, 1, 1, 1.176 + 1, 1, 1, 1, 1, 1, 30, 1, 1.177 + 1, 1, 1, 1, 1, 1, 1, 1, 1.178 + 1, 1, 31, 1, 1, 1, 29, 29, 1.179 + 29, 29, 29, 29, 29, 29, 29, 29, 1.180 + 1, 1, 1, 1, 1, 1, 1, 1, 1.181 + 1, 1, 1, 1, 1, 1, 1, 1, 1.182 + 1, 1, 1, 1, 1, 1, 1, 1, 1.183 + 1, 1, 1, 1, 1, 1, 1, 1, 1.184 + 1, 1, 1, 1, 1, 1, 1, 1, 1.185 + 1, 1, 1, 1, 1, 1, 1, 1, 1.186 + 1, 1, 1, 1, 1, 1, 1, 1, 1.187 + 1, 1, 1, 1, 1, 1, 1, 1, 1.188 + 1, 1, 1, 32, 1, 33, 1, 34, 1.189 + 1, 34, 34, 34, 34, 34, 1, 1, 1.190 + 1, 1, 1, 1, 1, 1, 1, 1, 1.191 + 1, 1, 1, 1, 1, 1, 1, 1, 1.192 + 34, 1, 1, 1, 1, 1, 1, 1, 1.193 + 1, 1, 1, 1, 1, 1, 1, 1, 1.194 + 1, 1, 1, 1, 1, 1, 1, 1, 1.195 + 1, 1, 35, 1, 35, 35, 35, 35, 1.196 + 35, 1, 1, 1, 1, 1, 1, 1, 1.197 + 1, 1, 1, 1, 1, 1, 1, 1, 1.198 + 1, 1, 1, 35, 1, 1, 1, 1, 1.199 + 1, 1, 1, 1, 1, 1, 1, 1, 1.200 + 1, 1, 1, 36, 37, 37, 37, 37, 1.201 + 37, 37, 37, 37, 37, 1, 38, 38, 1.202 + 38, 38, 38, 1, 1, 1, 1, 1, 1.203 + 1, 1, 1, 1, 1, 1, 1, 1, 1.204 + 1, 1, 1, 1, 1, 38, 1, 1, 1.205 + 1, 1, 1, 1, 1, 1, 1, 1, 1.206 + 1, 39, 1, 1, 1, 1, 1, 1, 1.207 + 1, 1, 1, 1, 1, 1, 1, 1, 1.208 + 1, 1, 1, 1, 1, 1, 1, 1, 1.209 + 1, 1, 1, 1, 1, 1, 1, 1, 1.210 + 1, 1, 1, 1, 1, 1, 1, 1, 1.211 + 1, 1, 1, 1, 1, 1, 1, 1, 1.212 + 1, 1, 1, 1, 1, 1, 1, 1, 1.213 + 1, 1, 1, 1, 1, 1, 1, 1, 1.214 + 1, 1, 1, 1, 1, 1, 1, 1, 1.215 + 1, 1, 1, 1, 1, 1, 1, 1, 1.216 + 1, 1, 40, 1, 38, 38, 38, 38, 1.217 + 38, 1, 1, 1, 1, 1, 1, 1, 1.218 + 1, 1, 1, 1, 1, 1, 1, 1, 1.219 + 1, 1, 1, 38, 1, 1, 1, 1, 1.220 + 1, 1, 1, 1, 1, 1, 1, 39, 1.221 + 1, 1, 1, 41, 41, 41, 41, 41, 1.222 + 41, 41, 41, 41, 41, 1, 1, 1, 1.223 + 1, 1, 1, 1, 1, 1, 1, 1, 1.224 + 1, 1, 1, 1, 1, 1, 1, 1, 1.225 + 1, 1, 1, 1, 1, 1, 1, 1, 1.226 + 1, 1, 1, 1, 1, 1, 1, 1, 1.227 + 1, 1, 1, 1, 1, 1, 1, 1, 1.228 + 1, 1, 1, 1, 1, 1, 1, 1, 1.229 + 1, 1, 1, 1, 1, 1, 1, 1, 1.230 + 1, 1, 1, 1, 1, 1, 1, 1, 1.231 + 40, 1, 42, 43, 1, 44, 1, 44, 1.232 + 44, 44, 44, 44, 1, 1, 1, 1, 1.233 + 1, 1, 1, 1, 1, 1, 1, 1, 1.234 + 1, 1, 1, 1, 1, 1, 44, 1, 1.235 + 1, 1, 1, 1, 1, 1, 1, 1, 1.236 + 1, 1, 1, 1, 1, 1, 1, 1, 1.237 + 1, 1, 1, 1, 1, 1, 1, 1, 1.238 + 45, 1, 45, 45, 45, 45, 45, 1, 1.239 + 1, 1, 1, 1, 1, 1, 1, 1, 1.240 + 1, 1, 1, 1, 1, 1, 1, 1, 1.241 + 1, 45, 1, 1, 1, 1, 1, 1, 1.242 + 1, 1, 1, 1, 1, 1, 46, 1, 1.243 + 1, 47, 48, 48, 48, 48, 48, 48, 1.244 + 48, 48, 48, 1, 49, 50, 50, 50, 1.245 + 50, 50, 50, 50, 50, 50, 1, 51, 1.246 + 51, 51, 51, 51, 1, 1, 1, 1, 1.247 + 1, 1, 1, 1, 1, 1, 1, 1, 1.248 + 1, 1, 1, 1, 1, 1, 51, 1, 1.249 + 1, 1, 1, 1, 1, 1, 1, 1, 1.250 + 1, 1, 52, 1, 1, 1, 1, 1, 1.251 + 1, 1, 1, 1, 1, 1, 1, 1, 1.252 + 1, 1, 1, 1, 1, 1, 1, 1, 1.253 + 1, 1, 1, 1, 1, 1, 1, 1, 1.254 + 1, 1, 1, 1, 1, 1, 1, 1, 1.255 + 1, 1, 1, 1, 1, 1, 1, 1, 1.256 + 1, 1, 1, 1, 1, 1, 1, 1, 1.257 + 1, 1, 1, 1, 1, 1, 1, 1, 1.258 + 1, 1, 1, 1, 1, 1, 1, 1, 1.259 + 1, 1, 1, 1, 1, 1, 1, 1, 1.260 + 1, 1, 1, 53, 1, 51, 51, 51, 1.261 + 51, 51, 1, 1, 1, 1, 1, 1, 1.262 + 1, 1, 1, 1, 1, 1, 1, 1, 1.263 + 1, 1, 1, 1, 51, 1, 1, 1, 1.264 + 1, 1, 1, 1, 1, 1, 1, 1, 1.265 + 52, 1, 1, 1, 50, 50, 50, 50, 1.266 + 50, 50, 50, 50, 50, 50, 1, 1, 1.267 + 1, 1, 1, 1, 1, 1, 1, 1, 1.268 + 1, 1, 1, 1, 1, 1, 1, 1, 1.269 + 1, 1, 1, 1, 1, 1, 1, 1, 1.270 + 1, 1, 1, 1, 1, 1, 1, 1, 1.271 + 1, 1, 1, 1, 1, 1, 1, 1, 1.272 + 1, 1, 1, 1, 1, 1, 1, 1, 1.273 + 1, 1, 1, 1, 1, 1, 1, 1, 1.274 + 1, 1, 1, 1, 1, 1, 1, 1, 1.275 + 1, 53, 1, 54, 1, 54, 54, 54, 1.276 + 54, 54, 1, 1, 1, 1, 1, 1, 1.277 + 1, 1, 1, 1, 1, 1, 1, 1, 1.278 + 1, 1, 1, 1, 54, 1, 1, 1, 1.279 + 1, 1, 1, 1, 1, 1, 1, 1, 1.280 + 1, 1, 1, 1, 1, 1, 1, 1, 1.281 + 1, 1, 1, 1, 1, 1, 55, 1, 1.282 + 55, 55, 55, 55, 55, 1, 1, 1, 1.283 + 1, 1, 1, 1, 1, 1, 1, 1, 1.284 + 1, 1, 1, 1, 1, 1, 1, 55, 1.285 + 1, 1, 1, 1, 1, 1, 1, 1, 1.286 + 1, 1, 1, 1, 56, 1, 1, 57, 1.287 + 58, 58, 58, 58, 58, 58, 58, 58, 1.288 + 58, 1, 59, 60, 60, 60, 60, 60, 1.289 + 60, 60, 60, 60, 1, 61, 61, 61, 1.290 + 61, 61, 1, 1, 1, 1, 1, 1, 1.291 + 1, 1, 1, 1, 1, 1, 1, 1, 1.292 + 1, 1, 1, 1, 61, 1, 1, 1, 1.293 + 1, 1, 1, 1, 1, 1, 1, 1, 1.294 + 62, 1, 1, 1, 1, 1, 1, 1, 1.295 + 1, 1, 1, 1, 1, 1, 1, 1, 1.296 + 1, 1, 1, 1, 1, 1, 1, 1, 1.297 + 1, 1, 1, 1, 1, 1, 1, 1, 1.298 + 1, 1, 1, 1, 1, 1, 1, 1, 1.299 + 1, 1, 1, 1, 1, 1, 1, 1, 1.300 + 1, 1, 1, 1, 1, 1, 1, 1, 1.301 + 1, 1, 1, 1, 1, 1, 1, 1, 1.302 + 1, 1, 1, 1, 1, 1, 1, 1, 1.303 + 1, 1, 1, 1, 1, 1, 1, 1, 1.304 + 1, 63, 1, 61, 61, 61, 61, 61, 1.305 + 1, 1, 1, 1, 1, 1, 1, 1, 1.306 + 1, 1, 1, 1, 1, 1, 1, 1, 1.307 + 1, 1, 61, 1, 1, 1, 1, 1, 1.308 + 1, 1, 1, 1, 1, 1, 62, 1, 1.309 + 1, 1, 60, 60, 60, 60, 60, 60, 1.310 + 60, 60, 60, 60, 1, 1, 1, 1, 1.311 + 1, 1, 1, 1, 1, 1, 1, 1, 1.312 + 1, 1, 1, 1, 1, 1, 1, 1, 1.313 + 1, 1, 1, 1, 1, 1, 1, 1, 1.314 + 1, 1, 1, 1, 1, 1, 1, 1, 1.315 + 1, 1, 1, 1, 1, 1, 1, 1, 1.316 + 1, 1, 1, 1, 1, 1, 1, 1, 1.317 + 1, 1, 1, 1, 1, 1, 1, 1, 1.318 + 1, 1, 1, 1, 1, 1, 1, 63, 1.319 + 1, 64, 1, 64, 64, 64, 64, 64, 1.320 + 1, 1, 1, 1, 1, 1, 1, 1, 1.321 + 1, 1, 1, 1, 1, 1, 1, 1, 1.322 + 1, 1, 64, 1, 1, 1, 1, 1, 1.323 + 1, 1, 1, 1, 1, 1, 1, 1, 1.324 + 1, 1, 1, 1, 1, 1, 1, 1, 1.325 + 1, 1, 1, 1, 65, 1, 65, 65, 1.326 + 65, 65, 65, 1, 1, 1, 1, 1, 1.327 + 1, 1, 1, 1, 1, 1, 1, 1, 1.328 + 1, 1, 1, 1, 1, 65, 1, 66, 1.329 + 1, 1, 1, 1, 1, 1, 1, 1, 1.330 + 1, 1, 1, 1, 1, 67, 68, 68, 1.331 + 68, 68, 68, 68, 68, 68, 68, 1, 1.332 + 69, 69, 69, 69, 69, 69, 69, 69, 1.333 + 69, 69, 69, 69, 69, 69, 69, 69, 1.334 + 69, 69, 69, 69, 69, 69, 69, 69, 1.335 + 69, 69, 1, 1, 1, 1, 1, 1, 1.336 + 69, 69, 69, 69, 69, 69, 69, 69, 1.337 + 69, 69, 69, 69, 69, 69, 69, 69, 1.338 + 69, 69, 69, 69, 69, 69, 69, 69, 1.339 + 69, 69, 1, 70, 1, 1, 1, 1, 1.340 + 1, 1, 1, 1, 1, 1, 71, 71, 1.341 + 1, 71, 71, 71, 71, 71, 71, 71, 1.342 + 71, 71, 71, 1, 1, 1, 1, 1, 1.343 + 1, 1, 71, 71, 71, 71, 71, 71, 1.344 + 71, 71, 71, 71, 71, 71, 71, 71, 1.345 + 71, 71, 71, 71, 71, 71, 71, 71, 1.346 + 71, 71, 71, 71, 1, 1, 1, 1, 1.347 + 71, 1, 71, 71, 71, 71, 71, 71, 1.348 + 71, 71, 71, 71, 71, 71, 71, 71, 1.349 + 71, 71, 71, 71, 71, 71, 71, 71, 1.350 + 71, 71, 71, 71, 1, 72, 72, 72, 1.351 + 72, 72, 1, 1, 1, 1, 1, 1, 1.352 + 1, 1, 1, 1, 1, 1, 1, 1, 1.353 + 1, 1, 1, 1, 72, 1, 1, 1, 1.354 + 1, 1, 1, 1, 1, 1, 1, 1, 1.355 + 73, 1, 1, 1, 1, 1, 1, 1, 1.356 + 1, 1, 1, 1, 1, 1, 1, 1, 1.357 + 1, 1, 1, 1, 1, 1, 1, 1, 1.358 + 1, 1, 1, 1, 1, 1, 1, 1, 1.359 + 1, 1, 1, 1, 1, 1, 1, 1, 1.360 + 1, 1, 1, 1, 1, 1, 1, 1, 1.361 + 1, 1, 1, 1, 1, 1, 1, 1, 1.362 + 1, 1, 1, 1, 1, 1, 1, 1, 1.363 + 1, 1, 1, 1, 1, 1, 1, 1, 1.364 + 1, 1, 1, 1, 1, 1, 1, 1, 1.365 + 1, 74, 1, 72, 72, 72, 72, 72, 1.366 + 1, 1, 1, 1, 1, 1, 1, 1, 1.367 + 1, 1, 1, 1, 1, 1, 1, 1, 1.368 + 1, 1, 72, 1, 1, 1, 1, 1, 1.369 + 1, 1, 1, 1, 1, 1, 73, 1, 1.370 + 1, 1, 75, 75, 75, 75, 75, 75, 1.371 + 75, 75, 75, 75, 1, 1, 1, 1, 1.372 + 1, 1, 1, 1, 1, 1, 1, 1, 1.373 + 1, 1, 1, 1, 1, 1, 1, 1, 1.374 + 1, 1, 1, 1, 1, 1, 1, 1, 1.375 + 1, 1, 1, 1, 1, 1, 1, 1, 1.376 + 1, 1, 1, 1, 1, 1, 1, 1, 1.377 + 1, 1, 1, 1, 1, 1, 1, 1, 1.378 + 1, 1, 1, 1, 1, 1, 1, 1, 1.379 + 1, 1, 1, 1, 1, 1, 1, 74, 1.380 + 1, 76, 76, 76, 76, 76, 1, 1, 1.381 + 1, 1, 1, 1, 1, 1, 1, 1, 1.382 + 1, 1, 1, 1, 1, 1, 1, 1, 1.383 + 76, 1, 1, 1, 1, 1, 1, 1, 1.384 + 1, 1, 1, 1, 77, 1, 1, 1, 1.385 + 1, 1, 1, 1, 1, 1, 1, 1, 1.386 + 1, 1, 1, 1, 1, 1, 1, 1, 1.387 + 1, 1, 1, 1, 1, 1, 1, 1, 1.388 + 1, 1, 1, 1, 1, 1, 1, 1, 1.389 + 1, 1, 1, 1, 1, 1, 1, 1, 1.390 + 1, 1, 1, 1, 1, 78, 1, 0, 1.391 + 0, 0, 0, 0, 1, 1, 1, 1, 1.392 + 1, 1, 1, 1, 1, 1, 1, 1, 1.393 + 1, 1, 1, 1, 1, 1, 0, 1, 1.394 + 1, 1, 1, 1, 1, 1, 1, 1, 1.395 + 1, 1, 1, 1, 1, 1, 1, 1, 1.396 + 1, 1, 1, 1, 1, 1, 1, 1, 1.397 + 1, 1, 1, 1, 1, 1, 1, 1, 1.398 + 1, 1, 1, 1, 1, 1, 1, 1, 1.399 + 1, 1, 1, 1, 1, 1, 1, 1, 1.400 + 1, 1, 1, 1, 1, 1, 1, 1, 1.401 + 1, 1, 1, 1, 1, 1, 1, 1, 1.402 + 1, 1, 1, 1, 1, 1, 1, 1, 1.403 + 1, 1, 1, 1, 1, 1, 1, 1, 1.404 + 1, 1, 1, 1, 1, 1, 1, 1, 1.405 + 1, 2, 1, 1, 0 1.406 +}; 1.407 + 1.408 +static const char _deserialize_json_trans_targs[] = { 1.409 + 1, 0, 2, 2, 3, 4, 18, 24, 1.410 + 37, 5, 12, 6, 7, 8, 9, 11, 1.411 + 9, 11, 10, 2, 44, 10, 44, 13, 1.412 + 14, 15, 16, 17, 16, 17, 10, 2, 1.413 + 44, 19, 20, 21, 22, 23, 10, 2, 1.414 + 44, 23, 25, 31, 26, 27, 28, 29, 1.415 + 30, 29, 30, 10, 2, 44, 32, 33, 1.416 + 34, 35, 36, 35, 36, 10, 2, 44, 1.417 + 38, 39, 40, 42, 43, 41, 10, 41, 1.418 + 10, 2, 44, 43, 44, 45, 46 1.419 +}; 1.420 + 1.421 +static const char _deserialize_json_trans_actions[] = { 1.422 + 0, 0, 1, 0, 0, 0, 0, 0, 1.423 + 0, 0, 0, 0, 0, 2, 2, 2, 1.424 + 0, 0, 3, 3, 4, 0, 5, 0, 1.425 + 0, 2, 2, 2, 0, 0, 6, 6, 1.426 + 7, 0, 0, 0, 2, 2, 8, 8, 1.427 + 9, 0, 0, 0, 0, 0, 2, 2, 1.428 + 2, 0, 0, 10, 10, 11, 0, 0, 1.429 + 2, 2, 2, 0, 0, 12, 12, 13, 1.430 + 0, 0, 0, 2, 2, 2, 14, 0, 1.431 + 15, 15, 16, 0, 0, 0, 0 1.432 +}; 1.433 + 1.434 +static const int deserialize_json_start = 1; 1.435 +static const int deserialize_json_first_final = 44; 1.436 +static const int deserialize_json_error = 0; 1.437 + 1.438 +static const int deserialize_json_en_main = 1; 1.439 + 1.440 + 1.441 +#line 97 "../../src/hb-buffer-deserialize-json.rl" 1.442 + 1.443 + 1.444 +static hb_bool_t 1.445 +_hb_buffer_deserialize_glyphs_json (hb_buffer_t *buffer, 1.446 + const char *buf, 1.447 + unsigned int buf_len, 1.448 + const char **end_ptr, 1.449 + hb_font_t *font) 1.450 +{ 1.451 + const char *p = buf, *pe = buf + buf_len; 1.452 + 1.453 + /* Ensure we have positions. */ 1.454 + (void) hb_buffer_get_glyph_positions (buffer, NULL); 1.455 + 1.456 + while (p < pe && ISSPACE (*p)) 1.457 + p++; 1.458 + if (p < pe && *p == (buffer->len ? ',' : '[')) 1.459 + { 1.460 + *end_ptr = ++p; 1.461 + } 1.462 + 1.463 + const char *tok = NULL; 1.464 + int cs; 1.465 + hb_glyph_info_t info; 1.466 + hb_glyph_position_t pos; 1.467 + 1.468 +#line 466 "hb-buffer-deserialize-json.hh.tmp" 1.469 + { 1.470 + cs = deserialize_json_start; 1.471 + } 1.472 + 1.473 +#line 471 "hb-buffer-deserialize-json.hh.tmp" 1.474 + { 1.475 + int _slen; 1.476 + int _trans; 1.477 + const unsigned char *_keys; 1.478 + const char *_inds; 1.479 + if ( p == pe ) 1.480 + goto _test_eof; 1.481 + if ( cs == 0 ) 1.482 + goto _out; 1.483 +_resume: 1.484 + _keys = _deserialize_json_trans_keys + (cs<<1); 1.485 + _inds = _deserialize_json_indicies + _deserialize_json_index_offsets[cs]; 1.486 + 1.487 + _slen = _deserialize_json_key_spans[cs]; 1.488 + _trans = _inds[ _slen > 0 && _keys[0] <=(*p) && 1.489 + (*p) <= _keys[1] ? 1.490 + (*p) - _keys[0] : _slen ]; 1.491 + 1.492 + cs = _deserialize_json_trans_targs[_trans]; 1.493 + 1.494 + if ( _deserialize_json_trans_actions[_trans] == 0 ) 1.495 + goto _again; 1.496 + 1.497 + switch ( _deserialize_json_trans_actions[_trans] ) { 1.498 + case 1: 1.499 +#line 38 "../../src/hb-buffer-deserialize-json.rl" 1.500 + { 1.501 + memset (&info, 0, sizeof (info)); 1.502 + memset (&pos , 0, sizeof (pos )); 1.503 +} 1.504 + break; 1.505 + case 5: 1.506 +#line 43 "../../src/hb-buffer-deserialize-json.rl" 1.507 + { 1.508 + buffer->add_info (info); 1.509 + if (buffer->in_error) 1.510 + return false; 1.511 + buffer->pos[buffer->len - 1] = pos; 1.512 + *end_ptr = p; 1.513 +} 1.514 + break; 1.515 + case 2: 1.516 +#line 51 "../../src/hb-buffer-deserialize-json.rl" 1.517 + { 1.518 + tok = p; 1.519 +} 1.520 + break; 1.521 + case 14: 1.522 +#line 55 "../../src/hb-buffer-deserialize-json.rl" 1.523 + { 1.524 + if (!hb_font_glyph_from_string (font, 1.525 + tok, p - tok, 1.526 + &info.codepoint)) 1.527 + return false; 1.528 +} 1.529 + break; 1.530 + case 15: 1.531 +#line 62 "../../src/hb-buffer-deserialize-json.rl" 1.532 + { if (!parse_uint (tok, p, &info.codepoint)) return false; } 1.533 + break; 1.534 + case 8: 1.535 +#line 63 "../../src/hb-buffer-deserialize-json.rl" 1.536 + { if (!parse_uint (tok, p, &info.cluster )) return false; } 1.537 + break; 1.538 + case 10: 1.539 +#line 64 "../../src/hb-buffer-deserialize-json.rl" 1.540 + { if (!parse_int (tok, p, &pos.x_offset )) return false; } 1.541 + break; 1.542 + case 12: 1.543 +#line 65 "../../src/hb-buffer-deserialize-json.rl" 1.544 + { if (!parse_int (tok, p, &pos.y_offset )) return false; } 1.545 + break; 1.546 + case 3: 1.547 +#line 66 "../../src/hb-buffer-deserialize-json.rl" 1.548 + { if (!parse_int (tok, p, &pos.x_advance)) return false; } 1.549 + break; 1.550 + case 6: 1.551 +#line 67 "../../src/hb-buffer-deserialize-json.rl" 1.552 + { if (!parse_int (tok, p, &pos.y_advance)) return false; } 1.553 + break; 1.554 + case 16: 1.555 +#line 62 "../../src/hb-buffer-deserialize-json.rl" 1.556 + { if (!parse_uint (tok, p, &info.codepoint)) return false; } 1.557 +#line 43 "../../src/hb-buffer-deserialize-json.rl" 1.558 + { 1.559 + buffer->add_info (info); 1.560 + if (buffer->in_error) 1.561 + return false; 1.562 + buffer->pos[buffer->len - 1] = pos; 1.563 + *end_ptr = p; 1.564 +} 1.565 + break; 1.566 + case 9: 1.567 +#line 63 "../../src/hb-buffer-deserialize-json.rl" 1.568 + { if (!parse_uint (tok, p, &info.cluster )) return false; } 1.569 +#line 43 "../../src/hb-buffer-deserialize-json.rl" 1.570 + { 1.571 + buffer->add_info (info); 1.572 + if (buffer->in_error) 1.573 + return false; 1.574 + buffer->pos[buffer->len - 1] = pos; 1.575 + *end_ptr = p; 1.576 +} 1.577 + break; 1.578 + case 11: 1.579 +#line 64 "../../src/hb-buffer-deserialize-json.rl" 1.580 + { if (!parse_int (tok, p, &pos.x_offset )) return false; } 1.581 +#line 43 "../../src/hb-buffer-deserialize-json.rl" 1.582 + { 1.583 + buffer->add_info (info); 1.584 + if (buffer->in_error) 1.585 + return false; 1.586 + buffer->pos[buffer->len - 1] = pos; 1.587 + *end_ptr = p; 1.588 +} 1.589 + break; 1.590 + case 13: 1.591 +#line 65 "../../src/hb-buffer-deserialize-json.rl" 1.592 + { if (!parse_int (tok, p, &pos.y_offset )) return false; } 1.593 +#line 43 "../../src/hb-buffer-deserialize-json.rl" 1.594 + { 1.595 + buffer->add_info (info); 1.596 + if (buffer->in_error) 1.597 + return false; 1.598 + buffer->pos[buffer->len - 1] = pos; 1.599 + *end_ptr = p; 1.600 +} 1.601 + break; 1.602 + case 4: 1.603 +#line 66 "../../src/hb-buffer-deserialize-json.rl" 1.604 + { if (!parse_int (tok, p, &pos.x_advance)) return false; } 1.605 +#line 43 "../../src/hb-buffer-deserialize-json.rl" 1.606 + { 1.607 + buffer->add_info (info); 1.608 + if (buffer->in_error) 1.609 + return false; 1.610 + buffer->pos[buffer->len - 1] = pos; 1.611 + *end_ptr = p; 1.612 +} 1.613 + break; 1.614 + case 7: 1.615 +#line 67 "../../src/hb-buffer-deserialize-json.rl" 1.616 + { if (!parse_int (tok, p, &pos.y_advance)) return false; } 1.617 +#line 43 "../../src/hb-buffer-deserialize-json.rl" 1.618 + { 1.619 + buffer->add_info (info); 1.620 + if (buffer->in_error) 1.621 + return false; 1.622 + buffer->pos[buffer->len - 1] = pos; 1.623 + *end_ptr = p; 1.624 +} 1.625 + break; 1.626 +#line 624 "hb-buffer-deserialize-json.hh.tmp" 1.627 + } 1.628 + 1.629 +_again: 1.630 + if ( cs == 0 ) 1.631 + goto _out; 1.632 + if ( ++p != pe ) 1.633 + goto _resume; 1.634 + _test_eof: {} 1.635 + _out: {} 1.636 + } 1.637 + 1.638 +#line 125 "../../src/hb-buffer-deserialize-json.rl" 1.639 + 1.640 + 1.641 + *end_ptr = p; 1.642 + 1.643 + return p == pe && *(p-1) != ']'; 1.644 +} 1.645 + 1.646 +#endif /* HB_BUFFER_DESERIALIZE_JSON_HH */