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