Imported Upstream version 3.4.0
[platform/upstream/harfbuzz.git] / src / hb-buffer-deserialize-json.hh
1
2 #line 1 "hb-buffer-deserialize-json.rl"
3 /*
4  * Copyright © 2013  Google, Inc.
5  *
6  *  This is part of HarfBuzz, a text shaping library.
7  *
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.
13  *
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
18  * DAMAGE.
19  *
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.
25  *
26  * Google Author(s): Behdad Esfahbod
27  */
28
29 #ifndef HB_BUFFER_DESERIALIZE_JSON_HH
30 #define HB_BUFFER_DESERIALIZE_JSON_HH
31
32 #include "hb.hh"
33
34
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
44 };
45
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, 
53         117, 85, 115, 0
54 };
55
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
64 };
65
66 static const char _deserialize_json_indicies[] = {
67         0, 0, 0, 0, 0, 1, 1, 
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, 
446         0
447 };
448
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
461 };
462
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
475 };
476
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;
480
481 static const int deserialize_json_en_main = 1;
482
483
484 #line 108 "hb-buffer-deserialize-json.rl"
485
486
487 static hb_bool_t
488 _hb_buffer_deserialize_json (hb_buffer_t *buffer,
489                                     const char *buf,
490                                     unsigned int buf_len,
491                                     const char **end_ptr,
492                                     hb_font_t *font)
493 {
494   const char *p = buf, *pe = buf + buf_len;
495
496   /* Ensure we have positions. */
497   (void) hb_buffer_get_glyph_positions (buffer, nullptr);
498
499   while (p < pe && ISSPACE (*p))
500     p++;
501   if (p < pe && *p == (buffer->len ? ',' : '['))
502   {
503     *end_ptr = ++p;
504   }
505
506   const char *tok = nullptr;
507   int cs;
508   hb_glyph_info_t info = {0};
509   hb_glyph_position_t pos = {0};
510   
511 #line 512 "hb-buffer-deserialize-json.hh"
512         {
513         cs = deserialize_json_start;
514         }
515
516 #line 517 "hb-buffer-deserialize-json.hh"
517         {
518         int _slen;
519         int _trans;
520         const unsigned char *_keys;
521         const char *_inds;
522         if ( p == pe )
523                 goto _test_eof;
524         if ( cs == 0 )
525                 goto _out;
526 _resume:
527         _keys = _deserialize_json_trans_keys + (cs<<1);
528         _inds = _deserialize_json_indicies + _deserialize_json_index_offsets[cs];
529
530         _slen = _deserialize_json_key_spans[cs];
531         _trans = _inds[ _slen > 0 && _keys[0] <=(*p) &&
532                 (*p) <= _keys[1] ?
533                 (*p) - _keys[0] : _slen ];
534
535         cs = _deserialize_json_trans_targs[_trans];
536
537         if ( _deserialize_json_trans_actions[_trans] == 0 )
538                 goto _again;
539
540         switch ( _deserialize_json_trans_actions[_trans] ) {
541         case 1:
542 #line 38 "hb-buffer-deserialize-json.rl"
543         {
544         memset (&info, 0, sizeof (info));
545         memset (&pos , 0, sizeof (pos ));
546 }
547         break;
548         case 5:
549 #line 43 "hb-buffer-deserialize-json.rl"
550         {
551         buffer->add_info (info);
552         if (unlikely (!buffer->successful))
553           return false;
554         buffer->pos[buffer->len - 1] = pos;
555         *end_ptr = p;
556 }
557         break;
558         case 2:
559 #line 51 "hb-buffer-deserialize-json.rl"
560         {
561         tok = p;
562 }
563         break;
564         case 15:
565 #line 55 "hb-buffer-deserialize-json.rl"
566         { if (unlikely (!buffer->ensure_glyphs ())) return false; }
567         break;
568         case 21:
569 #line 56 "hb-buffer-deserialize-json.rl"
570         { if (unlikely (!buffer->ensure_unicode ())) return false; }
571         break;
572         case 16:
573 #line 58 "hb-buffer-deserialize-json.rl"
574         {
575         /* TODO Unescape \" and \\ if found. */
576         if (!hb_font_glyph_from_string (font,
577                                         tok, p - tok,
578                                         &info.codepoint))
579           return false;
580 }
581         break;
582         case 18:
583 #line 66 "hb-buffer-deserialize-json.rl"
584         { if (!parse_uint (tok, p, &info.codepoint)) return false; }
585         break;
586         case 8:
587 #line 67 "hb-buffer-deserialize-json.rl"
588         { if (!parse_uint (tok, p, &info.cluster )) return false; }
589         break;
590         case 10:
591 #line 68 "hb-buffer-deserialize-json.rl"
592         { if (!parse_int  (tok, p, &pos.x_offset )) return false; }
593         break;
594         case 12:
595 #line 69 "hb-buffer-deserialize-json.rl"
596         { if (!parse_int  (tok, p, &pos.y_offset )) return false; }
597         break;
598         case 3:
599 #line 70 "hb-buffer-deserialize-json.rl"
600         { if (!parse_int  (tok, p, &pos.x_advance)) return false; }
601         break;
602         case 6:
603 #line 71 "hb-buffer-deserialize-json.rl"
604         { if (!parse_int  (tok, p, &pos.y_advance)) return false; }
605         break;
606         case 14:
607 #line 51 "hb-buffer-deserialize-json.rl"
608         {
609         tok = p;
610 }
611 #line 55 "hb-buffer-deserialize-json.rl"
612         { if (unlikely (!buffer->ensure_glyphs ())) return false; }
613         break;
614         case 20:
615 #line 51 "hb-buffer-deserialize-json.rl"
616         {
617         tok = p;
618 }
619 #line 56 "hb-buffer-deserialize-json.rl"
620         { if (unlikely (!buffer->ensure_unicode ())) return false; }
621         break;
622         case 17:
623 #line 58 "hb-buffer-deserialize-json.rl"
624         {
625         /* TODO Unescape \" and \\ if found. */
626         if (!hb_font_glyph_from_string (font,
627                                         tok, p - tok,
628                                         &info.codepoint))
629           return false;
630 }
631 #line 43 "hb-buffer-deserialize-json.rl"
632         {
633         buffer->add_info (info);
634         if (unlikely (!buffer->successful))
635           return false;
636         buffer->pos[buffer->len - 1] = pos;
637         *end_ptr = p;
638 }
639         break;
640         case 19:
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"
644         {
645         buffer->add_info (info);
646         if (unlikely (!buffer->successful))
647           return false;
648         buffer->pos[buffer->len - 1] = pos;
649         *end_ptr = p;
650 }
651         break;
652         case 9:
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"
656         {
657         buffer->add_info (info);
658         if (unlikely (!buffer->successful))
659           return false;
660         buffer->pos[buffer->len - 1] = pos;
661         *end_ptr = p;
662 }
663         break;
664         case 11:
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"
668         {
669         buffer->add_info (info);
670         if (unlikely (!buffer->successful))
671           return false;
672         buffer->pos[buffer->len - 1] = pos;
673         *end_ptr = p;
674 }
675         break;
676         case 13:
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"
680         {
681         buffer->add_info (info);
682         if (unlikely (!buffer->successful))
683           return false;
684         buffer->pos[buffer->len - 1] = pos;
685         *end_ptr = p;
686 }
687         break;
688         case 4:
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"
692         {
693         buffer->add_info (info);
694         if (unlikely (!buffer->successful))
695           return false;
696         buffer->pos[buffer->len - 1] = pos;
697         *end_ptr = p;
698 }
699         break;
700         case 7:
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"
704         {
705         buffer->add_info (info);
706         if (unlikely (!buffer->successful))
707           return false;
708         buffer->pos[buffer->len - 1] = pos;
709         *end_ptr = p;
710 }
711         break;
712 #line 713 "hb-buffer-deserialize-json.hh"
713         }
714
715 _again:
716         if ( cs == 0 )
717                 goto _out;
718         if ( ++p != pe )
719                 goto _resume;
720         _test_eof: {}
721         _out: {}
722         }
723
724 #line 136 "hb-buffer-deserialize-json.rl"
725
726
727   *end_ptr = p;
728
729   return p == pe && *(p-1) != ']';
730 }
731
732 #endif /* HB_BUFFER_DESERIALIZE_JSON_HH */