Imported Upstream version 1.2.7
[platform/upstream/harfbuzz.git] / src / hb-ot-shape-complex-use-machine.hh
1
2 #line 1 "hb-ot-shape-complex-use-machine.rl"
3 /*
4  * Copyright © 2015  Mozilla Foundation.
5  * Copyright © 2015  Google, Inc.
6  *
7  *  This is part of HarfBuzz, a text shaping library.
8  *
9  * Permission is hereby granted, without written agreement and without
10  * license or royalty fees, to use, copy, modify, and distribute this
11  * software and its documentation for any purpose, provided that the
12  * above copyright notice and the following two paragraphs appear in
13  * all copies of this software.
14  *
15  * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
16  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
17  * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
18  * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
19  * DAMAGE.
20  *
21  * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
22  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
23  * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
24  * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
25  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
26  *
27  * Mozilla Author(s): Jonathan Kew
28  * Google Author(s): Behdad Esfahbod
29  */
30
31 #ifndef HB_OT_SHAPE_COMPLEX_USE_MACHINE_HH
32 #define HB_OT_SHAPE_COMPLEX_USE_MACHINE_HH
33
34 #include "hb-private.hh"
35
36
37 #line 38 "hb-ot-shape-complex-use-machine.hh"
38 static const unsigned char _use_syllable_machine_trans_keys[] = {
39         0u, 0u, 4u, 4u, 1u, 1u, 0u, 39u, 21u, 21u, 8u, 39u, 8u, 39u, 1u, 1u, 
40         8u, 39u, 8u, 39u, 8u, 39u, 8u, 26u, 8u, 26u, 8u, 26u, 8u, 39u, 8u, 39u, 
41         8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 
42         8u, 39u, 8u, 39u, 8u, 39u, 1u, 1u, 8u, 39u, 8u, 39u, 8u, 26u, 8u, 26u, 
43         8u, 26u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 
44         8u, 39u, 12u, 21u, 12u, 13u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 26u, 
45         8u, 26u, 8u, 26u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 
46         8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 1u, 39u, 8u, 39u, 21u, 42u, 41u, 42u, 
47         42u, 42u, 0
48 };
49
50 static const char _use_syllable_machine_key_spans[] = {
51         0, 1, 1, 40, 1, 32, 32, 1, 
52         32, 32, 32, 19, 19, 19, 32, 32, 
53         32, 32, 32, 32, 32, 32, 32, 32, 
54         32, 32, 32, 1, 32, 32, 19, 19, 
55         19, 32, 32, 32, 32, 32, 32, 32, 
56         32, 10, 2, 32, 32, 32, 32, 19, 
57         19, 19, 32, 32, 32, 32, 32, 32, 
58         32, 32, 32, 32, 39, 32, 22, 2, 
59         1
60 };
61
62 static const short _use_syllable_machine_index_offsets[] = {
63         0, 0, 2, 4, 45, 47, 80, 113, 
64         115, 148, 181, 214, 234, 254, 274, 307, 
65         340, 373, 406, 439, 472, 505, 538, 571, 
66         604, 637, 670, 703, 705, 738, 771, 791, 
67         811, 831, 864, 897, 930, 963, 996, 1029, 
68         1062, 1095, 1106, 1109, 1142, 1175, 1208, 1241, 
69         1261, 1281, 1301, 1334, 1367, 1400, 1433, 1466, 
70         1499, 1532, 1565, 1598, 1631, 1671, 1704, 1727, 
71         1730
72 };
73
74 static const char _use_syllable_machine_indicies[] = {
75         1, 0, 3, 2, 4, 5, 6, 
76         4, 1, 5, 8, 8, 7, 8, 8, 
77         3, 9, 8, 8, 8, 4, 4, 10, 
78         11, 8, 8, 12, 13, 14, 15, 16, 
79         17, 18, 12, 19, 20, 21, 22, 23, 
80         24, 8, 25, 26, 27, 8, 29, 28, 
81         31, 30, 30, 32, 33, 30, 30, 30, 
82         30, 30, 30, 30, 30, 34, 35, 36, 
83         37, 38, 39, 40, 41, 35, 42, 34, 
84         43, 44, 45, 46, 30, 47, 48, 49, 
85         30, 31, 30, 30, 32, 33, 30, 30, 
86         30, 30, 30, 30, 30, 30, 50, 35, 
87         36, 37, 38, 39, 40, 41, 35, 42, 
88         43, 43, 44, 45, 46, 30, 47, 48, 
89         49, 30, 32, 51, 31, 30, 30, 32, 
90         33, 30, 30, 30, 30, 30, 30, 30, 
91         30, 30, 35, 36, 37, 38, 39, 40, 
92         41, 35, 42, 43, 43, 44, 45, 46, 
93         30, 47, 48, 49, 30, 31, 30, 30, 
94         30, 30, 30, 30, 30, 30, 30, 30, 
95         30, 30, 30, 35, 36, 37, 38, 39, 
96         30, 30, 30, 30, 30, 30, 44, 45, 
97         46, 30, 47, 48, 49, 30, 31, 30, 
98         30, 30, 30, 30, 30, 30, 30, 30, 
99         30, 30, 30, 30, 30, 36, 37, 38, 
100         39, 30, 30, 30, 30, 30, 30, 30, 
101         30, 30, 30, 47, 48, 49, 30, 31, 
102         30, 30, 30, 30, 30, 30, 30, 30, 
103         30, 30, 30, 30, 30, 30, 30, 37, 
104         38, 39, 30, 31, 30, 30, 30, 30, 
105         30, 30, 30, 30, 30, 30, 30, 30, 
106         30, 30, 30, 30, 38, 39, 30, 31, 
107         30, 30, 30, 30, 30, 30, 30, 30, 
108         30, 30, 30, 30, 30, 30, 30, 30, 
109         30, 39, 30, 31, 30, 30, 30, 30, 
110         30, 30, 30, 30, 30, 30, 30, 30, 
111         30, 30, 30, 37, 38, 39, 30, 30, 
112         30, 30, 30, 30, 30, 30, 30, 30, 
113         47, 48, 49, 30, 31, 30, 30, 30, 
114         30, 30, 30, 30, 30, 30, 30, 30, 
115         30, 30, 30, 30, 37, 38, 39, 30, 
116         30, 30, 30, 30, 30, 30, 30, 30, 
117         30, 30, 48, 49, 30, 31, 30, 30, 
118         30, 30, 30, 30, 30, 30, 30, 30, 
119         30, 30, 30, 30, 30, 37, 38, 39, 
120         30, 30, 30, 30, 30, 30, 30, 30, 
121         30, 30, 30, 30, 49, 30, 31, 30, 
122         30, 30, 30, 30, 30, 30, 30, 30, 
123         30, 30, 30, 30, 30, 36, 37, 38, 
124         39, 30, 30, 30, 30, 30, 30, 44, 
125         45, 46, 30, 47, 48, 49, 30, 31, 
126         30, 30, 30, 30, 30, 30, 30, 30, 
127         30, 30, 30, 30, 30, 30, 36, 37, 
128         38, 39, 30, 30, 30, 30, 30, 30, 
129         30, 45, 46, 30, 47, 48, 49, 30, 
130         31, 30, 30, 30, 30, 30, 30, 30, 
131         30, 30, 30, 30, 30, 30, 30, 36, 
132         37, 38, 39, 30, 30, 30, 30, 30, 
133         30, 30, 30, 46, 30, 47, 48, 49, 
134         30, 31, 30, 30, 30, 30, 30, 30, 
135         30, 30, 30, 30, 30, 30, 30, 35, 
136         36, 37, 38, 39, 30, 41, 35, 30, 
137         30, 30, 44, 45, 46, 30, 47, 48, 
138         49, 30, 31, 30, 30, 30, 30, 30, 
139         30, 30, 30, 30, 30, 30, 30, 30, 
140         35, 36, 37, 38, 39, 30, 30, 35, 
141         30, 30, 30, 44, 45, 46, 30, 47, 
142         48, 49, 30, 31, 30, 30, 30, 30, 
143         30, 30, 30, 30, 30, 30, 30, 30, 
144         30, 35, 36, 37, 38, 39, 40, 41, 
145         35, 30, 30, 30, 44, 45, 46, 30, 
146         47, 48, 49, 30, 31, 30, 30, 32, 
147         33, 30, 30, 30, 30, 30, 30, 30, 
148         30, 30, 35, 36, 37, 38, 39, 40, 
149         41, 35, 42, 30, 43, 44, 45, 46, 
150         30, 47, 48, 49, 30, 31, 30, 30, 
151         32, 33, 30, 30, 30, 30, 30, 30, 
152         30, 30, 30, 35, 36, 37, 38, 39, 
153         40, 41, 35, 42, 34, 43, 44, 45, 
154         46, 30, 47, 48, 49, 30, 53, 52, 
155         52, 54, 55, 52, 52, 52, 52, 52, 
156         52, 52, 52, 56, 52, 57, 58, 59, 
157         60, 61, 62, 57, 63, 56, 64, 52, 
158         52, 52, 52, 65, 66, 67, 52, 53, 
159         52, 52, 54, 55, 52, 52, 52, 52, 
160         52, 52, 52, 52, 68, 52, 57, 58, 
161         59, 60, 61, 62, 57, 63, 64, 64, 
162         52, 52, 52, 52, 65, 66, 67, 52, 
163         54, 51, 53, 52, 52, 54, 55, 52, 
164         52, 52, 52, 52, 52, 52, 52, 52, 
165         52, 57, 58, 59, 60, 61, 62, 57, 
166         63, 64, 64, 52, 52, 52, 52, 65, 
167         66, 67, 52, 53, 52, 52, 52, 52, 
168         52, 52, 52, 52, 52, 52, 52, 52, 
169         52, 52, 57, 58, 59, 60, 52, 52, 
170         52, 52, 52, 52, 52, 52, 52, 52, 
171         65, 66, 67, 52, 53, 52, 52, 52, 
172         52, 52, 52, 52, 52, 52, 52, 52, 
173         52, 52, 52, 52, 58, 59, 60, 52, 
174         53, 52, 52, 52, 52, 52, 52, 52, 
175         52, 52, 52, 52, 52, 52, 52, 52, 
176         52, 59, 60, 52, 53, 52, 52, 52, 
177         52, 52, 52, 52, 52, 52, 52, 52, 
178         52, 52, 52, 52, 52, 52, 60, 52, 
179         53, 52, 52, 52, 52, 52, 52, 52, 
180         52, 52, 52, 52, 52, 52, 52, 52, 
181         58, 59, 60, 52, 52, 52, 52, 52, 
182         52, 52, 52, 52, 52, 65, 66, 67, 
183         52, 53, 52, 52, 52, 52, 52, 52, 
184         52, 52, 52, 52, 52, 52, 52, 52, 
185         52, 58, 59, 60, 52, 52, 52, 52, 
186         52, 52, 52, 52, 52, 52, 52, 66, 
187         67, 52, 53, 52, 52, 52, 52, 52, 
188         52, 52, 52, 52, 52, 52, 52, 52, 
189         52, 52, 58, 59, 60, 52, 52, 52, 
190         52, 52, 52, 52, 52, 52, 52, 52, 
191         52, 67, 52, 53, 52, 52, 52, 52, 
192         52, 52, 52, 52, 52, 52, 52, 52, 
193         52, 52, 57, 58, 59, 60, 52, 62, 
194         57, 52, 52, 52, 52, 52, 52, 52, 
195         65, 66, 67, 52, 53, 52, 52, 52, 
196         52, 52, 52, 52, 52, 52, 52, 52, 
197         52, 52, 52, 57, 58, 59, 60, 52, 
198         52, 57, 52, 52, 52, 52, 52, 52, 
199         52, 65, 66, 67, 52, 53, 52, 52, 
200         52, 52, 52, 52, 52, 52, 52, 52, 
201         52, 52, 52, 52, 57, 58, 59, 60, 
202         61, 62, 57, 52, 52, 52, 52, 52, 
203         52, 52, 65, 66, 67, 52, 53, 52, 
204         52, 54, 55, 52, 52, 52, 52, 52, 
205         52, 52, 52, 52, 52, 57, 58, 59, 
206         60, 61, 62, 57, 63, 52, 64, 52, 
207         52, 52, 52, 65, 66, 67, 52, 53, 
208         52, 52, 54, 55, 52, 52, 52, 52, 
209         52, 52, 52, 52, 52, 52, 57, 58, 
210         59, 60, 61, 62, 57, 63, 56, 64, 
211         52, 52, 52, 52, 65, 66, 67, 52, 
212         70, 71, 69, 69, 69, 69, 69, 69, 
213         69, 72, 69, 70, 71, 69, 7, 73, 
214         73, 3, 9, 73, 73, 73, 73, 73, 
215         73, 73, 73, 74, 12, 13, 14, 15, 
216         16, 17, 18, 12, 19, 21, 21, 22, 
217         23, 24, 73, 25, 26, 27, 73, 7, 
218         73, 73, 3, 9, 73, 73, 73, 73, 
219         73, 73, 73, 73, 73, 12, 13, 14, 
220         15, 16, 17, 18, 12, 19, 21, 21, 
221         22, 23, 24, 73, 25, 26, 27, 73, 
222         7, 73, 73, 73, 73, 73, 73, 73, 
223         73, 73, 73, 73, 73, 73, 12, 13, 
224         14, 15, 16, 73, 73, 73, 73, 73, 
225         73, 22, 23, 24, 73, 25, 26, 27, 
226         73, 7, 73, 73, 73, 73, 73, 73, 
227         73, 73, 73, 73, 73, 73, 73, 73, 
228         13, 14, 15, 16, 73, 73, 73, 73, 
229         73, 73, 73, 73, 73, 73, 25, 26, 
230         27, 73, 7, 73, 73, 73, 73, 73, 
231         73, 73, 73, 73, 73, 73, 73, 73, 
232         73, 73, 14, 15, 16, 73, 7, 73, 
233         73, 73, 73, 73, 73, 73, 73, 73, 
234         73, 73, 73, 73, 73, 73, 73, 15, 
235         16, 73, 7, 73, 73, 73, 73, 73, 
236         73, 73, 73, 73, 73, 73, 73, 73, 
237         73, 73, 73, 73, 16, 73, 7, 73, 
238         73, 73, 73, 73, 73, 73, 73, 73, 
239         73, 73, 73, 73, 73, 73, 14, 15, 
240         16, 73, 73, 73, 73, 73, 73, 73, 
241         73, 73, 73, 25, 26, 27, 73, 7, 
242         73, 73, 73, 73, 73, 73, 73, 73, 
243         73, 73, 73, 73, 73, 73, 73, 14, 
244         15, 16, 73, 73, 73, 73, 73, 73, 
245         73, 73, 73, 73, 73, 26, 27, 73, 
246         7, 73, 73, 73, 73, 73, 73, 73, 
247         73, 73, 73, 73, 73, 73, 73, 73, 
248         14, 15, 16, 73, 73, 73, 73, 73, 
249         73, 73, 73, 73, 73, 73, 73, 27, 
250         73, 7, 73, 73, 73, 73, 73, 73, 
251         73, 73, 73, 73, 73, 73, 73, 73, 
252         13, 14, 15, 16, 73, 73, 73, 73, 
253         73, 73, 22, 23, 24, 73, 25, 26, 
254         27, 73, 7, 73, 73, 73, 73, 73, 
255         73, 73, 73, 73, 73, 73, 73, 73, 
256         73, 13, 14, 15, 16, 73, 73, 73, 
257         73, 73, 73, 73, 23, 24, 73, 25, 
258         26, 27, 73, 7, 73, 73, 73, 73, 
259         73, 73, 73, 73, 73, 73, 73, 73, 
260         73, 73, 13, 14, 15, 16, 73, 73, 
261         73, 73, 73, 73, 73, 73, 24, 73, 
262         25, 26, 27, 73, 7, 73, 73, 73, 
263         73, 73, 73, 73, 73, 73, 73, 73, 
264         73, 73, 12, 13, 14, 15, 16, 73, 
265         18, 12, 73, 73, 73, 22, 23, 24, 
266         73, 25, 26, 27, 73, 7, 73, 73, 
267         73, 73, 73, 73, 73, 73, 73, 73, 
268         73, 73, 73, 12, 13, 14, 15, 16, 
269         73, 73, 12, 73, 73, 73, 22, 23, 
270         24, 73, 25, 26, 27, 73, 7, 73, 
271         73, 73, 73, 73, 73, 73, 73, 73, 
272         73, 73, 73, 73, 12, 13, 14, 15, 
273         16, 17, 18, 12, 73, 73, 73, 22, 
274         23, 24, 73, 25, 26, 27, 73, 7, 
275         73, 73, 3, 9, 73, 73, 73, 73, 
276         73, 73, 73, 73, 73, 12, 13, 14, 
277         15, 16, 17, 18, 12, 19, 73, 21, 
278         22, 23, 24, 73, 25, 26, 27, 73, 
279         5, 6, 73, 73, 5, 73, 73, 7, 
280         73, 73, 3, 9, 73, 73, 73, 73, 
281         73, 73, 73, 73, 73, 12, 13, 14, 
282         15, 16, 17, 18, 12, 19, 20, 21, 
283         22, 23, 24, 73, 25, 26, 27, 73, 
284         7, 73, 73, 3, 9, 73, 73, 73, 
285         73, 73, 73, 73, 73, 73, 12, 13, 
286         14, 15, 16, 17, 18, 12, 19, 20, 
287         21, 22, 23, 24, 73, 25, 26, 27, 
288         73, 76, 75, 75, 75, 75, 75, 75, 
289         75, 75, 75, 75, 75, 75, 75, 75, 
290         75, 75, 75, 75, 75, 76, 77, 75, 
291         76, 77, 75, 77, 75, 0
292 };
293
294 static const char _use_syllable_machine_trans_targs[] = {
295         3, 41, 3, 43, 4, 5, 25, 3, 
296         0, 2, 60, 62, 45, 46, 47, 48, 
297         49, 56, 57, 58, 61, 59, 53, 54, 
298         55, 50, 51, 52, 3, 3, 3, 3, 
299         6, 7, 24, 9, 10, 11, 12, 13, 
300         20, 21, 22, 23, 17, 18, 19, 14, 
301         15, 16, 8, 3, 3, 3, 26, 27, 
302         40, 29, 30, 31, 32, 36, 37, 38, 
303         39, 33, 34, 35, 28, 3, 3, 1, 
304         42, 3, 44, 3, 63, 64
305 };
306
307 static const char _use_syllable_machine_trans_actions[] = {
308         1, 2, 3, 4, 0, 0, 0, 7, 
309         0, 0, 4, 0, 0, 0, 0, 0, 
310         0, 0, 0, 0, 4, 4, 0, 0, 
311         0, 0, 0, 0, 8, 9, 10, 11, 
312         0, 0, 0, 0, 0, 0, 0, 0, 
313         0, 0, 0, 0, 0, 0, 0, 0, 
314         0, 0, 0, 12, 13, 14, 0, 0, 
315         0, 0, 0, 0, 0, 0, 0, 0, 
316         0, 0, 0, 0, 0, 15, 16, 0, 
317         2, 17, 4, 18, 0, 0
318 };
319
320 static const char _use_syllable_machine_to_state_actions[] = {
321         0, 0, 0, 5, 0, 0, 0, 0, 
322         0, 0, 0, 0, 0, 0, 0, 0, 
323         0, 0, 0, 0, 0, 0, 0, 0, 
324         0, 0, 0, 0, 0, 0, 0, 0, 
325         0, 0, 0, 0, 0, 0, 0, 0, 
326         0, 0, 0, 0, 0, 0, 0, 0, 
327         0, 0, 0, 0, 0, 0, 0, 0, 
328         0, 0, 0, 0, 0, 0, 0, 0, 
329         0
330 };
331
332 static const char _use_syllable_machine_from_state_actions[] = {
333         0, 0, 0, 6, 0, 0, 0, 0, 
334         0, 0, 0, 0, 0, 0, 0, 0, 
335         0, 0, 0, 0, 0, 0, 0, 0, 
336         0, 0, 0, 0, 0, 0, 0, 0, 
337         0, 0, 0, 0, 0, 0, 0, 0, 
338         0, 0, 0, 0, 0, 0, 0, 0, 
339         0, 0, 0, 0, 0, 0, 0, 0, 
340         0, 0, 0, 0, 0, 0, 0, 0, 
341         0
342 };
343
344 static const short _use_syllable_machine_eof_trans[] = {
345         0, 1, 3, 0, 29, 31, 31, 52, 
346         31, 31, 31, 31, 31, 31, 31, 31, 
347         31, 31, 31, 31, 31, 31, 31, 31, 
348         31, 53, 53, 52, 53, 53, 53, 53, 
349         53, 53, 53, 53, 53, 53, 53, 53, 
350         53, 70, 70, 74, 74, 74, 74, 74, 
351         74, 74, 74, 74, 74, 74, 74, 74, 
352         74, 74, 74, 74, 74, 74, 76, 76, 
353         76
354 };
355
356 static const int use_syllable_machine_start = 3;
357 static const int use_syllable_machine_first_final = 3;
358 static const int use_syllable_machine_error = 0;
359
360 static const int use_syllable_machine_en_main = 3;
361
362
363 #line 38 "hb-ot-shape-complex-use-machine.rl"
364
365
366
367 #line 145 "hb-ot-shape-complex-use-machine.rl"
368
369
370 #define found_syllable(syllable_type) \
371   HB_STMT_START { \
372     if (0) fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #syllable_type); \
373     for (unsigned int i = last; i < p+1; i++) \
374       info[i].syllable() = (syllable_serial << 4) | syllable_type; \
375     last = p+1; \
376     syllable_serial++; \
377     if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
378   } HB_STMT_END
379
380 static void
381 find_syllables (hb_buffer_t *buffer)
382 {
383   unsigned int p, pe, eof, ts HB_UNUSED, te HB_UNUSED, act HB_UNUSED;
384   int cs;
385   hb_glyph_info_t *info = buffer->info;
386   
387 #line 388 "hb-ot-shape-complex-use-machine.hh"
388         {
389         cs = use_syllable_machine_start;
390         ts = 0;
391         te = 0;
392         act = 0;
393         }
394
395 #line 166 "hb-ot-shape-complex-use-machine.rl"
396
397
398   p = 0;
399   pe = eof = buffer->len;
400
401   unsigned int last = 0;
402   unsigned int syllable_serial = 1;
403   
404 #line 405 "hb-ot-shape-complex-use-machine.hh"
405         {
406         int _slen;
407         int _trans;
408         const unsigned char *_keys;
409         const char *_inds;
410         if ( p == pe )
411                 goto _test_eof;
412         if ( cs == 0 )
413                 goto _out;
414 _resume:
415         switch ( _use_syllable_machine_from_state_actions[cs] ) {
416         case 6:
417 #line 1 "NONE"
418         {ts = p;}
419         break;
420 #line 421 "hb-ot-shape-complex-use-machine.hh"
421         }
422
423         _keys = _use_syllable_machine_trans_keys + (cs<<1);
424         _inds = _use_syllable_machine_indicies + _use_syllable_machine_index_offsets[cs];
425
426         _slen = _use_syllable_machine_key_spans[cs];
427         _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].use_category()) &&
428                 ( info[p].use_category()) <= _keys[1] ?
429                 ( info[p].use_category()) - _keys[0] : _slen ];
430
431 _eof_trans:
432         cs = _use_syllable_machine_trans_targs[_trans];
433
434         if ( _use_syllable_machine_trans_actions[_trans] == 0 )
435                 goto _again;
436
437         switch ( _use_syllable_machine_trans_actions[_trans] ) {
438         case 2:
439 #line 1 "NONE"
440         {te = p+1;}
441         break;
442         case 9:
443 #line 134 "hb-ot-shape-complex-use-machine.rl"
444         {te = p+1;{ found_syllable (independent_cluster); }}
445         break;
446         case 11:
447 #line 136 "hb-ot-shape-complex-use-machine.rl"
448         {te = p+1;{ found_syllable (consonant_cluster); }}
449         break;
450         case 14:
451 #line 137 "hb-ot-shape-complex-use-machine.rl"
452         {te = p+1;{ found_syllable (vowel_cluster); }}
453         break;
454         case 16:
455 #line 138 "hb-ot-shape-complex-use-machine.rl"
456         {te = p+1;{ found_syllable (number_joiner_terminated_cluster); }}
457         break;
458         case 7:
459 #line 141 "hb-ot-shape-complex-use-machine.rl"
460         {te = p+1;{ found_syllable (broken_cluster); }}
461         break;
462         case 8:
463 #line 134 "hb-ot-shape-complex-use-machine.rl"
464         {te = p;p--;{ found_syllable (independent_cluster); }}
465         break;
466         case 12:
467 #line 135 "hb-ot-shape-complex-use-machine.rl"
468         {te = p;p--;{ found_syllable (virama_terminated_cluster); }}
469         break;
470         case 10:
471 #line 136 "hb-ot-shape-complex-use-machine.rl"
472         {te = p;p--;{ found_syllable (consonant_cluster); }}
473         break;
474         case 13:
475 #line 137 "hb-ot-shape-complex-use-machine.rl"
476         {te = p;p--;{ found_syllable (vowel_cluster); }}
477         break;
478         case 15:
479 #line 139 "hb-ot-shape-complex-use-machine.rl"
480         {te = p;p--;{ found_syllable (numeral_cluster); }}
481         break;
482         case 18:
483 #line 140 "hb-ot-shape-complex-use-machine.rl"
484         {te = p;p--;{ found_syllable (symbol_cluster); }}
485         break;
486         case 17:
487 #line 141 "hb-ot-shape-complex-use-machine.rl"
488         {te = p;p--;{ found_syllable (broken_cluster); }}
489         break;
490         case 1:
491 #line 139 "hb-ot-shape-complex-use-machine.rl"
492         {{p = ((te))-1;}{ found_syllable (numeral_cluster); }}
493         break;
494         case 3:
495 #line 1 "NONE"
496         {       switch( act ) {
497         case 0:
498         {{cs = 0; goto _again;}}
499         break;
500         case 8:
501         {{p = ((te))-1;} found_syllable (broken_cluster); }
502         break;
503         }
504         }
505         break;
506         case 4:
507 #line 1 "NONE"
508         {te = p+1;}
509 #line 141 "hb-ot-shape-complex-use-machine.rl"
510         {act = 8;}
511         break;
512 #line 513 "hb-ot-shape-complex-use-machine.hh"
513         }
514
515 _again:
516         switch ( _use_syllable_machine_to_state_actions[cs] ) {
517         case 5:
518 #line 1 "NONE"
519         {ts = 0;}
520 #line 1 "NONE"
521         {act = 0;}
522         break;
523 #line 524 "hb-ot-shape-complex-use-machine.hh"
524         }
525
526         if ( cs == 0 )
527                 goto _out;
528         if ( ++p != pe )
529                 goto _resume;
530         _test_eof: {}
531         if ( p == eof )
532         {
533         if ( _use_syllable_machine_eof_trans[cs] > 0 ) {
534                 _trans = _use_syllable_machine_eof_trans[cs] - 1;
535                 goto _eof_trans;
536         }
537         }
538
539         _out: {}
540         }
541
542 #line 175 "hb-ot-shape-complex-use-machine.rl"
543
544 }
545
546 #undef found_syllable
547
548 #endif /* HB_OT_SHAPE_COMPLEX_USE_MACHINE_HH */