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"
38static 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
51static 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
64static 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
77static 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
296static 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
311static 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
326static 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
339static 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
352static 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
365static const int use_syllable_machine_start = 5;
366static const int use_syllable_machine_first_final = 5;
367static const int use_syllable_machine_error = -1;
368
369static 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
388static void
389find_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 */
563