Fixed broken patch
[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.hh"
35
36
37 #line 38 "hb-ot-shape-complex-use-machine.hh"
38 static const unsigned char _use_syllable_machine_trans_keys[] = {
39         12u, 48u, 1u, 15u, 1u, 1u, 12u, 48u, 1u, 1u, 0u, 48u, 21u, 21u, 11u, 48u, 
40         11u, 48u, 1u, 15u, 1u, 1u, 11u, 48u, 22u, 48u, 23u, 48u, 24u, 47u, 25u, 47u, 
41         26u, 47u, 45u, 46u, 46u, 46u, 24u, 48u, 24u, 48u, 24u, 48u, 1u, 1u, 24u, 48u, 
42         23u, 48u, 23u, 48u, 23u, 48u, 22u, 48u, 22u, 48u, 22u, 48u, 22u, 48u, 11u, 48u, 
43         1u, 48u, 11u, 48u, 13u, 21u, 4u, 4u, 13u, 13u, 11u, 48u, 11u, 48u, 41u, 42u, 
44         42u, 42u, 11u, 48u, 11u, 48u, 22u, 48u, 23u, 48u, 24u, 47u, 25u, 47u, 26u, 47u, 
45         45u, 46u, 46u, 46u, 24u, 48u, 24u, 48u, 24u, 48u, 24u, 48u, 23u, 48u, 23u, 48u, 
46         23u, 48u, 22u, 48u, 22u, 48u, 22u, 48u, 22u, 48u, 11u, 48u, 1u, 48u, 1u, 15u, 
47         4u, 4u, 13u, 21u, 13u, 13u, 12u, 48u, 1u, 48u, 11u, 48u, 41u, 42u, 42u, 42u, 
48         21u, 42u, 1u, 5u, 0
49 };
50
51 static const char _use_syllable_machine_key_spans[] = {
52         37, 15, 1, 37, 1, 49, 1, 38, 
53         38, 15, 1, 38, 27, 26, 24, 23, 
54         22, 2, 1, 25, 25, 25, 1, 25, 
55         26, 26, 26, 27, 27, 27, 27, 38, 
56         48, 38, 9, 1, 1, 38, 38, 2, 
57         1, 38, 38, 27, 26, 24, 23, 22, 
58         2, 1, 25, 25, 25, 25, 26, 26, 
59         26, 27, 27, 27, 27, 38, 48, 15, 
60         1, 9, 1, 37, 48, 38, 2, 1, 
61         22, 5
62 };
63
64 static const short _use_syllable_machine_index_offsets[] = {
65         0, 38, 54, 56, 94, 96, 146, 148, 
66         187, 226, 242, 244, 283, 311, 338, 363, 
67         387, 410, 413, 415, 441, 467, 493, 495, 
68         521, 548, 575, 602, 630, 658, 686, 714, 
69         753, 802, 841, 851, 853, 855, 894, 933, 
70         936, 938, 977, 1016, 1044, 1071, 1096, 1120, 
71         1143, 1146, 1148, 1174, 1200, 1226, 1252, 1279, 
72         1306, 1333, 1361, 1389, 1417, 1445, 1484, 1533, 
73         1549, 1551, 1561, 1563, 1601, 1650, 1689, 1692, 
74         1694, 1717
75 };
76
77 static const char _use_syllable_machine_indicies[] = {
78         1, 0, 0, 0, 0, 0, 0, 0, 
79         0, 0, 0, 0, 0, 0, 0, 0, 
80         0, 0, 0, 0, 0, 0, 0, 0, 
81         0, 0, 0, 0, 0, 0, 0, 0, 
82         1, 0, 0, 0, 1, 0, 3, 2, 
83         2, 2, 2, 2, 2, 2, 2, 2, 
84         2, 2, 2, 2, 4, 2, 3, 2, 
85         6, 5, 5, 5, 5, 5, 5, 5, 
86         5, 5, 5, 5, 5, 5, 5, 5, 
87         5, 5, 5, 5, 5, 5, 5, 5, 
88         5, 5, 5, 5, 5, 5, 5, 5, 
89         6, 5, 5, 5, 6, 5, 7, 5, 
90         8, 9, 10, 8, 11, 12, 10, 10, 
91         10, 10, 10, 3, 13, 14, 10, 15, 
92         8, 8, 16, 17, 10, 10, 18, 19, 
93         20, 21, 22, 23, 24, 18, 25, 26, 
94         27, 28, 29, 30, 10, 31, 32, 33, 
95         10, 34, 35, 36, 37, 38, 39, 40, 
96         13, 10, 42, 41, 44, 1, 43, 43, 
97         45, 43, 43, 43, 43, 43, 46, 47, 
98         48, 49, 50, 51, 52, 53, 47, 54, 
99         46, 55, 56, 57, 58, 43, 59, 60, 
100         61, 43, 43, 43, 43, 62, 63, 64, 
101         65, 1, 43, 44, 1, 43, 43, 45, 
102         43, 43, 43, 43, 43, 66, 47, 48, 
103         49, 50, 51, 52, 53, 47, 54, 55, 
104         55, 56, 57, 58, 43, 59, 60, 61, 
105         43, 43, 43, 43, 62, 63, 64, 65, 
106         1, 43, 44, 67, 67, 67, 67, 67, 
107         67, 67, 67, 67, 67, 67, 67, 67, 
108         68, 67, 44, 67, 44, 1, 43, 43, 
109         45, 43, 43, 43, 43, 43, 43, 47, 
110         48, 49, 50, 51, 52, 53, 47, 54, 
111         55, 55, 56, 57, 58, 43, 59, 60, 
112         61, 43, 43, 43, 43, 62, 63, 64, 
113         65, 1, 43, 47, 48, 49, 50, 51, 
114         43, 43, 43, 43, 43, 43, 56, 57, 
115         58, 43, 59, 60, 61, 43, 43, 43, 
116         43, 48, 63, 64, 65, 69, 43, 48, 
117         49, 50, 51, 43, 43, 43, 43, 43, 
118         43, 43, 43, 43, 43, 59, 60, 61, 
119         43, 43, 43, 43, 43, 63, 64, 65, 
120         69, 43, 49, 50, 51, 43, 43, 43, 
121         43, 43, 43, 43, 43, 43, 43, 43, 
122         43, 43, 43, 43, 43, 43, 43, 63, 
123         64, 65, 43, 50, 51, 43, 43, 43, 
124         43, 43, 43, 43, 43, 43, 43, 43, 
125         43, 43, 43, 43, 43, 43, 43, 63, 
126         64, 65, 43, 51, 43, 43, 43, 43, 
127         43, 43, 43, 43, 43, 43, 43, 43, 
128         43, 43, 43, 43, 43, 43, 63, 64, 
129         65, 43, 63, 64, 43, 64, 43, 49, 
130         50, 51, 43, 43, 43, 43, 43, 43, 
131         43, 43, 43, 43, 59, 60, 61, 43, 
132         43, 43, 43, 43, 63, 64, 65, 69, 
133         43, 49, 50, 51, 43, 43, 43, 43, 
134         43, 43, 43, 43, 43, 43, 43, 60, 
135         61, 43, 43, 43, 43, 43, 63, 64, 
136         65, 69, 43, 49, 50, 51, 43, 43, 
137         43, 43, 43, 43, 43, 43, 43, 43, 
138         43, 43, 61, 43, 43, 43, 43, 43, 
139         63, 64, 65, 69, 43, 71, 70, 49, 
140         50, 51, 43, 43, 43, 43, 43, 43, 
141         43, 43, 43, 43, 43, 43, 43, 43, 
142         43, 43, 43, 43, 63, 64, 65, 69, 
143         43, 48, 49, 50, 51, 43, 43, 43, 
144         43, 43, 43, 56, 57, 58, 43, 59, 
145         60, 61, 43, 43, 43, 43, 48, 63, 
146         64, 65, 69, 43, 48, 49, 50, 51, 
147         43, 43, 43, 43, 43, 43, 43, 57, 
148         58, 43, 59, 60, 61, 43, 43, 43, 
149         43, 48, 63, 64, 65, 69, 43, 48, 
150         49, 50, 51, 43, 43, 43, 43, 43, 
151         43, 43, 43, 58, 43, 59, 60, 61, 
152         43, 43, 43, 43, 48, 63, 64, 65, 
153         69, 43, 47, 48, 49, 50, 51, 43, 
154         53, 47, 43, 43, 43, 56, 57, 58, 
155         43, 59, 60, 61, 43, 43, 43, 43, 
156         48, 63, 64, 65, 69, 43, 47, 48, 
157         49, 50, 51, 43, 72, 47, 43, 43, 
158         43, 56, 57, 58, 43, 59, 60, 61, 
159         43, 43, 43, 43, 48, 63, 64, 65, 
160         69, 43, 47, 48, 49, 50, 51, 43, 
161         43, 47, 43, 43, 43, 56, 57, 58, 
162         43, 59, 60, 61, 43, 43, 43, 43, 
163         48, 63, 64, 65, 69, 43, 47, 48, 
164         49, 50, 51, 52, 53, 47, 43, 43, 
165         43, 56, 57, 58, 43, 59, 60, 61, 
166         43, 43, 43, 43, 48, 63, 64, 65, 
167         69, 43, 44, 1, 43, 43, 45, 43, 
168         43, 43, 43, 43, 43, 47, 48, 49, 
169         50, 51, 52, 53, 47, 54, 43, 55, 
170         56, 57, 58, 43, 59, 60, 61, 43, 
171         43, 43, 43, 62, 63, 64, 65, 1, 
172         43, 44, 67, 67, 67, 67, 67, 67, 
173         67, 67, 67, 67, 67, 67, 67, 68, 
174         67, 67, 67, 67, 67, 67, 67, 48, 
175         49, 50, 51, 67, 67, 67, 67, 67, 
176         67, 67, 67, 67, 67, 59, 60, 61, 
177         67, 67, 67, 67, 67, 63, 64, 65, 
178         69, 67, 44, 1, 43, 43, 45, 43, 
179         43, 43, 43, 43, 43, 47, 48, 49, 
180         50, 51, 52, 53, 47, 54, 46, 55, 
181         56, 57, 58, 43, 59, 60, 61, 43, 
182         43, 43, 43, 62, 63, 64, 65, 1, 
183         43, 74, 73, 73, 73, 73, 73, 73, 
184         73, 75, 73, 11, 76, 74, 73, 44, 
185         1, 43, 43, 45, 43, 43, 43, 43, 
186         43, 77, 47, 48, 49, 50, 51, 52, 
187         53, 47, 54, 46, 55, 56, 57, 58, 
188         43, 59, 60, 61, 43, 78, 79, 43, 
189         62, 63, 64, 65, 1, 43, 44, 1, 
190         43, 43, 45, 43, 43, 43, 43, 43, 
191         43, 47, 48, 49, 50, 51, 52, 53, 
192         47, 54, 46, 55, 56, 57, 58, 43, 
193         59, 60, 61, 43, 78, 79, 43, 62, 
194         63, 64, 65, 1, 43, 78, 79, 80, 
195         79, 80, 3, 6, 81, 81, 82, 81, 
196         81, 81, 81, 81, 83, 18, 19, 20, 
197         21, 22, 23, 24, 18, 25, 27, 27, 
198         28, 29, 30, 81, 31, 32, 33, 81, 
199         81, 81, 81, 37, 38, 39, 40, 6, 
200         81, 3, 6, 81, 81, 82, 81, 81, 
201         81, 81, 81, 81, 18, 19, 20, 21, 
202         22, 23, 24, 18, 25, 27, 27, 28, 
203         29, 30, 81, 31, 32, 33, 81, 81, 
204         81, 81, 37, 38, 39, 40, 6, 81, 
205         18, 19, 20, 21, 22, 81, 81, 81, 
206         81, 81, 81, 28, 29, 30, 81, 31, 
207         32, 33, 81, 81, 81, 81, 19, 38, 
208         39, 40, 84, 81, 19, 20, 21, 22, 
209         81, 81, 81, 81, 81, 81, 81, 81, 
210         81, 81, 31, 32, 33, 81, 81, 81, 
211         81, 81, 38, 39, 40, 84, 81, 20, 
212         21, 22, 81, 81, 81, 81, 81, 81, 
213         81, 81, 81, 81, 81, 81, 81, 81, 
214         81, 81, 81, 81, 38, 39, 40, 81, 
215         21, 22, 81, 81, 81, 81, 81, 81, 
216         81, 81, 81, 81, 81, 81, 81, 81, 
217         81, 81, 81, 81, 38, 39, 40, 81, 
218         22, 81, 81, 81, 81, 81, 81, 81, 
219         81, 81, 81, 81, 81, 81, 81, 81, 
220         81, 81, 81, 38, 39, 40, 81, 38, 
221         39, 81, 39, 81, 20, 21, 22, 81, 
222         81, 81, 81, 81, 81, 81, 81, 81, 
223         81, 31, 32, 33, 81, 81, 81, 81, 
224         81, 38, 39, 40, 84, 81, 20, 21, 
225         22, 81, 81, 81, 81, 81, 81, 81, 
226         81, 81, 81, 81, 32, 33, 81, 81, 
227         81, 81, 81, 38, 39, 40, 84, 81, 
228         20, 21, 22, 81, 81, 81, 81, 81, 
229         81, 81, 81, 81, 81, 81, 81, 33, 
230         81, 81, 81, 81, 81, 38, 39, 40, 
231         84, 81, 20, 21, 22, 81, 81, 81, 
232         81, 81, 81, 81, 81, 81, 81, 81, 
233         81, 81, 81, 81, 81, 81, 81, 38, 
234         39, 40, 84, 81, 19, 20, 21, 22, 
235         81, 81, 81, 81, 81, 81, 28, 29, 
236         30, 81, 31, 32, 33, 81, 81, 81, 
237         81, 19, 38, 39, 40, 84, 81, 19, 
238         20, 21, 22, 81, 81, 81, 81, 81, 
239         81, 81, 29, 30, 81, 31, 32, 33, 
240         81, 81, 81, 81, 19, 38, 39, 40, 
241         84, 81, 19, 20, 21, 22, 81, 81, 
242         81, 81, 81, 81, 81, 81, 30, 81, 
243         31, 32, 33, 81, 81, 81, 81, 19, 
244         38, 39, 40, 84, 81, 18, 19, 20, 
245         21, 22, 81, 24, 18, 81, 81, 81, 
246         28, 29, 30, 81, 31, 32, 33, 81, 
247         81, 81, 81, 19, 38, 39, 40, 84, 
248         81, 18, 19, 20, 21, 22, 81, 85, 
249         18, 81, 81, 81, 28, 29, 30, 81, 
250         31, 32, 33, 81, 81, 81, 81, 19, 
251         38, 39, 40, 84, 81, 18, 19, 20, 
252         21, 22, 81, 81, 18, 81, 81, 81, 
253         28, 29, 30, 81, 31, 32, 33, 81, 
254         81, 81, 81, 19, 38, 39, 40, 84, 
255         81, 18, 19, 20, 21, 22, 23, 24, 
256         18, 81, 81, 81, 28, 29, 30, 81, 
257         31, 32, 33, 81, 81, 81, 81, 19, 
258         38, 39, 40, 84, 81, 3, 6, 81, 
259         81, 82, 81, 81, 81, 81, 81, 81, 
260         18, 19, 20, 21, 22, 23, 24, 18, 
261         25, 81, 27, 28, 29, 30, 81, 31, 
262         32, 33, 81, 81, 81, 81, 37, 38, 
263         39, 40, 6, 81, 3, 81, 81, 81, 
264         81, 81, 81, 81, 81, 81, 81, 81, 
265         81, 81, 4, 81, 81, 81, 81, 81, 
266         81, 81, 19, 20, 21, 22, 81, 81, 
267         81, 81, 81, 81, 81, 81, 81, 81, 
268         31, 32, 33, 81, 81, 81, 81, 81, 
269         38, 39, 40, 84, 81, 3, 86, 86, 
270         86, 86, 86, 86, 86, 86, 86, 86, 
271         86, 86, 86, 4, 86, 87, 81, 14, 
272         81, 81, 81, 81, 81, 81, 81, 88, 
273         81, 14, 81, 6, 86, 86, 86, 86, 
274         86, 86, 86, 86, 86, 86, 86, 86, 
275         86, 86, 86, 86, 86, 86, 86, 86, 
276         86, 86, 86, 86, 86, 86, 86, 86, 
277         86, 86, 86, 6, 86, 86, 86, 6, 
278         86, 9, 81, 81, 81, 9, 81, 81, 
279         81, 81, 81, 3, 6, 14, 81, 82, 
280         81, 81, 81, 81, 81, 81, 18, 19, 
281         20, 21, 22, 23, 24, 18, 25, 26, 
282         27, 28, 29, 30, 81, 31, 32, 33, 
283         81, 34, 35, 81, 37, 38, 39, 40, 
284         6, 81, 3, 6, 81, 81, 82, 81, 
285         81, 81, 81, 81, 81, 18, 19, 20, 
286         21, 22, 23, 24, 18, 25, 26, 27, 
287         28, 29, 30, 81, 31, 32, 33, 81, 
288         81, 81, 81, 37, 38, 39, 40, 6, 
289         81, 34, 35, 81, 35, 81, 78, 80, 
290         80, 80, 80, 80, 80, 80, 80, 80, 
291         80, 80, 80, 80, 80, 80, 80, 80, 
292         80, 80, 78, 79, 80, 9, 86, 86, 
293         86, 9, 86, 0
294 };
295
296 static const char _use_syllable_machine_trans_targs[] = {
297         5, 9, 5, 41, 2, 5, 1, 53, 
298         6, 7, 5, 34, 37, 63, 64, 67, 
299         68, 72, 43, 44, 45, 46, 47, 57, 
300         58, 60, 69, 61, 54, 55, 56, 50, 
301         51, 52, 70, 71, 73, 62, 48, 49, 
302         5, 5, 5, 5, 8, 0, 33, 12, 
303         13, 14, 15, 16, 27, 28, 30, 31, 
304         24, 25, 26, 19, 20, 21, 32, 17, 
305         18, 5, 11, 5, 10, 22, 5, 23, 
306         29, 5, 35, 36, 5, 38, 39, 40, 
307         5, 5, 3, 42, 4, 59, 5, 65, 
308         66
309 };
310
311 static const char _use_syllable_machine_trans_actions[] = {
312         1, 0, 2, 3, 0, 4, 0, 5, 
313         0, 5, 8, 0, 5, 9, 0, 9, 
314         3, 0, 5, 5, 0, 0, 0, 5, 
315         5, 5, 3, 3, 5, 5, 5, 5, 
316         5, 5, 0, 0, 0, 3, 0, 0, 
317         10, 11, 12, 13, 5, 0, 5, 0, 
318         0, 0, 0, 0, 0, 0, 0, 5, 
319         0, 0, 0, 0, 0, 0, 0, 0, 
320         0, 14, 5, 15, 0, 0, 16, 0, 
321         0, 17, 0, 0, 18, 5, 0, 0, 
322         19, 20, 0, 3, 0, 5, 21, 0, 
323         0
324 };
325
326 static const char _use_syllable_machine_to_state_actions[] = {
327         0, 0, 0, 0, 0, 6, 0, 0, 
328         0, 0, 0, 0, 0, 0, 0, 0, 
329         0, 0, 0, 0, 0, 0, 0, 0, 
330         0, 0, 0, 0, 0, 0, 0, 0, 
331         0, 0, 0, 0, 0, 0, 0, 0, 
332         0, 0, 0, 0, 0, 0, 0, 0, 
333         0, 0, 0, 0, 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
337 };
338
339 static const char _use_syllable_machine_from_state_actions[] = {
340         0, 0, 0, 0, 0, 7, 0, 0, 
341         0, 0, 0, 0, 0, 0, 0, 0, 
342         0, 0, 0, 0, 0, 0, 0, 0, 
343         0, 0, 0, 0, 0, 0, 0, 0, 
344         0, 0, 0, 0, 0, 0, 0, 0, 
345         0, 0, 0, 0, 0, 0, 0, 0, 
346         0, 0, 0, 0, 0, 0, 0, 0, 
347         0, 0, 0, 0, 0, 0, 0, 0, 
348         0, 0, 0, 0, 0, 0, 0, 0, 
349         0, 0
350 };
351
352 static const short _use_syllable_machine_eof_trans[] = {
353         1, 3, 3, 6, 6, 0, 42, 44, 
354         44, 68, 68, 44, 44, 44, 44, 44, 
355         44, 44, 44, 44, 44, 44, 71, 44, 
356         44, 44, 44, 44, 44, 44, 44, 44, 
357         68, 44, 74, 77, 74, 44, 44, 81, 
358         81, 82, 82, 82, 82, 82, 82, 82, 
359         82, 82, 82, 82, 82, 82, 82, 82, 
360         82, 82, 82, 82, 82, 82, 82, 87, 
361         82, 82, 82, 87, 82, 82, 82, 82, 
362         81, 87
363 };
364
365 static const int use_syllable_machine_start = 5;
366 static const int use_syllable_machine_first_final = 5;
367 static const int use_syllable_machine_error = -1;
368
369 static const int use_syllable_machine_en_main = 5;
370
371
372 #line 38 "hb-ot-shape-complex-use-machine.rl"
373
374
375
376 #line 162 "hb-ot-shape-complex-use-machine.rl"
377
378
379 #define found_syllable(syllable_type) \
380   HB_STMT_START { \
381     if (0) fprintf (stderr, "syllable %d..%d %s\n", ts, te, #syllable_type); \
382     for (unsigned int i = ts; i < te; i++) \
383       info[i].syllable() = (syllable_serial << 4) | use_##syllable_type; \
384     syllable_serial++; \
385     if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
386   } HB_STMT_END
387
388 static void
389 find_syllables_use (hb_buffer_t *buffer)
390 {
391   unsigned int p, pe, eof, ts, te, act;
392   int cs;
393   hb_glyph_info_t *info = buffer->info;
394   
395 #line 396 "hb-ot-shape-complex-use-machine.hh"
396         {
397         cs = use_syllable_machine_start;
398         ts = 0;
399         te = 0;
400         act = 0;
401         }
402
403 #line 182 "hb-ot-shape-complex-use-machine.rl"
404
405
406   p = 0;
407   pe = eof = buffer->len;
408
409   unsigned int syllable_serial = 1;
410   
411 #line 412 "hb-ot-shape-complex-use-machine.hh"
412         {
413         int _slen;
414         int _trans;
415         const unsigned char *_keys;
416         const char *_inds;
417         if ( p == pe )
418                 goto _test_eof;
419 _resume:
420         switch ( _use_syllable_machine_from_state_actions[cs] ) {
421         case 7:
422 #line 1 "NONE"
423         {ts = p;}
424         break;
425 #line 426 "hb-ot-shape-complex-use-machine.hh"
426         }
427
428         _keys = _use_syllable_machine_trans_keys + (cs<<1);
429         _inds = _use_syllable_machine_indicies + _use_syllable_machine_index_offsets[cs];
430
431         _slen = _use_syllable_machine_key_spans[cs];
432         _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].use_category()) &&
433                 ( info[p].use_category()) <= _keys[1] ?
434                 ( info[p].use_category()) - _keys[0] : _slen ];
435
436 _eof_trans:
437         cs = _use_syllable_machine_trans_targs[_trans];
438
439         if ( _use_syllable_machine_trans_actions[_trans] == 0 )
440                 goto _again;
441
442         switch ( _use_syllable_machine_trans_actions[_trans] ) {
443         case 5:
444 #line 1 "NONE"
445         {te = p+1;}
446         break;
447         case 12:
448 #line 150 "hb-ot-shape-complex-use-machine.rl"
449         {te = p+1;{ found_syllable (independent_cluster); }}
450         break;
451         case 14:
452 #line 153 "hb-ot-shape-complex-use-machine.rl"
453         {te = p+1;{ found_syllable (standard_cluster); }}
454         break;
455         case 10:
456 #line 157 "hb-ot-shape-complex-use-machine.rl"
457         {te = p+1;{ found_syllable (broken_cluster); }}
458         break;
459         case 8:
460 #line 158 "hb-ot-shape-complex-use-machine.rl"
461         {te = p+1;{ found_syllable (non_cluster); }}
462         break;
463         case 11:
464 #line 150 "hb-ot-shape-complex-use-machine.rl"
465         {te = p;p--;{ found_syllable (independent_cluster); }}
466         break;
467         case 15:
468 #line 151 "hb-ot-shape-complex-use-machine.rl"
469         {te = p;p--;{ found_syllable (virama_terminated_cluster); }}
470         break;
471         case 16:
472 #line 152 "hb-ot-shape-complex-use-machine.rl"
473         {te = p;p--;{ found_syllable (sakot_terminated_cluster); }}
474         break;
475         case 13:
476 #line 153 "hb-ot-shape-complex-use-machine.rl"
477         {te = p;p--;{ found_syllable (standard_cluster); }}
478         break;
479         case 18:
480 #line 154 "hb-ot-shape-complex-use-machine.rl"
481         {te = p;p--;{ found_syllable (number_joiner_terminated_cluster); }}
482         break;
483         case 17:
484 #line 155 "hb-ot-shape-complex-use-machine.rl"
485         {te = p;p--;{ found_syllable (numeral_cluster); }}
486         break;
487         case 19:
488 #line 156 "hb-ot-shape-complex-use-machine.rl"
489         {te = p;p--;{ found_syllable (symbol_cluster); }}
490         break;
491         case 20:
492 #line 157 "hb-ot-shape-complex-use-machine.rl"
493         {te = p;p--;{ found_syllable (broken_cluster); }}
494         break;
495         case 21:
496 #line 158 "hb-ot-shape-complex-use-machine.rl"
497         {te = p;p--;{ found_syllable (non_cluster); }}
498         break;
499         case 1:
500 #line 153 "hb-ot-shape-complex-use-machine.rl"
501         {{p = ((te))-1;}{ found_syllable (standard_cluster); }}
502         break;
503         case 4:
504 #line 157 "hb-ot-shape-complex-use-machine.rl"
505         {{p = ((te))-1;}{ found_syllable (broken_cluster); }}
506         break;
507         case 2:
508 #line 1 "NONE"
509         {       switch( act ) {
510         case 8:
511         {{p = ((te))-1;} found_syllable (broken_cluster); }
512         break;
513         case 9:
514         {{p = ((te))-1;} found_syllable (non_cluster); }
515         break;
516         }
517         }
518         break;
519         case 3:
520 #line 1 "NONE"
521         {te = p+1;}
522 #line 157 "hb-ot-shape-complex-use-machine.rl"
523         {act = 8;}
524         break;
525         case 9:
526 #line 1 "NONE"
527         {te = p+1;}
528 #line 158 "hb-ot-shape-complex-use-machine.rl"
529         {act = 9;}
530         break;
531 #line 532 "hb-ot-shape-complex-use-machine.hh"
532         }
533
534 _again:
535         switch ( _use_syllable_machine_to_state_actions[cs] ) {
536         case 6:
537 #line 1 "NONE"
538         {ts = 0;}
539         break;
540 #line 541 "hb-ot-shape-complex-use-machine.hh"
541         }
542
543         if ( ++p != pe )
544                 goto _resume;
545         _test_eof: {}
546         if ( p == eof )
547         {
548         if ( _use_syllable_machine_eof_trans[cs] > 0 ) {
549                 _trans = _use_syllable_machine_eof_trans[cs] - 1;
550                 goto _eof_trans;
551         }
552         }
553
554         }
555
556 #line 190 "hb-ot-shape-complex-use-machine.rl"
557
558 }
559
560 #undef found_syllable
561
562 #endif /* HB_OT_SHAPE_COMPLEX_USE_MACHINE_HH */