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
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,
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,
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,
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,
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,
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,
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,
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,
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,
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;
369 static const int use_syllable_machine_en_main = 5;
372 #line 38 "hb-ot-shape-complex-use-machine.rl"
376 #line 162 "hb-ot-shape-complex-use-machine.rl"
379 #define found_syllable(syllable_type) \
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; \
385 if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
389 find_syllables_use (hb_buffer_t *buffer)
391 unsigned int p, pe, eof, ts, te, act;
393 hb_glyph_info_t *info = buffer->info;
395 #line 396 "hb-ot-shape-complex-use-machine.hh"
397 cs = use_syllable_machine_start;
403 #line 182 "hb-ot-shape-complex-use-machine.rl"
407 pe = eof = buffer->len;
409 unsigned int syllable_serial = 1;
411 #line 412 "hb-ot-shape-complex-use-machine.hh"
415 const unsigned char *_keys;
420 switch ( _use_syllable_machine_from_state_actions[cs] ) {
425 #line 426 "hb-ot-shape-complex-use-machine.hh"
428 _keys = _use_syllable_machine_trans_keys + (cs<<1);
429 _inds = _use_syllable_machine_indicies + _use_syllable_machine_index_offsets[cs];
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 ];
437 cs = _use_syllable_machine_trans_targs[_trans];
439 if ( _use_syllable_machine_trans_actions[_trans] == 0 )
442 switch ( _use_syllable_machine_trans_actions[_trans] ) {
448 #line 150 "hb-ot-shape-complex-use-machine.rl"
449 {te = p+1;{ found_syllable (independent_cluster); }}
452 #line 153 "hb-ot-shape-complex-use-machine.rl"
453 {te = p+1;{ found_syllable (standard_cluster); }}
456 #line 157 "hb-ot-shape-complex-use-machine.rl"
457 {te = p+1;{ found_syllable (broken_cluster); }}
460 #line 158 "hb-ot-shape-complex-use-machine.rl"
461 {te = p+1;{ found_syllable (non_cluster); }}
464 #line 150 "hb-ot-shape-complex-use-machine.rl"
465 {te = p;p--;{ found_syllable (independent_cluster); }}
468 #line 151 "hb-ot-shape-complex-use-machine.rl"
469 {te = p;p--;{ found_syllable (virama_terminated_cluster); }}
472 #line 152 "hb-ot-shape-complex-use-machine.rl"
473 {te = p;p--;{ found_syllable (sakot_terminated_cluster); }}
476 #line 153 "hb-ot-shape-complex-use-machine.rl"
477 {te = p;p--;{ found_syllable (standard_cluster); }}
480 #line 154 "hb-ot-shape-complex-use-machine.rl"
481 {te = p;p--;{ found_syllable (number_joiner_terminated_cluster); }}
484 #line 155 "hb-ot-shape-complex-use-machine.rl"
485 {te = p;p--;{ found_syllable (numeral_cluster); }}
488 #line 156 "hb-ot-shape-complex-use-machine.rl"
489 {te = p;p--;{ found_syllable (symbol_cluster); }}
492 #line 157 "hb-ot-shape-complex-use-machine.rl"
493 {te = p;p--;{ found_syllable (broken_cluster); }}
496 #line 158 "hb-ot-shape-complex-use-machine.rl"
497 {te = p;p--;{ found_syllable (non_cluster); }}
500 #line 153 "hb-ot-shape-complex-use-machine.rl"
501 {{p = ((te))-1;}{ found_syllable (standard_cluster); }}
504 #line 157 "hb-ot-shape-complex-use-machine.rl"
505 {{p = ((te))-1;}{ found_syllable (broken_cluster); }}
511 {{p = ((te))-1;} found_syllable (broken_cluster); }
514 {{p = ((te))-1;} found_syllable (non_cluster); }
522 #line 157 "hb-ot-shape-complex-use-machine.rl"
528 #line 158 "hb-ot-shape-complex-use-machine.rl"
531 #line 532 "hb-ot-shape-complex-use-machine.hh"
535 switch ( _use_syllable_machine_to_state_actions[cs] ) {
540 #line 541 "hb-ot-shape-complex-use-machine.hh"
548 if ( _use_syllable_machine_eof_trans[cs] > 0 ) {
549 _trans = _use_syllable_machine_eof_trans[cs] - 1;
556 #line 190 "hb-ot-shape-complex-use-machine.rl"
560 #undef found_syllable
562 #endif /* HB_OT_SHAPE_COMPLEX_USE_MACHINE_HH */