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
32 #include "hb-private.hh"
35 #line 36 "hb-buffer-deserialize-json.hh.tmp"
36 static const unsigned char _deserialize_json_trans_keys
[] = {
37 0u, 0u, 9u, 123u, 9u, 34u, 97u, 103u, 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 65u, 122u, 34u, 122u, 9u, 125u, 9u, 125u, 9u, 93u, 9u, 123u, 0u, 0u, 0
45 static const char _deserialize_json_key_spans
[] = {
46 0, 115, 26, 7, 2, 1, 50, 49,
47 10, 117, 117, 117, 1, 50, 49, 10,
48 117, 117, 1, 1, 50, 49, 117, 117,
49 2, 1, 50, 49, 10, 117, 117, 1,
50 50, 49, 10, 117, 117, 1, 50, 49,
51 58, 89, 117, 117, 85, 115, 0
54 static const short _deserialize_json_index_offsets
[] = {
55 0, 0, 116, 143, 151, 154, 156, 207,
56 257, 268, 386, 504, 622, 624, 675, 725,
57 736, 854, 972, 974, 976, 1027, 1077, 1195,
58 1313, 1316, 1318, 1369, 1419, 1430, 1548, 1666,
59 1668, 1719, 1769, 1780, 1898, 2016, 2018, 2069,
60 2119, 2178, 2268, 2386, 2504, 2590, 2706
63 static const char _deserialize_json_indicies
[] = {
65 1, 1, 1, 1, 1, 1, 1, 1,
66 1, 1, 1, 1, 1, 1, 1, 1,
67 0, 1, 1, 1, 1, 1, 1, 1,
68 1, 1, 1, 1, 1, 1, 1, 1,
69 1, 1, 1, 1, 1, 1, 1, 1,
70 1, 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, 2, 1, 3, 3, 3,
79 3, 3, 1, 1, 1, 1, 1, 1,
80 1, 1, 1, 1, 1, 1, 1, 1,
81 1, 1, 1, 1, 3, 1, 4, 1,
82 5, 1, 6, 7, 1, 1, 8, 1,
83 9, 10, 1, 11, 1, 11, 11, 11,
84 11, 11, 1, 1, 1, 1, 1, 1,
85 1, 1, 1, 1, 1, 1, 1, 1,
86 1, 1, 1, 1, 11, 1, 1, 1,
87 1, 1, 1, 1, 1, 1, 1, 1,
88 1, 1, 1, 1, 1, 1, 1, 1,
89 1, 1, 1, 1, 1, 1, 12, 1,
90 12, 12, 12, 12, 12, 1, 1, 1,
91 1, 1, 1, 1, 1, 1, 1, 1,
92 1, 1, 1, 1, 1, 1, 1, 12,
93 1, 1, 1, 1, 1, 1, 1, 1,
94 1, 1, 1, 1, 13, 1, 1, 14,
95 15, 15, 15, 15, 15, 15, 15, 15,
96 15, 1, 16, 17, 17, 17, 17, 17,
97 17, 17, 17, 17, 1, 18, 18, 18,
98 18, 18, 1, 1, 1, 1, 1, 1,
99 1, 1, 1, 1, 1, 1, 1, 1,
100 1, 1, 1, 1, 18, 1, 1, 1,
101 1, 1, 1, 1, 1, 1, 1, 1,
102 19, 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, 1,
106 1, 1, 1, 1, 1, 1, 1, 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, 20, 1, 21, 21, 21, 21, 21,
113 1, 1, 1, 1, 1, 1, 1, 1,
114 1, 1, 1, 1, 1, 1, 1, 1,
115 1, 1, 21, 1, 1, 1, 1, 1,
116 1, 1, 1, 1, 1, 1, 3, 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, 1, 1, 1,
121 1, 1, 1, 1, 1, 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, 22,
127 1, 18, 18, 18, 18, 18, 1, 1,
128 1, 1, 1, 1, 1, 1, 1, 1,
129 1, 1, 1, 1, 1, 1, 1, 1,
130 18, 1, 1, 1, 1, 1, 1, 1,
131 1, 1, 1, 1, 19, 1, 1, 1,
132 17, 17, 17, 17, 17, 17, 17, 17,
133 17, 17, 1, 1, 1, 1, 1, 1,
134 1, 1, 1, 1, 1, 1, 1, 1,
135 1, 1, 1, 1, 1, 1, 1, 1,
136 1, 1, 1, 1, 1, 1, 1, 1,
137 1, 1, 1, 1, 1, 1, 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, 20, 1, 23,
142 1, 23, 23, 23, 23, 23, 1, 1,
143 1, 1, 1, 1, 1, 1, 1, 1,
144 1, 1, 1, 1, 1, 1, 1, 1,
145 23, 1, 1, 1, 1, 1, 1, 1,
146 1, 1, 1, 1, 1, 1, 1, 1,
147 1, 1, 1, 1, 1, 1, 1, 1,
148 1, 1, 24, 1, 24, 24, 24, 24,
149 24, 1, 1, 1, 1, 1, 1, 1,
150 1, 1, 1, 1, 1, 1, 1, 1,
151 1, 1, 1, 24, 1, 1, 1, 1,
152 1, 1, 1, 1, 1, 1, 1, 1,
153 25, 1, 1, 26, 27, 27, 27, 27,
154 27, 27, 27, 27, 27, 1, 28, 29,
155 29, 29, 29, 29, 29, 29, 29, 29,
156 1, 30, 30, 30, 30, 30, 1, 1,
157 1, 1, 1, 1, 1, 1, 1, 1,
158 1, 1, 1, 1, 1, 1, 1, 1,
159 30, 1, 1, 1, 1, 1, 1, 1,
160 1, 1, 1, 1, 31, 1, 1, 1,
161 1, 1, 1, 1, 1, 1, 1, 1,
162 1, 1, 1, 1, 1, 1, 1, 1,
163 1, 1, 1, 1, 1, 1, 1, 1,
164 1, 1, 1, 1, 1, 1, 1, 1,
165 1, 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, 32, 1, 30,
171 30, 30, 30, 30, 1, 1, 1, 1,
172 1, 1, 1, 1, 1, 1, 1, 1,
173 1, 1, 1, 1, 1, 1, 30, 1,
174 1, 1, 1, 1, 1, 1, 1, 1,
175 1, 1, 31, 1, 1, 1, 29, 29,
176 29, 29, 29, 29, 29, 29, 29, 29,
177 1, 1, 1, 1, 1, 1, 1, 1,
178 1, 1, 1, 1, 1, 1, 1, 1,
179 1, 1, 1, 1, 1, 1, 1, 1,
180 1, 1, 1, 1, 1, 1, 1, 1,
181 1, 1, 1, 1, 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, 32, 1, 33, 1, 34,
186 1, 34, 34, 34, 34, 34, 1, 1,
187 1, 1, 1, 1, 1, 1, 1, 1,
188 1, 1, 1, 1, 1, 1, 1, 1,
189 34, 1, 1, 1, 1, 1, 1, 1,
190 1, 1, 1, 1, 1, 1, 1, 1,
191 1, 1, 1, 1, 1, 1, 1, 1,
192 1, 1, 35, 1, 35, 35, 35, 35,
193 35, 1, 1, 1, 1, 1, 1, 1,
194 1, 1, 1, 1, 1, 1, 1, 1,
195 1, 1, 1, 35, 1, 1, 1, 1,
196 1, 1, 1, 1, 1, 1, 1, 1,
197 1, 1, 1, 36, 37, 37, 37, 37,
198 37, 37, 37, 37, 37, 1, 38, 38,
199 38, 38, 38, 1, 1, 1, 1, 1,
200 1, 1, 1, 1, 1, 1, 1, 1,
201 1, 1, 1, 1, 1, 38, 1, 1,
202 1, 1, 1, 1, 1, 1, 1, 1,
203 1, 39, 1, 1, 1, 1, 1, 1,
204 1, 1, 1, 1, 1, 1, 1, 1,
205 1, 1, 1, 1, 1, 1, 1, 1,
206 1, 1, 1, 1, 1, 1, 1, 1,
207 1, 1, 1, 1, 1, 1, 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, 40, 1, 38, 38, 38, 38,
214 38, 1, 1, 1, 1, 1, 1, 1,
215 1, 1, 1, 1, 1, 1, 1, 1,
216 1, 1, 1, 38, 1, 1, 1, 1,
217 1, 1, 1, 1, 1, 1, 1, 39,
218 1, 1, 1, 41, 41, 41, 41, 41,
219 41, 41, 41, 41, 41, 1, 1, 1,
220 1, 1, 1, 1, 1, 1, 1, 1,
221 1, 1, 1, 1, 1, 1, 1, 1,
222 1, 1, 1, 1, 1, 1, 1, 1,
223 1, 1, 1, 1, 1, 1, 1, 1,
224 1, 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 40, 1, 42, 43, 1, 44, 1, 44,
229 44, 44, 44, 44, 1, 1, 1, 1,
230 1, 1, 1, 1, 1, 1, 1, 1,
231 1, 1, 1, 1, 1, 1, 44, 1,
232 1, 1, 1, 1, 1, 1, 1, 1,
233 1, 1, 1, 1, 1, 1, 1, 1,
234 1, 1, 1, 1, 1, 1, 1, 1,
235 45, 1, 45, 45, 45, 45, 45, 1,
236 1, 1, 1, 1, 1, 1, 1, 1,
237 1, 1, 1, 1, 1, 1, 1, 1,
238 1, 45, 1, 1, 1, 1, 1, 1,
239 1, 1, 1, 1, 1, 1, 46, 1,
240 1, 47, 48, 48, 48, 48, 48, 48,
241 48, 48, 48, 1, 49, 50, 50, 50,
242 50, 50, 50, 50, 50, 50, 1, 51,
243 51, 51, 51, 51, 1, 1, 1, 1,
244 1, 1, 1, 1, 1, 1, 1, 1,
245 1, 1, 1, 1, 1, 1, 51, 1,
246 1, 1, 1, 1, 1, 1, 1, 1,
247 1, 1, 52, 1, 1, 1, 1, 1,
248 1, 1, 1, 1, 1, 1, 1, 1,
249 1, 1, 1, 1, 1, 1, 1, 1,
250 1, 1, 1, 1, 1, 1, 1, 1,
251 1, 1, 1, 1, 1, 1, 1, 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, 53, 1, 51, 51, 51,
258 51, 51, 1, 1, 1, 1, 1, 1,
259 1, 1, 1, 1, 1, 1, 1, 1,
260 1, 1, 1, 1, 51, 1, 1, 1,
261 1, 1, 1, 1, 1, 1, 1, 1,
262 52, 1, 1, 1, 50, 50, 50, 50,
263 50, 50, 50, 50, 50, 50, 1, 1,
264 1, 1, 1, 1, 1, 1, 1, 1,
265 1, 1, 1, 1, 1, 1, 1, 1,
266 1, 1, 1, 1, 1, 1, 1, 1,
267 1, 1, 1, 1, 1, 1, 1, 1,
268 1, 1, 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, 53, 1, 54, 1, 54, 54, 54,
273 54, 54, 1, 1, 1, 1, 1, 1,
274 1, 1, 1, 1, 1, 1, 1, 1,
275 1, 1, 1, 1, 54, 1, 1, 1,
276 1, 1, 1, 1, 1, 1, 1, 1,
277 1, 1, 1, 1, 1, 1, 1, 1,
278 1, 1, 1, 1, 1, 1, 55, 1,
279 55, 55, 55, 55, 55, 1, 1, 1,
280 1, 1, 1, 1, 1, 1, 1, 1,
281 1, 1, 1, 1, 1, 1, 1, 55,
282 1, 1, 1, 1, 1, 1, 1, 1,
283 1, 1, 1, 1, 56, 1, 1, 57,
284 58, 58, 58, 58, 58, 58, 58, 58,
285 58, 1, 59, 60, 60, 60, 60, 60,
286 60, 60, 60, 60, 1, 61, 61, 61,
287 61, 61, 1, 1, 1, 1, 1, 1,
288 1, 1, 1, 1, 1, 1, 1, 1,
289 1, 1, 1, 1, 61, 1, 1, 1,
290 1, 1, 1, 1, 1, 1, 1, 1,
291 62, 1, 1, 1, 1, 1, 1, 1,
292 1, 1, 1, 1, 1, 1, 1, 1,
293 1, 1, 1, 1, 1, 1, 1, 1,
294 1, 1, 1, 1, 1, 1, 1, 1,
295 1, 1, 1, 1, 1, 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, 63, 1, 61, 61, 61, 61, 61,
302 1, 1, 1, 1, 1, 1, 1, 1,
303 1, 1, 1, 1, 1, 1, 1, 1,
304 1, 1, 61, 1, 1, 1, 1, 1,
305 1, 1, 1, 1, 1, 1, 62, 1,
306 1, 1, 60, 60, 60, 60, 60, 60,
307 60, 60, 60, 60, 1, 1, 1, 1,
308 1, 1, 1, 1, 1, 1, 1, 1,
309 1, 1, 1, 1, 1, 1, 1, 1,
310 1, 1, 1, 1, 1, 1, 1, 1,
311 1, 1, 1, 1, 1, 1, 1, 1,
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, 63,
316 1, 64, 1, 64, 64, 64, 64, 64,
317 1, 1, 1, 1, 1, 1, 1, 1,
318 1, 1, 1, 1, 1, 1, 1, 1,
319 1, 1, 64, 1, 1, 1, 1, 1,
320 1, 1, 1, 1, 1, 1, 1, 1,
321 1, 1, 1, 1, 1, 1, 1, 1,
322 1, 1, 1, 1, 65, 1, 65, 65,
323 65, 65, 65, 1, 1, 1, 1, 1,
324 1, 1, 1, 1, 1, 1, 1, 1,
325 1, 1, 1, 1, 1, 65, 1, 66,
326 1, 1, 1, 1, 1, 1, 1, 1,
327 1, 1, 1, 1, 1, 67, 68, 68,
328 68, 68, 68, 68, 68, 68, 68, 1,
329 69, 69, 69, 69, 69, 69, 69, 69,
330 69, 69, 69, 69, 69, 69, 69, 69,
331 69, 69, 69, 69, 69, 69, 69, 69,
332 69, 69, 1, 1, 1, 1, 1, 1,
333 69, 69, 69, 69, 69, 69, 69, 69,
334 69, 69, 69, 69, 69, 69, 69, 69,
335 69, 69, 69, 69, 69, 69, 69, 69,
336 69, 69, 1, 70, 1, 1, 1, 1,
337 1, 1, 1, 1, 1, 1, 71, 71,
338 1, 71, 71, 71, 71, 71, 71, 71,
339 71, 71, 71, 1, 1, 1, 1, 1,
340 1, 1, 71, 71, 71, 71, 71, 71,
341 71, 71, 71, 71, 71, 71, 71, 71,
342 71, 71, 71, 71, 71, 71, 71, 71,
343 71, 71, 71, 71, 1, 1, 1, 1,
344 71, 1, 71, 71, 71, 71, 71, 71,
345 71, 71, 71, 71, 71, 71, 71, 71,
346 71, 71, 71, 71, 71, 71, 71, 71,
347 71, 71, 71, 71, 1, 72, 72, 72,
348 72, 72, 1, 1, 1, 1, 1, 1,
349 1, 1, 1, 1, 1, 1, 1, 1,
350 1, 1, 1, 1, 72, 1, 1, 1,
351 1, 1, 1, 1, 1, 1, 1, 1,
352 73, 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, 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, 74, 1, 72, 72, 72, 72, 72,
363 1, 1, 1, 1, 1, 1, 1, 1,
364 1, 1, 1, 1, 1, 1, 1, 1,
365 1, 1, 72, 1, 1, 1, 1, 1,
366 1, 1, 1, 1, 1, 1, 73, 1,
367 1, 1, 75, 75, 75, 75, 75, 75,
368 75, 75, 75, 75, 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, 74,
377 1, 76, 76, 76, 76, 76, 1, 1,
378 1, 1, 1, 1, 1, 1, 1, 1,
379 1, 1, 1, 1, 1, 1, 1, 1,
380 76, 1, 1, 1, 1, 1, 1, 1,
381 1, 1, 1, 1, 77, 1, 1, 1,
382 1, 1, 1, 1, 1, 1, 1, 1,
383 1, 1, 1, 1, 1, 1, 1, 1,
384 1, 1, 1, 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, 78, 1, 0,
388 0, 0, 0, 0, 1, 1, 1, 1,
389 1, 1, 1, 1, 1, 1, 1, 1,
390 1, 1, 1, 1, 1, 1, 0, 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, 1, 1, 1, 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,
405 static const char _deserialize_json_trans_targs
[] = {
406 1, 0, 2, 2, 3, 4, 18, 24,
407 37, 5, 12, 6, 7, 8, 9, 11,
408 9, 11, 10, 2, 44, 10, 44, 13,
409 14, 15, 16, 17, 16, 17, 10, 2,
410 44, 19, 20, 21, 22, 23, 10, 2,
411 44, 23, 25, 31, 26, 27, 28, 29,
412 30, 29, 30, 10, 2, 44, 32, 33,
413 34, 35, 36, 35, 36, 10, 2, 44,
414 38, 39, 40, 42, 43, 41, 10, 41,
415 10, 2, 44, 43, 44, 45, 46
418 static const char _deserialize_json_trans_actions
[] = {
419 0, 0, 1, 0, 0, 0, 0, 0,
420 0, 0, 0, 0, 0, 2, 2, 2,
421 0, 0, 3, 3, 4, 0, 5, 0,
422 0, 2, 2, 2, 0, 0, 6, 6,
423 7, 0, 0, 0, 2, 2, 8, 8,
424 9, 0, 0, 0, 0, 0, 2, 2,
425 2, 0, 0, 10, 10, 11, 0, 0,
426 2, 2, 2, 0, 0, 12, 12, 13,
427 0, 0, 0, 2, 2, 2, 14, 0,
428 15, 15, 16, 0, 0, 0, 0
431 static const int deserialize_json_start
= 1;
432 static const int deserialize_json_first_final
= 44;
433 static const int deserialize_json_error
= 0;
435 static const int deserialize_json_en_main
= 1;
438 #line 97 "hb-buffer-deserialize-json.rl"
442 _hb_buffer_deserialize_glyphs_json (hb_buffer_t
*buffer
,
444 unsigned int buf_len
,
445 const char **end_ptr
,
448 const char *p
= buf
, *pe
= buf
+ buf_len
;
450 /* Ensure we have positions. */
451 (void) hb_buffer_get_glyph_positions (buffer
, NULL
);
453 while (p
< pe
&& ISSPACE (*p
))
455 if (p
< pe
&& *p
== (buffer
->len
? ',' : '['))
460 const char *tok
= NULL
;
462 hb_glyph_info_t info
;
463 hb_glyph_position_t pos
;
465 #line 466 "hb-buffer-deserialize-json.hh.tmp"
467 cs
= deserialize_json_start
;
470 #line 471 "hb-buffer-deserialize-json.hh.tmp"
474 const unsigned char *_keys
;
481 _keys
= _deserialize_json_trans_keys
+ (cs
<<1);
482 _inds
= _deserialize_json_indicies
+ _deserialize_json_index_offsets
[cs
];
484 _slen
= _deserialize_json_key_spans
[cs
];
485 _trans
= _inds
[ _slen
> 0 && _keys
[0] <=(*p
) &&
487 (*p
) - _keys
[0] : _slen
];
489 cs
= _deserialize_json_trans_targs
[_trans
];
491 if ( _deserialize_json_trans_actions
[_trans
] == 0 )
494 switch ( _deserialize_json_trans_actions
[_trans
] ) {
496 #line 38 "hb-buffer-deserialize-json.rl"
498 memset (&info
, 0, sizeof (info
));
499 memset (&pos
, 0, sizeof (pos
));
503 #line 43 "hb-buffer-deserialize-json.rl"
505 buffer
->add_info (info
);
506 if (buffer
->in_error
)
508 buffer
->pos
[buffer
->len
- 1] = pos
;
513 #line 51 "hb-buffer-deserialize-json.rl"
519 #line 55 "hb-buffer-deserialize-json.rl"
521 if (!hb_font_glyph_from_string (font
,
528 #line 62 "hb-buffer-deserialize-json.rl"
529 { if (!parse_uint (tok
, p
, &info
.codepoint
)) return false; }
532 #line 63 "hb-buffer-deserialize-json.rl"
533 { if (!parse_uint (tok
, p
, &info
.cluster
)) return false; }
536 #line 64 "hb-buffer-deserialize-json.rl"
537 { if (!parse_int (tok
, p
, &pos
.x_offset
)) return false; }
540 #line 65 "hb-buffer-deserialize-json.rl"
541 { if (!parse_int (tok
, p
, &pos
.y_offset
)) return false; }
544 #line 66 "hb-buffer-deserialize-json.rl"
545 { if (!parse_int (tok
, p
, &pos
.x_advance
)) return false; }
548 #line 67 "hb-buffer-deserialize-json.rl"
549 { if (!parse_int (tok
, p
, &pos
.y_advance
)) return false; }
552 #line 62 "hb-buffer-deserialize-json.rl"
553 { if (!parse_uint (tok
, p
, &info
.codepoint
)) return false; }
554 #line 43 "hb-buffer-deserialize-json.rl"
556 buffer
->add_info (info
);
557 if (buffer
->in_error
)
559 buffer
->pos
[buffer
->len
- 1] = pos
;
564 #line 63 "hb-buffer-deserialize-json.rl"
565 { if (!parse_uint (tok
, p
, &info
.cluster
)) return false; }
566 #line 43 "hb-buffer-deserialize-json.rl"
568 buffer
->add_info (info
);
569 if (buffer
->in_error
)
571 buffer
->pos
[buffer
->len
- 1] = pos
;
576 #line 64 "hb-buffer-deserialize-json.rl"
577 { if (!parse_int (tok
, p
, &pos
.x_offset
)) return false; }
578 #line 43 "hb-buffer-deserialize-json.rl"
580 buffer
->add_info (info
);
581 if (buffer
->in_error
)
583 buffer
->pos
[buffer
->len
- 1] = pos
;
588 #line 65 "hb-buffer-deserialize-json.rl"
589 { if (!parse_int (tok
, p
, &pos
.y_offset
)) return false; }
590 #line 43 "hb-buffer-deserialize-json.rl"
592 buffer
->add_info (info
);
593 if (buffer
->in_error
)
595 buffer
->pos
[buffer
->len
- 1] = pos
;
600 #line 66 "hb-buffer-deserialize-json.rl"
601 { if (!parse_int (tok
, p
, &pos
.x_advance
)) return false; }
602 #line 43 "hb-buffer-deserialize-json.rl"
604 buffer
->add_info (info
);
605 if (buffer
->in_error
)
607 buffer
->pos
[buffer
->len
- 1] = pos
;
612 #line 67 "hb-buffer-deserialize-json.rl"
613 { if (!parse_int (tok
, p
, &pos
.y_advance
)) return false; }
614 #line 43 "hb-buffer-deserialize-json.rl"
616 buffer
->add_info (info
);
617 if (buffer
->in_error
)
619 buffer
->pos
[buffer
->len
- 1] = pos
;
623 #line 624 "hb-buffer-deserialize-json.hh.tmp"
635 #line 125 "hb-buffer-deserialize-json.rl"
640 return p
== pe
&& *(p
-1) != ']';
643 #endif /* HB_BUFFER_DESERIALIZE_JSON_HH */