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