2 #line 1 "hb-ot-shape-complex-use-machine.rl"
4 * Copyright © 2015 Mozilla Foundation.
5 * Copyright © 2015 Google, Inc.
7 * This is part of HarfBuzz, a text shaping library.
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.
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
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.
27 * Mozilla Author(s): Jonathan Kew
28 * Google Author(s): Behdad Esfahbod
31 #ifndef HB_OT_SHAPE_COMPLEX_USE_MACHINE_HH
32 #define HB_OT_SHAPE_COMPLEX_USE_MACHINE_HH
34 #include "hb-private.hh"
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,
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,
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,
74 static const char _use_syllable_machine_indicies
[] = {
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
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,
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,
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,
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,
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,
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;
360 static const int use_syllable_machine_en_main
= 3;
363 #line 38 "hb-ot-shape-complex-use-machine.rl"
367 #line 145 "hb-ot-shape-complex-use-machine.rl"
370 #define found_syllable(syllable_type) \
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; \
377 if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
381 find_syllables (hb_buffer_t
*buffer
)
383 unsigned int p
, pe
, eof
, ts HB_UNUSED
, te HB_UNUSED
, act HB_UNUSED
;
385 hb_glyph_info_t
*info
= buffer
->info
;
387 #line 388 "hb-ot-shape-complex-use-machine.hh"
389 cs
= use_syllable_machine_start
;
395 #line 166 "hb-ot-shape-complex-use-machine.rl"
399 pe
= eof
= buffer
->len
;
401 unsigned int last
= 0;
402 unsigned int syllable_serial
= 1;
404 #line 405 "hb-ot-shape-complex-use-machine.hh"
408 const unsigned char *_keys
;
415 switch ( _use_syllable_machine_from_state_actions
[cs
] ) {
420 #line 421 "hb-ot-shape-complex-use-machine.hh"
423 _keys
= _use_syllable_machine_trans_keys
+ (cs
<<1);
424 _inds
= _use_syllable_machine_indicies
+ _use_syllable_machine_index_offsets
[cs
];
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
];
432 cs
= _use_syllable_machine_trans_targs
[_trans
];
434 if ( _use_syllable_machine_trans_actions
[_trans
] == 0 )
437 switch ( _use_syllable_machine_trans_actions
[_trans
] ) {
443 #line 134 "hb-ot-shape-complex-use-machine.rl"
444 {te
= p
+1;{ found_syllable (independent_cluster
); }}
447 #line 136 "hb-ot-shape-complex-use-machine.rl"
448 {te
= p
+1;{ found_syllable (consonant_cluster
); }}
451 #line 137 "hb-ot-shape-complex-use-machine.rl"
452 {te
= p
+1;{ found_syllable (vowel_cluster
); }}
455 #line 138 "hb-ot-shape-complex-use-machine.rl"
456 {te
= p
+1;{ found_syllable (number_joiner_terminated_cluster
); }}
459 #line 141 "hb-ot-shape-complex-use-machine.rl"
460 {te
= p
+1;{ found_syllable (broken_cluster
); }}
463 #line 134 "hb-ot-shape-complex-use-machine.rl"
464 {te
= p
;p
--;{ found_syllable (independent_cluster
); }}
467 #line 135 "hb-ot-shape-complex-use-machine.rl"
468 {te
= p
;p
--;{ found_syllable (virama_terminated_cluster
); }}
471 #line 136 "hb-ot-shape-complex-use-machine.rl"
472 {te
= p
;p
--;{ found_syllable (consonant_cluster
); }}
475 #line 137 "hb-ot-shape-complex-use-machine.rl"
476 {te
= p
;p
--;{ found_syllable (vowel_cluster
); }}
479 #line 139 "hb-ot-shape-complex-use-machine.rl"
480 {te
= p
;p
--;{ found_syllable (numeral_cluster
); }}
483 #line 140 "hb-ot-shape-complex-use-machine.rl"
484 {te
= p
;p
--;{ found_syllable (symbol_cluster
); }}
487 #line 141 "hb-ot-shape-complex-use-machine.rl"
488 {te
= p
;p
--;{ found_syllable (broken_cluster
); }}
491 #line 139 "hb-ot-shape-complex-use-machine.rl"
492 {{p
= ((te
))-1;}{ found_syllable (numeral_cluster
); }}
498 {{cs
= 0; goto _again
;}}
501 {{p
= ((te
))-1;} found_syllable (broken_cluster
); }
509 #line 141 "hb-ot-shape-complex-use-machine.rl"
512 #line 513 "hb-ot-shape-complex-use-machine.hh"
516 switch ( _use_syllable_machine_to_state_actions
[cs
] ) {
523 #line 524 "hb-ot-shape-complex-use-machine.hh"
533 if ( _use_syllable_machine_eof_trans
[cs
] > 0 ) {
534 _trans
= _use_syllable_machine_eof_trans
[cs
] - 1;
542 #line 175 "hb-ot-shape-complex-use-machine.rl"
546 #undef found_syllable
548 #endif /* HB_OT_SHAPE_COMPLEX_USE_MACHINE_HH */