hb-buffer-deserialize-json.hh (20147B)
1 #line 1 "hb-buffer-deserialize-json.rl" 2 /* 3 * Copyright © 2013 Google, Inc. 4 * 5 * This is part of HarfBuzz, a text shaping library. 6 * 7 * Permission is hereby granted, without written agreement and without 8 * license or royalty fees, to use, copy, modify, and distribute this 9 * software and its documentation for any purpose, provided that the 10 * above copyright notice and the following two paragraphs appear in 11 * all copies of this software. 12 * 13 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR 14 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 15 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN 16 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 17 * DAMAGE. 18 * 19 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, 20 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 21 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS 22 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO 23 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 24 * 25 * Google Author(s): Behdad Esfahbod 26 */ 27 28 #ifndef HB_BUFFER_DESERIALIZE_JSON_HH 29 #define HB_BUFFER_DESERIALIZE_JSON_HH 30 31 #include "hb.hh" 32 33 34 #line 33 "hb-buffer-deserialize-json.hh" 35 static const unsigned char _deserialize_json_trans_keys[] = { 36 0u, 0u, 9u, 34u, 97u, 121u, 120u, 121u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 37 9u, 125u, 9u, 125u, 9u, 93u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 38 9u, 125u, 9u, 125u, 108u, 108u, 34u, 34u, 9u, 58u, 9u, 57u, 9u, 125u, 9u, 125u, 39 120u, 121u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 34u, 34u, 40 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 108u, 108u, 34u, 34u, 9u, 58u, 41 9u, 57u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 34u, 92u, 9u, 125u, 42 34u, 92u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 43 34u, 34u, 9u, 58u, 9u, 57u, 9u, 125u, 98u, 98u, 9u, 123u, 9u, 123u, 9u, 123u, 44 0 45 }; 46 47 static const char _deserialize_json_key_spans[] = { 48 0, 26, 25, 2, 1, 50, 49, 10, 49 117, 117, 85, 117, 1, 50, 49, 10, 50 117, 117, 1, 1, 50, 49, 117, 117, 51 2, 1, 50, 49, 10, 117, 117, 1, 52 50, 49, 10, 117, 117, 1, 1, 50, 53 49, 117, 117, 1, 50, 49, 59, 117, 54 59, 117, 117, 1, 50, 49, 10, 117, 55 1, 50, 49, 117, 1, 115, 115, 115 56 }; 57 58 static const short _deserialize_json_index_offsets[] = { 59 0, 0, 27, 53, 56, 58, 109, 159, 60 170, 288, 406, 492, 610, 612, 663, 713, 61 724, 842, 960, 962, 964, 1015, 1065, 1183, 62 1301, 1304, 1306, 1357, 1407, 1418, 1536, 1654, 63 1656, 1707, 1757, 1768, 1886, 2004, 2006, 2008, 64 2059, 2109, 2227, 2345, 2347, 2398, 2448, 2508, 65 2626, 2686, 2804, 2922, 2924, 2975, 3025, 3036, 66 3154, 3156, 3207, 3257, 3375, 3377, 3493, 3609 67 }; 68 69 static const char _deserialize_json_indicies[] = { 70 0, 0, 0, 0, 0, 1, 1, 71 1, 1, 1, 1, 1, 1, 1, 1, 72 1, 1, 1, 1, 1, 1, 1, 1, 73 0, 1, 2, 1, 3, 1, 4, 5, 74 1, 6, 7, 8, 1, 1, 1, 1, 75 1, 1, 1, 1, 1, 1, 1, 1, 76 9, 1, 8, 10, 10, 1, 11, 12, 77 1, 13, 1, 13, 13, 13, 13, 13, 78 1, 1, 1, 1, 1, 1, 1, 1, 79 1, 1, 1, 1, 1, 1, 1, 1, 80 1, 1, 13, 1, 1, 1, 1, 1, 81 1, 1, 1, 1, 1, 1, 1, 1, 82 1, 1, 1, 1, 1, 1, 1, 1, 83 1, 1, 1, 1, 14, 1, 14, 14, 84 14, 14, 14, 1, 1, 1, 1, 1, 85 1, 1, 1, 1, 1, 1, 1, 1, 86 1, 1, 1, 1, 1, 14, 1, 1, 87 1, 1, 1, 1, 1, 1, 1, 1, 88 1, 1, 15, 1, 1, 16, 17, 17, 89 17, 17, 17, 17, 17, 17, 17, 1, 90 18, 19, 19, 19, 19, 19, 19, 19, 91 19, 19, 1, 20, 20, 20, 20, 20, 92 1, 1, 1, 1, 1, 1, 1, 1, 93 1, 1, 1, 1, 1, 1, 1, 1, 94 1, 1, 20, 1, 1, 1, 1, 1, 95 1, 1, 1, 1, 1, 1, 21, 1, 96 1, 1, 1, 1, 1, 1, 1, 1, 97 1, 1, 1, 1, 1, 1, 1, 1, 98 1, 1, 1, 1, 1, 1, 1, 1, 99 1, 1, 1, 1, 1, 1, 1, 1, 100 1, 1, 1, 1, 1, 1, 1, 1, 101 1, 1, 1, 1, 1, 1, 1, 1, 102 1, 1, 1, 1, 1, 1, 1, 1, 103 1, 1, 1, 1, 1, 1, 1, 1, 104 1, 1, 1, 1, 1, 1, 1, 1, 105 1, 1, 1, 1, 1, 1, 1, 22, 106 1, 23, 23, 23, 23, 23, 1, 1, 107 1, 1, 1, 1, 1, 1, 1, 1, 108 1, 1, 1, 1, 1, 1, 1, 1, 109 23, 1, 1, 1, 1, 1, 1, 1, 110 1, 1, 1, 1, 0, 1, 1, 1, 111 1, 1, 1, 1, 1, 1, 1, 1, 112 1, 1, 1, 1, 1, 1, 1, 1, 113 1, 1, 1, 1, 1, 1, 1, 1, 114 1, 1, 1, 1, 1, 1, 1, 1, 115 1, 1, 1, 1, 1, 1, 1, 1, 116 1, 1, 1, 1, 1, 1, 1, 1, 117 1, 1, 1, 1, 1, 1, 1, 1, 118 1, 1, 1, 1, 1, 1, 1, 1, 119 1, 1, 1, 1, 1, 1, 1, 1, 120 1, 1, 1, 1, 1, 24, 1, 24, 121 24, 24, 24, 24, 1, 1, 1, 1, 122 1, 1, 1, 1, 1, 1, 1, 1, 123 1, 1, 1, 1, 1, 1, 24, 1, 124 1, 1, 1, 1, 1, 1, 1, 1, 125 1, 1, 25, 1, 1, 1, 1, 1, 126 1, 1, 1, 1, 1, 1, 1, 1, 127 1, 1, 1, 1, 1, 1, 1, 1, 128 1, 1, 1, 1, 1, 1, 1, 1, 129 1, 1, 1, 1, 1, 1, 1, 1, 130 1, 1, 1, 1, 1, 1, 1, 1, 131 1, 1, 1, 25, 1, 20, 20, 20, 132 20, 20, 1, 1, 1, 1, 1, 1, 133 1, 1, 1, 1, 1, 1, 1, 1, 134 1, 1, 1, 1, 20, 1, 1, 1, 135 1, 1, 1, 1, 1, 1, 1, 1, 136 21, 1, 1, 1, 19, 19, 19, 19, 137 19, 19, 19, 19, 19, 19, 1, 1, 138 1, 1, 1, 1, 1, 1, 1, 1, 139 1, 1, 1, 1, 1, 1, 1, 1, 140 1, 1, 1, 1, 1, 1, 1, 1, 141 1, 1, 1, 1, 1, 1, 1, 1, 142 1, 1, 1, 1, 1, 1, 1, 1, 143 1, 1, 1, 1, 1, 1, 1, 1, 144 1, 1, 1, 1, 1, 1, 1, 1, 145 1, 1, 1, 1, 1, 1, 1, 1, 146 1, 22, 1, 26, 1, 26, 26, 26, 147 26, 26, 1, 1, 1, 1, 1, 1, 148 1, 1, 1, 1, 1, 1, 1, 1, 149 1, 1, 1, 1, 26, 1, 1, 1, 150 1, 1, 1, 1, 1, 1, 1, 1, 151 1, 1, 1, 1, 1, 1, 1, 1, 152 1, 1, 1, 1, 1, 1, 27, 1, 153 27, 27, 27, 27, 27, 1, 1, 1, 154 1, 1, 1, 1, 1, 1, 1, 1, 155 1, 1, 1, 1, 1, 1, 1, 27, 156 1, 1, 1, 1, 1, 1, 1, 1, 157 1, 1, 1, 1, 28, 1, 1, 29, 158 30, 30, 30, 30, 30, 30, 30, 30, 159 30, 1, 31, 32, 32, 32, 32, 32, 160 32, 32, 32, 32, 1, 33, 33, 33, 161 33, 33, 1, 1, 1, 1, 1, 1, 162 1, 1, 1, 1, 1, 1, 1, 1, 163 1, 1, 1, 1, 33, 1, 1, 1, 164 1, 1, 1, 1, 1, 1, 1, 1, 165 34, 1, 1, 1, 1, 1, 1, 1, 166 1, 1, 1, 1, 1, 1, 1, 1, 167 1, 1, 1, 1, 1, 1, 1, 1, 168 1, 1, 1, 1, 1, 1, 1, 1, 169 1, 1, 1, 1, 1, 1, 1, 1, 170 1, 1, 1, 1, 1, 1, 1, 1, 171 1, 1, 1, 1, 1, 1, 1, 1, 172 1, 1, 1, 1, 1, 1, 1, 1, 173 1, 1, 1, 1, 1, 1, 1, 1, 174 1, 1, 1, 1, 1, 1, 1, 1, 175 1, 35, 1, 33, 33, 33, 33, 33, 176 1, 1, 1, 1, 1, 1, 1, 1, 177 1, 1, 1, 1, 1, 1, 1, 1, 178 1, 1, 33, 1, 1, 1, 1, 1, 179 1, 1, 1, 1, 1, 1, 34, 1, 180 1, 1, 32, 32, 32, 32, 32, 32, 181 32, 32, 32, 32, 1, 1, 1, 1, 182 1, 1, 1, 1, 1, 1, 1, 1, 183 1, 1, 1, 1, 1, 1, 1, 1, 184 1, 1, 1, 1, 1, 1, 1, 1, 185 1, 1, 1, 1, 1, 1, 1, 1, 186 1, 1, 1, 1, 1, 1, 1, 1, 187 1, 1, 1, 1, 1, 1, 1, 1, 188 1, 1, 1, 1, 1, 1, 1, 1, 189 1, 1, 1, 1, 1, 1, 1, 35, 190 1, 36, 1, 37, 1, 37, 37, 37, 191 37, 37, 1, 1, 1, 1, 1, 1, 192 1, 1, 1, 1, 1, 1, 1, 1, 193 1, 1, 1, 1, 37, 1, 1, 1, 194 1, 1, 1, 1, 1, 1, 1, 1, 195 1, 1, 1, 1, 1, 1, 1, 1, 196 1, 1, 1, 1, 1, 1, 38, 1, 197 38, 38, 38, 38, 38, 1, 1, 1, 198 1, 1, 1, 1, 1, 1, 1, 1, 199 1, 1, 1, 1, 1, 1, 1, 38, 200 1, 1, 1, 1, 1, 1, 1, 1, 201 1, 1, 1, 1, 1, 1, 1, 39, 202 40, 40, 40, 40, 40, 40, 40, 40, 203 40, 1, 41, 41, 41, 41, 41, 1, 204 1, 1, 1, 1, 1, 1, 1, 1, 205 1, 1, 1, 1, 1, 1, 1, 1, 206 1, 41, 1, 1, 1, 1, 1, 1, 207 1, 1, 1, 1, 1, 42, 1, 1, 208 1, 1, 1, 1, 1, 1, 1, 1, 209 1, 1, 1, 1, 1, 1, 1, 1, 210 1, 1, 1, 1, 1, 1, 1, 1, 211 1, 1, 1, 1, 1, 1, 1, 1, 212 1, 1, 1, 1, 1, 1, 1, 1, 213 1, 1, 1, 1, 1, 1, 1, 1, 214 1, 1, 1, 1, 1, 1, 1, 1, 215 1, 1, 1, 1, 1, 1, 1, 1, 216 1, 1, 1, 1, 1, 1, 1, 1, 217 1, 1, 1, 1, 1, 1, 43, 1, 218 41, 41, 41, 41, 41, 1, 1, 1, 219 1, 1, 1, 1, 1, 1, 1, 1, 220 1, 1, 1, 1, 1, 1, 1, 41, 221 1, 1, 1, 1, 1, 1, 1, 1, 222 1, 1, 1, 42, 1, 1, 1, 44, 223 44, 44, 44, 44, 44, 44, 44, 44, 224 44, 1, 1, 1, 1, 1, 1, 1, 225 1, 1, 1, 1, 1, 1, 1, 1, 226 1, 1, 1, 1, 1, 1, 1, 1, 227 1, 1, 1, 1, 1, 1, 1, 1, 228 1, 1, 1, 1, 1, 1, 1, 1, 229 1, 1, 1, 1, 1, 1, 1, 1, 230 1, 1, 1, 1, 1, 1, 1, 1, 231 1, 1, 1, 1, 1, 1, 1, 1, 232 1, 1, 1, 1, 43, 1, 45, 46, 233 1, 47, 1, 47, 47, 47, 47, 47, 234 1, 1, 1, 1, 1, 1, 1, 1, 235 1, 1, 1, 1, 1, 1, 1, 1, 236 1, 1, 47, 1, 1, 1, 1, 1, 237 1, 1, 1, 1, 1, 1, 1, 1, 238 1, 1, 1, 1, 1, 1, 1, 1, 239 1, 1, 1, 1, 48, 1, 48, 48, 240 48, 48, 48, 1, 1, 1, 1, 1, 241 1, 1, 1, 1, 1, 1, 1, 1, 242 1, 1, 1, 1, 1, 48, 1, 1, 243 1, 1, 1, 1, 1, 1, 1, 1, 244 1, 1, 49, 1, 1, 50, 51, 51, 245 51, 51, 51, 51, 51, 51, 51, 1, 246 52, 53, 53, 53, 53, 53, 53, 53, 247 53, 53, 1, 54, 54, 54, 54, 54, 248 1, 1, 1, 1, 1, 1, 1, 1, 249 1, 1, 1, 1, 1, 1, 1, 1, 250 1, 1, 54, 1, 1, 1, 1, 1, 251 1, 1, 1, 1, 1, 1, 55, 1, 252 1, 1, 1, 1, 1, 1, 1, 1, 253 1, 1, 1, 1, 1, 1, 1, 1, 254 1, 1, 1, 1, 1, 1, 1, 1, 255 1, 1, 1, 1, 1, 1, 1, 1, 256 1, 1, 1, 1, 1, 1, 1, 1, 257 1, 1, 1, 1, 1, 1, 1, 1, 258 1, 1, 1, 1, 1, 1, 1, 1, 259 1, 1, 1, 1, 1, 1, 1, 1, 260 1, 1, 1, 1, 1, 1, 1, 1, 261 1, 1, 1, 1, 1, 1, 1, 56, 262 1, 54, 54, 54, 54, 54, 1, 1, 263 1, 1, 1, 1, 1, 1, 1, 1, 264 1, 1, 1, 1, 1, 1, 1, 1, 265 54, 1, 1, 1, 1, 1, 1, 1, 266 1, 1, 1, 1, 55, 1, 1, 1, 267 53, 53, 53, 53, 53, 53, 53, 53, 268 53, 53, 1, 1, 1, 1, 1, 1, 269 1, 1, 1, 1, 1, 1, 1, 1, 270 1, 1, 1, 1, 1, 1, 1, 1, 271 1, 1, 1, 1, 1, 1, 1, 1, 272 1, 1, 1, 1, 1, 1, 1, 1, 273 1, 1, 1, 1, 1, 1, 1, 1, 274 1, 1, 1, 1, 1, 1, 1, 1, 275 1, 1, 1, 1, 1, 1, 1, 1, 276 1, 1, 1, 1, 1, 56, 1, 57, 277 1, 57, 57, 57, 57, 57, 1, 1, 278 1, 1, 1, 1, 1, 1, 1, 1, 279 1, 1, 1, 1, 1, 1, 1, 1, 280 57, 1, 1, 1, 1, 1, 1, 1, 281 1, 1, 1, 1, 1, 1, 1, 1, 282 1, 1, 1, 1, 1, 1, 1, 1, 283 1, 1, 58, 1, 58, 58, 58, 58, 284 58, 1, 1, 1, 1, 1, 1, 1, 285 1, 1, 1, 1, 1, 1, 1, 1, 286 1, 1, 1, 58, 1, 1, 1, 1, 287 1, 1, 1, 1, 1, 1, 1, 1, 288 59, 1, 1, 60, 61, 61, 61, 61, 289 61, 61, 61, 61, 61, 1, 62, 63, 290 63, 63, 63, 63, 63, 63, 63, 63, 291 1, 64, 64, 64, 64, 64, 1, 1, 292 1, 1, 1, 1, 1, 1, 1, 1, 293 1, 1, 1, 1, 1, 1, 1, 1, 294 64, 1, 1, 1, 1, 1, 1, 1, 295 1, 1, 1, 1, 65, 1, 1, 1, 296 1, 1, 1, 1, 1, 1, 1, 1, 297 1, 1, 1, 1, 1, 1, 1, 1, 298 1, 1, 1, 1, 1, 1, 1, 1, 299 1, 1, 1, 1, 1, 1, 1, 1, 300 1, 1, 1, 1, 1, 1, 1, 1, 301 1, 1, 1, 1, 1, 1, 1, 1, 302 1, 1, 1, 1, 1, 1, 1, 1, 303 1, 1, 1, 1, 1, 1, 1, 1, 304 1, 1, 1, 1, 1, 1, 1, 1, 305 1, 1, 1, 1, 1, 66, 1, 64, 306 64, 64, 64, 64, 1, 1, 1, 1, 307 1, 1, 1, 1, 1, 1, 1, 1, 308 1, 1, 1, 1, 1, 1, 64, 1, 309 1, 1, 1, 1, 1, 1, 1, 1, 310 1, 1, 65, 1, 1, 1, 63, 63, 311 63, 63, 63, 63, 63, 63, 63, 63, 312 1, 1, 1, 1, 1, 1, 1, 1, 313 1, 1, 1, 1, 1, 1, 1, 1, 314 1, 1, 1, 1, 1, 1, 1, 1, 315 1, 1, 1, 1, 1, 1, 1, 1, 316 1, 1, 1, 1, 1, 1, 1, 1, 317 1, 1, 1, 1, 1, 1, 1, 1, 318 1, 1, 1, 1, 1, 1, 1, 1, 319 1, 1, 1, 1, 1, 1, 1, 1, 320 1, 1, 1, 66, 1, 67, 1, 68, 321 1, 68, 68, 68, 68, 68, 1, 1, 322 1, 1, 1, 1, 1, 1, 1, 1, 323 1, 1, 1, 1, 1, 1, 1, 1, 324 68, 1, 1, 1, 1, 1, 1, 1, 325 1, 1, 1, 1, 1, 1, 1, 1, 326 1, 1, 1, 1, 1, 1, 1, 1, 327 1, 1, 69, 1, 69, 69, 69, 69, 328 69, 1, 1, 1, 1, 1, 1, 1, 329 1, 1, 1, 1, 1, 1, 1, 1, 330 1, 1, 1, 69, 1, 1, 1, 1, 331 1, 1, 1, 1, 1, 1, 1, 1, 332 1, 1, 1, 70, 71, 71, 71, 71, 333 71, 71, 71, 71, 71, 1, 72, 72, 334 72, 72, 72, 1, 1, 1, 1, 1, 335 1, 1, 1, 1, 1, 1, 1, 1, 336 1, 1, 1, 1, 1, 72, 1, 1, 337 1, 1, 1, 1, 1, 1, 1, 1, 338 1, 73, 1, 1, 1, 1, 1, 1, 339 1, 1, 1, 1, 1, 1, 1, 1, 340 1, 1, 1, 1, 1, 1, 1, 1, 341 1, 1, 1, 1, 1, 1, 1, 1, 342 1, 1, 1, 1, 1, 1, 1, 1, 343 1, 1, 1, 1, 1, 1, 1, 1, 344 1, 1, 1, 1, 1, 1, 1, 1, 345 1, 1, 1, 1, 1, 1, 1, 1, 346 1, 1, 1, 1, 1, 1, 1, 1, 347 1, 1, 1, 1, 1, 1, 1, 1, 348 1, 1, 74, 1, 72, 72, 72, 72, 349 72, 1, 1, 1, 1, 1, 1, 1, 350 1, 1, 1, 1, 1, 1, 1, 1, 351 1, 1, 1, 72, 1, 1, 1, 1, 352 1, 1, 1, 1, 1, 1, 1, 73, 353 1, 1, 1, 75, 75, 75, 75, 75, 354 75, 75, 75, 75, 75, 1, 1, 1, 355 1, 1, 1, 1, 1, 1, 1, 1, 356 1, 1, 1, 1, 1, 1, 1, 1, 357 1, 1, 1, 1, 1, 1, 1, 1, 358 1, 1, 1, 1, 1, 1, 1, 1, 359 1, 1, 1, 1, 1, 1, 1, 1, 360 1, 1, 1, 1, 1, 1, 1, 1, 361 1, 1, 1, 1, 1, 1, 1, 1, 362 1, 1, 1, 1, 1, 1, 1, 1, 363 74, 1, 76, 1, 76, 76, 76, 76, 364 76, 1, 1, 1, 1, 1, 1, 1, 365 1, 1, 1, 1, 1, 1, 1, 1, 366 1, 1, 1, 76, 1, 1, 1, 1, 367 1, 1, 1, 1, 1, 1, 1, 1, 368 1, 1, 1, 1, 1, 1, 1, 1, 369 1, 1, 1, 1, 1, 77, 1, 77, 370 77, 77, 77, 77, 1, 1, 1, 1, 371 1, 1, 1, 1, 1, 1, 1, 1, 372 1, 1, 1, 1, 1, 1, 77, 1, 373 78, 1, 1, 1, 1, 1, 1, 1, 374 1, 1, 1, 1, 1, 1, 79, 80, 375 80, 80, 80, 80, 80, 80, 80, 80, 376 1, 82, 81, 81, 81, 81, 81, 81, 377 81, 81, 81, 81, 81, 81, 81, 81, 378 81, 81, 81, 81, 81, 81, 81, 81, 379 81, 81, 81, 81, 81, 81, 81, 81, 380 81, 81, 81, 81, 81, 81, 81, 81, 381 81, 81, 81, 81, 81, 81, 81, 81, 382 81, 81, 81, 81, 81, 81, 81, 81, 383 81, 81, 81, 83, 81, 84, 84, 84, 384 84, 84, 1, 1, 1, 1, 1, 1, 385 1, 1, 1, 1, 1, 1, 1, 1, 386 1, 1, 1, 1, 84, 1, 1, 1, 387 1, 1, 1, 1, 1, 1, 1, 1, 388 85, 1, 1, 1, 1, 1, 1, 1, 389 1, 1, 1, 1, 1, 1, 1, 1, 390 1, 1, 1, 1, 1, 1, 1, 1, 391 1, 1, 1, 1, 1, 1, 1, 1, 392 1, 1, 1, 1, 1, 1, 1, 1, 393 1, 1, 1, 1, 1, 1, 1, 1, 394 1, 1, 1, 1, 1, 1, 1, 1, 395 1, 1, 1, 1, 1, 1, 1, 1, 396 1, 1, 1, 1, 1, 1, 1, 1, 397 1, 1, 1, 1, 1, 1, 1, 1, 398 1, 86, 1, 81, 1, 1, 1, 1, 399 1, 1, 1, 1, 1, 1, 1, 1, 400 1, 1, 1, 1, 1, 1, 1, 1, 401 1, 1, 1, 1, 1, 1, 1, 1, 402 1, 1, 1, 1, 1, 1, 1, 1, 403 1, 1, 1, 1, 1, 1, 1, 1, 404 1, 1, 1, 1, 1, 1, 1, 1, 405 1, 1, 1, 1, 1, 81, 1, 87, 406 87, 87, 87, 87, 1, 1, 1, 1, 407 1, 1, 1, 1, 1, 1, 1, 1, 408 1, 1, 1, 1, 1, 1, 87, 1, 409 1, 1, 1, 1, 1, 1, 1, 1, 410 1, 1, 88, 1, 1, 1, 1, 1, 411 1, 1, 1, 1, 1, 1, 1, 1, 412 1, 1, 1, 1, 1, 1, 1, 1, 413 1, 1, 1, 1, 1, 1, 1, 1, 414 1, 1, 1, 1, 1, 1, 1, 1, 415 1, 1, 1, 1, 1, 1, 1, 1, 416 1, 1, 1, 1, 1, 1, 1, 1, 417 1, 1, 1, 1, 1, 1, 1, 1, 418 1, 1, 1, 1, 1, 1, 1, 1, 419 1, 1, 1, 1, 1, 1, 1, 1, 420 1, 1, 1, 89, 1, 87, 87, 87, 421 87, 87, 1, 1, 1, 1, 1, 1, 422 1, 1, 1, 1, 1, 1, 1, 1, 423 1, 1, 1, 1, 87, 1, 1, 1, 424 1, 1, 1, 1, 1, 1, 1, 1, 425 88, 1, 1, 1, 90, 90, 90, 90, 426 90, 90, 90, 90, 90, 90, 1, 1, 427 1, 1, 1, 1, 1, 1, 1, 1, 428 1, 1, 1, 1, 1, 1, 1, 1, 429 1, 1, 1, 1, 1, 1, 1, 1, 430 1, 1, 1, 1, 1, 1, 1, 1, 431 1, 1, 1, 1, 1, 1, 1, 1, 432 1, 1, 1, 1, 1, 1, 1, 1, 433 1, 1, 1, 1, 1, 1, 1, 1, 434 1, 1, 1, 1, 1, 1, 1, 1, 435 1, 89, 1, 91, 1, 91, 91, 91, 436 91, 91, 1, 1, 1, 1, 1, 1, 437 1, 1, 1, 1, 1, 1, 1, 1, 438 1, 1, 1, 1, 91, 1, 1, 1, 439 1, 1, 1, 1, 1, 1, 1, 1, 440 1, 1, 1, 1, 1, 1, 1, 1, 441 1, 1, 1, 1, 1, 1, 92, 1, 442 92, 92, 92, 92, 92, 1, 1, 1, 443 1, 1, 1, 1, 1, 1, 1, 1, 444 1, 1, 1, 1, 1, 1, 1, 92, 445 1, 1, 1, 1, 1, 1, 1, 1, 446 1, 1, 1, 1, 93, 1, 1, 94, 447 95, 95, 95, 95, 95, 95, 95, 95, 448 95, 1, 23, 96, 96, 96, 96, 96, 449 96, 96, 96, 96, 1, 23, 23, 23, 450 23, 23, 1, 1, 1, 1, 1, 1, 451 1, 1, 1, 1, 1, 1, 1, 1, 452 1, 1, 1, 1, 23, 1, 1, 1, 453 1, 1, 1, 1, 1, 1, 1, 1, 454 0, 1, 1, 1, 96, 96, 96, 96, 455 96, 96, 96, 96, 96, 96, 1, 1, 456 1, 1, 1, 1, 1, 1, 1, 1, 457 1, 1, 1, 1, 1, 1, 1, 1, 458 1, 1, 1, 1, 1, 1, 1, 1, 459 1, 1, 1, 1, 1, 1, 1, 1, 460 1, 1, 1, 1, 1, 1, 1, 1, 461 1, 1, 1, 1, 1, 1, 1, 1, 462 1, 1, 1, 1, 1, 1, 1, 1, 463 1, 1, 1, 1, 1, 1, 1, 1, 464 1, 24, 1, 97, 1, 97, 97, 97, 465 97, 97, 1, 1, 1, 1, 1, 1, 466 1, 1, 1, 1, 1, 1, 1, 1, 467 1, 1, 1, 1, 97, 1, 1, 1, 468 1, 1, 1, 1, 1, 1, 1, 1, 469 1, 1, 1, 1, 1, 1, 1, 1, 470 1, 1, 1, 1, 1, 1, 98, 1, 471 98, 98, 98, 98, 98, 1, 1, 1, 472 1, 1, 1, 1, 1, 1, 1, 1, 473 1, 1, 1, 1, 1, 1, 1, 98, 474 1, 1, 1, 1, 1, 1, 1, 1, 475 1, 1, 1, 1, 1, 1, 1, 99, 476 100, 100, 100, 100, 100, 100, 100, 100, 477 100, 1, 87, 87, 87, 87, 87, 1, 478 1, 1, 1, 1, 1, 1, 1, 1, 479 1, 1, 1, 1, 1, 1, 1, 1, 480 1, 87, 1, 1, 1, 1, 1, 1, 481 1, 1, 1, 1, 1, 88, 1, 1, 482 1, 101, 101, 101, 101, 101, 101, 101, 483 101, 101, 101, 1, 1, 1, 1, 1, 484 1, 1, 1, 1, 1, 1, 1, 1, 485 1, 1, 1, 1, 1, 1, 1, 1, 486 1, 1, 1, 1, 1, 1, 1, 1, 487 1, 1, 1, 1, 1, 1, 1, 1, 488 1, 1, 1, 1, 1, 1, 1, 1, 489 1, 1, 1, 1, 1, 1, 1, 1, 490 1, 1, 1, 1, 1, 1, 1, 1, 491 1, 1, 1, 1, 1, 1, 89, 1, 492 8, 1, 102, 102, 102, 102, 102, 1, 493 1, 1, 1, 1, 1, 1, 1, 1, 494 1, 1, 1, 1, 1, 1, 1, 1, 495 1, 102, 1, 1, 1, 1, 1, 1, 496 1, 1, 1, 1, 1, 1, 1, 1, 497 1, 1, 1, 1, 1, 1, 1, 1, 498 1, 1, 1, 1, 1, 1, 1, 1, 499 1, 1, 1, 1, 1, 1, 1, 1, 500 1, 1, 1, 1, 1, 1, 1, 1, 501 1, 1, 1, 1, 1, 1, 1, 1, 502 1, 1, 1, 1, 103, 1, 1, 1, 503 1, 1, 1, 1, 1, 1, 1, 1, 504 1, 1, 1, 1, 1, 1, 1, 1, 505 1, 1, 1, 1, 1, 1, 1, 1, 506 1, 1, 1, 1, 104, 1, 103, 103, 507 103, 103, 103, 1, 1, 1, 1, 1, 508 1, 1, 1, 1, 1, 1, 1, 1, 509 1, 1, 1, 1, 1, 103, 1, 1, 510 1, 1, 1, 1, 1, 1, 1, 1, 511 1, 1, 1, 1, 1, 1, 1, 1, 512 1, 1, 1, 1, 1, 1, 1, 1, 513 1, 1, 1, 1, 1, 1, 1, 1, 514 1, 1, 1, 1, 1, 1, 1, 1, 515 1, 1, 1, 1, 1, 1, 1, 1, 516 1, 1, 1, 1, 1, 1, 1, 1, 517 1, 1, 1, 1, 1, 1, 1, 1, 518 1, 1, 1, 1, 1, 1, 1, 1, 519 1, 1, 1, 1, 1, 1, 1, 1, 520 1, 1, 1, 1, 1, 1, 1, 1, 521 104, 1, 25, 25, 25, 25, 25, 1, 522 1, 1, 1, 1, 1, 1, 1, 1, 523 1, 1, 1, 1, 1, 1, 1, 1, 524 1, 25, 1, 1, 1, 1, 1, 1, 525 1, 1, 1, 1, 1, 1, 1, 1, 526 1, 1, 1, 1, 1, 1, 1, 1, 527 1, 1, 1, 1, 1, 1, 1, 1, 528 1, 1, 1, 1, 1, 1, 1, 1, 529 1, 1, 1, 1, 1, 1, 1, 1, 530 1, 1, 1, 1, 1, 1, 1, 1, 531 1, 1, 1, 1, 1, 1, 1, 1, 532 1, 1, 1, 1, 1, 1, 1, 1, 533 1, 1, 1, 1, 1, 1, 1, 1, 534 1, 1, 1, 1, 1, 1, 1, 1, 535 1, 1, 1, 1, 104, 1, 0 536 }; 537 538 static const char _deserialize_json_trans_targs[] = { 539 1, 0, 2, 3, 18, 24, 37, 43, 540 51, 56, 60, 4, 12, 5, 6, 7, 541 8, 11, 8, 11, 9, 1, 10, 9, 542 10, 63, 13, 14, 15, 16, 17, 16, 543 17, 9, 1, 10, 19, 20, 21, 22, 544 23, 9, 1, 10, 23, 25, 31, 26, 545 27, 28, 29, 30, 29, 30, 9, 1, 546 10, 32, 33, 34, 35, 36, 35, 36, 547 9, 1, 10, 38, 39, 40, 41, 42, 548 9, 1, 10, 42, 44, 45, 46, 49, 549 50, 46, 47, 48, 9, 1, 10, 9, 550 1, 10, 50, 52, 53, 54, 9, 55, 551 55, 57, 58, 49, 59, 59, 61, 62, 552 1 553 }; 554 555 static const char _deserialize_json_trans_actions[] = { 556 0, 0, 0, 0, 0, 0, 0, 0, 557 0, 0, 0, 0, 0, 0, 0, 1, 558 1, 1, 0, 0, 2, 2, 2, 0, 559 0, 3, 0, 0, 1, 1, 1, 0, 560 0, 4, 4, 4, 0, 0, 0, 1, 561 1, 5, 5, 5, 0, 0, 0, 0, 562 0, 1, 1, 1, 0, 0, 6, 6, 563 6, 0, 0, 1, 1, 1, 0, 0, 564 7, 7, 7, 0, 0, 0, 1, 1, 565 8, 8, 8, 0, 0, 0, 1, 9, 566 9, 0, 10, 0, 11, 11, 11, 12, 567 12, 12, 10, 0, 0, 1, 1, 1, 568 0, 0, 0, 13, 13, 14, 0, 0, 569 15 570 }; 571 572 static const int deserialize_json_start = 61; 573 static const int deserialize_json_first_final = 61; 574 static const int deserialize_json_error = 0; 575 576 static const int deserialize_json_en_main = 61; 577 578 579 #line 115 "hb-buffer-deserialize-json.rl" 580 581 582 static hb_bool_t 583 _hb_buffer_deserialize_json (hb_buffer_t *buffer, 584 const char *buf, 585 unsigned int buf_len, 586 const char **end_ptr, 587 hb_font_t *font) 588 { 589 const char *p = buf, *pe = buf + buf_len; 590 591 /* Ensure we have positions. */ 592 (void) hb_buffer_get_glyph_positions (buffer, nullptr); 593 594 const char *tok = nullptr; 595 int cs; 596 hb_glyph_info_t info = {0}; 597 hb_glyph_position_t pos = {0}; 598 599 #line 594 "hb-buffer-deserialize-json.hh" 600 { 601 cs = deserialize_json_start; 602 } 603 604 #line 597 "hb-buffer-deserialize-json.hh" 605 { 606 int _slen; 607 int _trans; 608 const unsigned char *_keys; 609 const char *_inds; 610 if ( p == pe ) 611 goto _test_eof; 612 if ( cs == 0 ) 613 goto _out; 614 _resume: 615 _keys = _deserialize_json_trans_keys + (cs<<1); 616 _inds = _deserialize_json_indicies + _deserialize_json_index_offsets[cs]; 617 618 _slen = _deserialize_json_key_spans[cs]; 619 _trans = _inds[ _slen > 0 && _keys[0] <=(*p) && 620 (*p) <= _keys[1] ? 621 (*p) - _keys[0] : _slen ]; 622 623 cs = _deserialize_json_trans_targs[_trans]; 624 625 if ( _deserialize_json_trans_actions[_trans] == 0 ) 626 goto _again; 627 628 switch ( _deserialize_json_trans_actions[_trans] ) { 629 case 15: 630 #line 38 "hb-buffer-deserialize-json.rl" 631 { 632 hb_memset (&info, 0, sizeof (info)); 633 hb_memset (&pos , 0, sizeof (pos )); 634 } 635 break; 636 case 3: 637 #line 43 "hb-buffer-deserialize-json.rl" 638 { 639 buffer->add_info (info); 640 if (unlikely (!buffer->successful)) 641 return false; 642 buffer->pos[buffer->len - 1] = pos; 643 *end_ptr = p; 644 } 645 break; 646 case 1: 647 #line 51 "hb-buffer-deserialize-json.rl" 648 { 649 tok = p; 650 } 651 break; 652 case 10: 653 #line 55 "hb-buffer-deserialize-json.rl" 654 { if (unlikely (!buffer->ensure_glyphs ())) return false; } 655 break; 656 case 14: 657 #line 56 "hb-buffer-deserialize-json.rl" 658 { if (unlikely (!buffer->ensure_unicode ())) return false; } 659 break; 660 case 11: 661 #line 58 "hb-buffer-deserialize-json.rl" 662 { 663 /* TODO Unescape \" and \\ if found. */ 664 if (!hb_font_glyph_from_string (font, 665 tok+1, p - tok - 2, /* Skip "" */ 666 &info.codepoint)) 667 return false; 668 } 669 break; 670 case 12: 671 #line 66 "hb-buffer-deserialize-json.rl" 672 { if (!parse_uint (tok, p, &info.codepoint)) return false; } 673 break; 674 case 5: 675 #line 67 "hb-buffer-deserialize-json.rl" 676 { if (!parse_uint (tok, p, &info.cluster )) return false; } 677 break; 678 case 6: 679 #line 68 "hb-buffer-deserialize-json.rl" 680 { if (!parse_int (tok, p, &pos.x_offset )) return false; } 681 break; 682 case 7: 683 #line 69 "hb-buffer-deserialize-json.rl" 684 { if (!parse_int (tok, p, &pos.y_offset )) return false; } 685 break; 686 case 2: 687 #line 70 "hb-buffer-deserialize-json.rl" 688 { if (!parse_int (tok, p, &pos.x_advance)) return false; } 689 break; 690 case 4: 691 #line 71 "hb-buffer-deserialize-json.rl" 692 { if (!parse_int (tok, p, &pos.y_advance)) return false; } 693 break; 694 case 8: 695 #line 72 "hb-buffer-deserialize-json.rl" 696 { if (!parse_uint (tok, p, &info.mask )) return false; } 697 break; 698 case 9: 699 #line 51 "hb-buffer-deserialize-json.rl" 700 { 701 tok = p; 702 } 703 #line 55 "hb-buffer-deserialize-json.rl" 704 { if (unlikely (!buffer->ensure_glyphs ())) return false; } 705 break; 706 case 13: 707 #line 51 "hb-buffer-deserialize-json.rl" 708 { 709 tok = p; 710 } 711 #line 56 "hb-buffer-deserialize-json.rl" 712 { if (unlikely (!buffer->ensure_unicode ())) return false; } 713 break; 714 #line 689 "hb-buffer-deserialize-json.hh" 715 } 716 717 _again: 718 if ( cs == 0 ) 719 goto _out; 720 if ( ++p != pe ) 721 goto _resume; 722 _test_eof: {} 723 _out: {} 724 } 725 726 #line 136 "hb-buffer-deserialize-json.rl" 727 728 729 *end_ptr = p; 730 731 return p == pe; 732 } 733 734 #endif /* HB_BUFFER_DESERIALIZE_JSON_HH */