2 #line 1 "hb-buffer-deserialize-json.rl"
4 * Copyright © 2013 Google, Inc.
6 * This is part of HarfBuzz, a text shaping library.
8 * Permission is hereby granted, without written agreement and without
9 * license or royalty fees, to use, copy, modify, and distribute this
10 * software and its documentation for any purpose, provided that the
11 * above copyright notice and the following two paragraphs appear in
12 * all copies of this software.
14 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
15 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
16 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
17 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
20 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
21 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
22 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
23 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
24 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
26 * Google Author(s): Behdad Esfahbod
29 #ifndef HB_BUFFER_DESERIALIZE_JSON_HH
30 #define HB_BUFFER_DESERIALIZE_JSON_HH
35 #line 36 "hb-buffer-deserialize-json.hh"
36 static const unsigned char _deserialize_json_trans_keys[] = {
37 0u, 0u, 9u, 123u, 9u, 34u, 97u, 117u, 120u, 121u, 34u, 34u, 9u, 58u, 9u, 57u,
38 48u, 57u, 9u, 125u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u,
39 9u, 125u, 9u, 125u, 108u, 108u, 34u, 34u, 9u, 58u, 9u, 57u, 9u, 125u, 9u, 125u,
40 120u, 121u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 34u, 34u,
41 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u,
42 34u, 92u, 9u, 125u, 34u, 92u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u,
43 9u, 125u, 9u, 93u, 9u, 123u, 0u, 0u, 0
46 static const char _deserialize_json_key_spans[] = {
47 0, 115, 26, 21, 2, 1, 50, 49,
48 10, 117, 117, 117, 1, 50, 49, 10,
49 117, 117, 1, 1, 50, 49, 117, 117,
50 2, 1, 50, 49, 10, 117, 117, 1,
51 50, 49, 10, 117, 117, 1, 50, 49,
52 59, 117, 59, 117, 117, 1, 50, 49,
56 static const short _deserialize_json_index_offsets[] = {
57 0, 0, 116, 143, 165, 168, 170, 221,
58 271, 282, 400, 518, 636, 638, 689, 739,
59 750, 868, 986, 988, 990, 1041, 1091, 1209,
60 1327, 1330, 1332, 1383, 1433, 1444, 1562, 1680,
61 1682, 1733, 1783, 1794, 1912, 2030, 2032, 2083,
62 2133, 2193, 2311, 2371, 2489, 2607, 2609, 2660,
63 2710, 2828, 2914, 3030
66 static const char _deserialize_json_indicies[] = {
68 1, 1, 1, 1, 1, 1, 1, 1,
69 1, 1, 1, 1, 1, 1, 1, 1,
70 0, 1, 1, 1, 1, 1, 1, 1,
71 1, 1, 1, 1, 1, 1, 1, 1,
72 1, 1, 1, 1, 1, 1, 1, 1,
73 1, 1, 1, 1, 1, 1, 1, 1,
74 1, 1, 1, 1, 1, 1, 1, 1,
75 1, 1, 1, 1, 1, 1, 1, 1,
76 1, 1, 1, 1, 1, 1, 1, 1,
77 1, 1, 1, 1, 1, 1, 1, 1,
78 1, 1, 1, 1, 1, 1, 1, 1,
79 1, 1, 1, 1, 1, 1, 1, 1,
80 1, 1, 1, 1, 1, 1, 1, 1,
81 1, 1, 1, 2, 1, 3, 3, 3,
82 3, 3, 1, 1, 1, 1, 1, 1,
83 1, 1, 1, 1, 1, 1, 1, 1,
84 1, 1, 1, 1, 3, 1, 4, 1,
85 5, 1, 6, 7, 1, 1, 8, 1,
86 1, 1, 1, 1, 1, 1, 1, 1,
87 1, 1, 1, 1, 9, 1, 10, 11,
88 1, 12, 1, 12, 12, 12, 12, 12,
89 1, 1, 1, 1, 1, 1, 1, 1,
90 1, 1, 1, 1, 1, 1, 1, 1,
91 1, 1, 12, 1, 1, 1, 1, 1,
92 1, 1, 1, 1, 1, 1, 1, 1,
93 1, 1, 1, 1, 1, 1, 1, 1,
94 1, 1, 1, 1, 13, 1, 13, 13,
95 13, 13, 13, 1, 1, 1, 1, 1,
96 1, 1, 1, 1, 1, 1, 1, 1,
97 1, 1, 1, 1, 1, 13, 1, 1,
98 1, 1, 1, 1, 1, 1, 1, 1,
99 1, 1, 14, 1, 1, 15, 16, 16,
100 16, 16, 16, 16, 16, 16, 16, 1,
101 17, 18, 18, 18, 18, 18, 18, 18,
102 18, 18, 1, 19, 19, 19, 19, 19,
103 1, 1, 1, 1, 1, 1, 1, 1,
104 1, 1, 1, 1, 1, 1, 1, 1,
105 1, 1, 19, 1, 1, 1, 1, 1,
106 1, 1, 1, 1, 1, 1, 20, 1,
107 1, 1, 1, 1, 1, 1, 1, 1,
108 1, 1, 1, 1, 1, 1, 1, 1,
109 1, 1, 1, 1, 1, 1, 1, 1,
110 1, 1, 1, 1, 1, 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, 21,
117 1, 22, 22, 22, 22, 22, 1, 1,
118 1, 1, 1, 1, 1, 1, 1, 1,
119 1, 1, 1, 1, 1, 1, 1, 1,
120 22, 1, 1, 1, 1, 1, 1, 1,
121 1, 1, 1, 1, 3, 1, 1, 1,
122 1, 1, 1, 1, 1, 1, 1, 1,
123 1, 1, 1, 1, 1, 1, 1, 1,
124 1, 1, 1, 1, 1, 1, 1, 1,
125 1, 1, 1, 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, 1, 1, 23, 1, 19,
132 19, 19, 19, 19, 1, 1, 1, 1,
133 1, 1, 1, 1, 1, 1, 1, 1,
134 1, 1, 1, 1, 1, 1, 19, 1,
135 1, 1, 1, 1, 1, 1, 1, 1,
136 1, 1, 20, 1, 1, 1, 18, 18,
137 18, 18, 18, 18, 18, 18, 18, 18,
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, 1, 1, 21, 1, 24, 1, 24,
147 24, 24, 24, 24, 1, 1, 1, 1,
148 1, 1, 1, 1, 1, 1, 1, 1,
149 1, 1, 1, 1, 1, 1, 24, 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, 1, 1,
153 25, 1, 25, 25, 25, 25, 25, 1,
154 1, 1, 1, 1, 1, 1, 1, 1,
155 1, 1, 1, 1, 1, 1, 1, 1,
156 1, 25, 1, 1, 1, 1, 1, 1,
157 1, 1, 1, 1, 1, 1, 26, 1,
158 1, 27, 28, 28, 28, 28, 28, 28,
159 28, 28, 28, 1, 29, 30, 30, 30,
160 30, 30, 30, 30, 30, 30, 1, 31,
161 31, 31, 31, 31, 1, 1, 1, 1,
162 1, 1, 1, 1, 1, 1, 1, 1,
163 1, 1, 1, 1, 1, 1, 31, 1,
164 1, 1, 1, 1, 1, 1, 1, 1,
165 1, 1, 32, 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, 1, 1, 33, 1, 31, 31, 31,
176 31, 31, 1, 1, 1, 1, 1, 1,
177 1, 1, 1, 1, 1, 1, 1, 1,
178 1, 1, 1, 1, 31, 1, 1, 1,
179 1, 1, 1, 1, 1, 1, 1, 1,
180 32, 1, 1, 1, 30, 30, 30, 30,
181 30, 30, 30, 30, 30, 30, 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, 1,
190 1, 33, 1, 34, 1, 35, 1, 35,
191 35, 35, 35, 35, 1, 1, 1, 1,
192 1, 1, 1, 1, 1, 1, 1, 1,
193 1, 1, 1, 1, 1, 1, 35, 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, 1, 1,
197 36, 1, 36, 36, 36, 36, 36, 1,
198 1, 1, 1, 1, 1, 1, 1, 1,
199 1, 1, 1, 1, 1, 1, 1, 1,
200 1, 36, 1, 1, 1, 1, 1, 1,
201 1, 1, 1, 1, 1, 1, 1, 1,
202 1, 37, 38, 38, 38, 38, 38, 38,
203 38, 38, 38, 1, 39, 39, 39, 39,
204 39, 1, 1, 1, 1, 1, 1, 1,
205 1, 1, 1, 1, 1, 1, 1, 1,
206 1, 1, 1, 39, 1, 1, 1, 1,
207 1, 1, 1, 1, 1, 1, 1, 40,
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, 1, 1,
218 41, 1, 39, 39, 39, 39, 39, 1,
219 1, 1, 1, 1, 1, 1, 1, 1,
220 1, 1, 1, 1, 1, 1, 1, 1,
221 1, 39, 1, 1, 1, 1, 1, 1,
222 1, 1, 1, 1, 1, 40, 1, 1,
223 1, 42, 42, 42, 42, 42, 42, 42,
224 42, 42, 42, 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, 1, 1, 41, 1,
233 43, 44, 1, 45, 1, 45, 45, 45,
234 45, 45, 1, 1, 1, 1, 1, 1,
235 1, 1, 1, 1, 1, 1, 1, 1,
236 1, 1, 1, 1, 45, 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, 1, 1, 46, 1,
240 46, 46, 46, 46, 46, 1, 1, 1,
241 1, 1, 1, 1, 1, 1, 1, 1,
242 1, 1, 1, 1, 1, 1, 1, 46,
243 1, 1, 1, 1, 1, 1, 1, 1,
244 1, 1, 1, 1, 47, 1, 1, 48,
245 49, 49, 49, 49, 49, 49, 49, 49,
246 49, 1, 50, 51, 51, 51, 51, 51,
247 51, 51, 51, 51, 1, 52, 52, 52,
248 52, 52, 1, 1, 1, 1, 1, 1,
249 1, 1, 1, 1, 1, 1, 1, 1,
250 1, 1, 1, 1, 52, 1, 1, 1,
251 1, 1, 1, 1, 1, 1, 1, 1,
252 53, 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, 1,
262 1, 54, 1, 52, 52, 52, 52, 52,
263 1, 1, 1, 1, 1, 1, 1, 1,
264 1, 1, 1, 1, 1, 1, 1, 1,
265 1, 1, 52, 1, 1, 1, 1, 1,
266 1, 1, 1, 1, 1, 1, 53, 1,
267 1, 1, 51, 51, 51, 51, 51, 51,
268 51, 51, 51, 51, 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, 1, 1, 54,
277 1, 55, 1, 55, 55, 55, 55, 55,
278 1, 1, 1, 1, 1, 1, 1, 1,
279 1, 1, 1, 1, 1, 1, 1, 1,
280 1, 1, 55, 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, 1, 1, 56, 1, 56, 56,
284 56, 56, 56, 1, 1, 1, 1, 1,
285 1, 1, 1, 1, 1, 1, 1, 1,
286 1, 1, 1, 1, 1, 56, 1, 1,
287 1, 1, 1, 1, 1, 1, 1, 1,
288 1, 1, 57, 1, 1, 58, 59, 59,
289 59, 59, 59, 59, 59, 59, 59, 1,
290 60, 61, 61, 61, 61, 61, 61, 61,
291 61, 61, 1, 62, 62, 62, 62, 62,
292 1, 1, 1, 1, 1, 1, 1, 1,
293 1, 1, 1, 1, 1, 1, 1, 1,
294 1, 1, 62, 1, 1, 1, 1, 1,
295 1, 1, 1, 1, 1, 1, 63, 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, 1, 1, 64,
306 1, 62, 62, 62, 62, 62, 1, 1,
307 1, 1, 1, 1, 1, 1, 1, 1,
308 1, 1, 1, 1, 1, 1, 1, 1,
309 62, 1, 1, 1, 1, 1, 1, 1,
310 1, 1, 1, 1, 63, 1, 1, 1,
311 61, 61, 61, 61, 61, 61, 61, 61,
312 61, 61, 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, 1, 1, 64, 1, 65,
321 1, 65, 65, 65, 65, 65, 1, 1,
322 1, 1, 1, 1, 1, 1, 1, 1,
323 1, 1, 1, 1, 1, 1, 1, 1,
324 65, 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, 66, 1, 66, 66, 66, 66,
328 66, 1, 1, 1, 1, 1, 1, 1,
329 1, 1, 1, 1, 1, 1, 1, 1,
330 1, 1, 1, 66, 1, 67, 1, 1,
331 1, 1, 1, 1, 1, 1, 1, 1,
332 1, 1, 1, 68, 69, 69, 69, 69,
333 69, 69, 69, 69, 69, 1, 71, 70,
334 70, 70, 70, 70, 70, 70, 70, 70,
335 70, 70, 70, 70, 70, 70, 70, 70,
336 70, 70, 70, 70, 70, 70, 70, 70,
337 70, 70, 70, 70, 70, 70, 70, 70,
338 70, 70, 70, 70, 70, 70, 70, 70,
339 70, 70, 70, 70, 70, 70, 70, 70,
340 70, 70, 70, 70, 70, 70, 70, 70,
341 72, 70, 73, 73, 73, 73, 73, 1,
342 1, 1, 1, 1, 1, 1, 1, 1,
343 1, 1, 1, 1, 1, 1, 1, 1,
344 1, 73, 1, 1, 1, 1, 1, 1,
345 1, 1, 1, 1, 1, 74, 1, 1,
346 1, 1, 1, 1, 1, 1, 1, 1,
347 1, 1, 1, 1, 1, 1, 1, 1,
348 1, 1, 1, 1, 1, 1, 1, 1,
349 1, 1, 1, 1, 1, 1, 1, 1,
350 1, 1, 1, 1, 1, 1, 1, 1,
351 1, 1, 1, 1, 1, 1, 1, 1,
352 1, 1, 1, 1, 1, 1, 1, 1,
353 1, 1, 1, 1, 1, 1, 1, 1,
354 1, 1, 1, 1, 1, 1, 1, 1,
355 1, 1, 1, 1, 1, 1, 75, 1,
356 70, 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 1, 1, 70, 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, 77,
368 1, 1, 1, 1, 1, 1, 1, 1,
369 1, 1, 1, 1, 1, 1, 1, 1,
370 1, 1, 1, 1, 1, 1, 1, 1,
371 1, 1, 1, 1, 1, 1, 1, 1,
372 1, 1, 1, 1, 1, 1, 1, 1,
373 1, 1, 1, 1, 1, 1, 1, 1,
374 1, 1, 1, 1, 1, 1, 1, 1,
375 1, 1, 1, 1, 1, 1, 1, 1,
376 1, 1, 1, 1, 1, 1, 1, 1,
377 1, 1, 1, 1, 1, 1, 1, 1,
378 78, 1, 76, 76, 76, 76, 76, 1,
379 1, 1, 1, 1, 1, 1, 1, 1,
380 1, 1, 1, 1, 1, 1, 1, 1,
381 1, 76, 1, 1, 1, 1, 1, 1,
382 1, 1, 1, 1, 1, 77, 1, 1,
383 1, 79, 79, 79, 79, 79, 79, 79,
384 79, 79, 79, 1, 1, 1, 1, 1,
385 1, 1, 1, 1, 1, 1, 1, 1,
386 1, 1, 1, 1, 1, 1, 1, 1,
387 1, 1, 1, 1, 1, 1, 1, 1,
388 1, 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, 78, 1,
393 80, 1, 80, 80, 80, 80, 80, 1,
394 1, 1, 1, 1, 1, 1, 1, 1,
395 1, 1, 1, 1, 1, 1, 1, 1,
396 1, 80, 1, 1, 1, 1, 1, 1,
397 1, 1, 1, 1, 1, 1, 1, 1,
398 1, 1, 1, 1, 1, 1, 1, 1,
399 1, 1, 1, 81, 1, 81, 81, 81,
400 81, 81, 1, 1, 1, 1, 1, 1,
401 1, 1, 1, 1, 1, 1, 1, 1,
402 1, 1, 1, 1, 81, 1, 1, 1,
403 1, 1, 1, 1, 1, 1, 1, 1,
404 1, 1, 1, 1, 82, 83, 83, 83,
405 83, 83, 83, 83, 83, 83, 1, 76,
406 76, 76, 76, 76, 1, 1, 1, 1,
407 1, 1, 1, 1, 1, 1, 1, 1,
408 1, 1, 1, 1, 1, 1, 76, 1,
409 1, 1, 1, 1, 1, 1, 1, 1,
410 1, 1, 77, 1, 1, 1, 84, 84,
411 84, 84, 84, 84, 84, 84, 84, 84,
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, 78, 1, 85, 85, 85,
421 85, 85, 1, 1, 1, 1, 1, 1,
422 1, 1, 1, 1, 1, 1, 1, 1,
423 1, 1, 1, 1, 85, 1, 1, 1,
424 1, 1, 1, 1, 1, 1, 1, 1,
425 86, 1, 1, 1, 1, 1, 1, 1,
426 1, 1, 1, 1, 1, 1, 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, 87, 1, 0, 0, 0, 0, 0,
432 1, 1, 1, 1, 1, 1, 1, 1,
433 1, 1, 1, 1, 1, 1, 1, 1,
434 1, 1, 0, 1, 1, 1, 1, 1,
435 1, 1, 1, 1, 1, 1, 1, 1,
436 1, 1, 1, 1, 1, 1, 1, 1,
437 1, 1, 1, 1, 1, 1, 1, 1,
438 1, 1, 1, 1, 1, 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, 1, 1,
442 1, 1, 1, 1, 1, 1, 1, 1,
443 1, 1, 1, 1, 1, 1, 1, 1,
444 1, 1, 1, 1, 1, 1, 1, 1,
445 1, 1, 1, 1, 1, 2, 1, 1,
449 static const char _deserialize_json_trans_targs[] = {
450 1, 0, 2, 2, 3, 4, 18, 24,
451 37, 45, 5, 12, 6, 7, 8, 9,
452 11, 9, 11, 10, 2, 49, 10, 49,
453 13, 14, 15, 16, 17, 16, 17, 10,
454 2, 49, 19, 20, 21, 22, 23, 10,
455 2, 49, 23, 25, 31, 26, 27, 28,
456 29, 30, 29, 30, 10, 2, 49, 32,
457 33, 34, 35, 36, 35, 36, 10, 2,
458 49, 38, 39, 40, 43, 44, 40, 41,
459 42, 10, 2, 49, 10, 2, 49, 44,
460 46, 47, 43, 48, 48, 49, 50, 51
463 static const char _deserialize_json_trans_actions[] = {
464 0, 0, 1, 0, 0, 0, 0, 0,
465 0, 0, 0, 0, 0, 0, 2, 2,
466 2, 0, 0, 3, 3, 4, 0, 5,
467 0, 0, 2, 2, 2, 0, 0, 6,
468 6, 7, 0, 0, 0, 2, 2, 8,
469 8, 9, 0, 0, 0, 0, 0, 2,
470 2, 2, 0, 0, 10, 10, 11, 0,
471 0, 2, 2, 2, 0, 0, 12, 12,
472 13, 0, 0, 2, 14, 14, 0, 15,
473 0, 16, 16, 17, 18, 18, 19, 15,
474 0, 0, 20, 20, 21, 0, 0, 0
477 static const int deserialize_json_start = 1;
478 static const int deserialize_json_first_final = 49;
479 static const int deserialize_json_error = 0;
481 static const int deserialize_json_en_main = 1;
484 #line 108 "hb-buffer-deserialize-json.rl"
488 _hb_buffer_deserialize_json (hb_buffer_t *buffer,
490 unsigned int buf_len,
491 const char **end_ptr,
494 const char *p = buf, *pe = buf + buf_len;
496 /* Ensure we have positions. */
497 (void) hb_buffer_get_glyph_positions (buffer, nullptr);
499 while (p < pe && ISSPACE (*p))
501 if (p < pe && *p == (buffer->len ? ',' : '['))
506 const char *tok = nullptr;
508 hb_glyph_info_t info = {0};
509 hb_glyph_position_t pos = {0};
511 #line 512 "hb-buffer-deserialize-json.hh"
513 cs = deserialize_json_start;
516 #line 517 "hb-buffer-deserialize-json.hh"
520 const unsigned char *_keys;
527 _keys = _deserialize_json_trans_keys + (cs<<1);
528 _inds = _deserialize_json_indicies + _deserialize_json_index_offsets[cs];
530 _slen = _deserialize_json_key_spans[cs];
531 _trans = _inds[ _slen > 0 && _keys[0] <=(*p) &&
533 (*p) - _keys[0] : _slen ];
535 cs = _deserialize_json_trans_targs[_trans];
537 if ( _deserialize_json_trans_actions[_trans] == 0 )
540 switch ( _deserialize_json_trans_actions[_trans] ) {
542 #line 38 "hb-buffer-deserialize-json.rl"
544 memset (&info, 0, sizeof (info));
545 memset (&pos , 0, sizeof (pos ));
549 #line 43 "hb-buffer-deserialize-json.rl"
551 buffer->add_info (info);
552 if (unlikely (!buffer->successful))
554 buffer->pos[buffer->len - 1] = pos;
559 #line 51 "hb-buffer-deserialize-json.rl"
565 #line 55 "hb-buffer-deserialize-json.rl"
566 { if (unlikely (!buffer->ensure_glyphs ())) return false; }
569 #line 56 "hb-buffer-deserialize-json.rl"
570 { if (unlikely (!buffer->ensure_unicode ())) return false; }
573 #line 58 "hb-buffer-deserialize-json.rl"
575 /* TODO Unescape \" and \\ if found. */
576 if (!hb_font_glyph_from_string (font,
583 #line 66 "hb-buffer-deserialize-json.rl"
584 { if (!parse_uint (tok, p, &info.codepoint)) return false; }
587 #line 67 "hb-buffer-deserialize-json.rl"
588 { if (!parse_uint (tok, p, &info.cluster )) return false; }
591 #line 68 "hb-buffer-deserialize-json.rl"
592 { if (!parse_int (tok, p, &pos.x_offset )) return false; }
595 #line 69 "hb-buffer-deserialize-json.rl"
596 { if (!parse_int (tok, p, &pos.y_offset )) return false; }
599 #line 70 "hb-buffer-deserialize-json.rl"
600 { if (!parse_int (tok, p, &pos.x_advance)) return false; }
603 #line 71 "hb-buffer-deserialize-json.rl"
604 { if (!parse_int (tok, p, &pos.y_advance)) return false; }
607 #line 51 "hb-buffer-deserialize-json.rl"
611 #line 55 "hb-buffer-deserialize-json.rl"
612 { if (unlikely (!buffer->ensure_glyphs ())) return false; }
615 #line 51 "hb-buffer-deserialize-json.rl"
619 #line 56 "hb-buffer-deserialize-json.rl"
620 { if (unlikely (!buffer->ensure_unicode ())) return false; }
623 #line 58 "hb-buffer-deserialize-json.rl"
625 /* TODO Unescape \" and \\ if found. */
626 if (!hb_font_glyph_from_string (font,
631 #line 43 "hb-buffer-deserialize-json.rl"
633 buffer->add_info (info);
634 if (unlikely (!buffer->successful))
636 buffer->pos[buffer->len - 1] = pos;
641 #line 66 "hb-buffer-deserialize-json.rl"
642 { if (!parse_uint (tok, p, &info.codepoint)) return false; }
643 #line 43 "hb-buffer-deserialize-json.rl"
645 buffer->add_info (info);
646 if (unlikely (!buffer->successful))
648 buffer->pos[buffer->len - 1] = pos;
653 #line 67 "hb-buffer-deserialize-json.rl"
654 { if (!parse_uint (tok, p, &info.cluster )) return false; }
655 #line 43 "hb-buffer-deserialize-json.rl"
657 buffer->add_info (info);
658 if (unlikely (!buffer->successful))
660 buffer->pos[buffer->len - 1] = pos;
665 #line 68 "hb-buffer-deserialize-json.rl"
666 { if (!parse_int (tok, p, &pos.x_offset )) return false; }
667 #line 43 "hb-buffer-deserialize-json.rl"
669 buffer->add_info (info);
670 if (unlikely (!buffer->successful))
672 buffer->pos[buffer->len - 1] = pos;
677 #line 69 "hb-buffer-deserialize-json.rl"
678 { if (!parse_int (tok, p, &pos.y_offset )) return false; }
679 #line 43 "hb-buffer-deserialize-json.rl"
681 buffer->add_info (info);
682 if (unlikely (!buffer->successful))
684 buffer->pos[buffer->len - 1] = pos;
689 #line 70 "hb-buffer-deserialize-json.rl"
690 { if (!parse_int (tok, p, &pos.x_advance)) return false; }
691 #line 43 "hb-buffer-deserialize-json.rl"
693 buffer->add_info (info);
694 if (unlikely (!buffer->successful))
696 buffer->pos[buffer->len - 1] = pos;
701 #line 71 "hb-buffer-deserialize-json.rl"
702 { if (!parse_int (tok, p, &pos.y_advance)) return false; }
703 #line 43 "hb-buffer-deserialize-json.rl"
705 buffer->add_info (info);
706 if (unlikely (!buffer->successful))
708 buffer->pos[buffer->len - 1] = pos;
712 #line 713 "hb-buffer-deserialize-json.hh"
724 #line 136 "hb-buffer-deserialize-json.rl"
729 return p == pe && *(p-1) != ']';
732 #endif /* HB_BUFFER_DESERIALIZE_JSON_HH */