2 #line 1 "hb-ot-shaper-myanmar-machine.rl"
4 * Copyright © 2011,2012 Google, Inc.
6 * This is part of HarfBuzz, a text shaping library.
8 * Permission is hereby granted, without written agreement and without
9 * license or royalty fees, to use, copy, modify, and distribute this
10 * software and its documentation for any purpose, provided that the
11 * above copyright notice and the following two paragraphs appear in
12 * all copies of this software.
14 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
15 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
16 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
17 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
20 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
21 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
22 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
23 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
24 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
26 * Google Author(s): Behdad Esfahbod
29 #ifndef HB_OT_SHAPER_MYANMAR_MACHINE_HH
30 #define HB_OT_SHAPER_MYANMAR_MACHINE_HH
34 #include "hb-ot-layout.hh"
35 #include "hb-ot-shaper-indic.hh"
37 /* buffer var allocations */
38 #define myanmar_category() ot_shaper_var_u8_category() /* myanmar_category_t */
39 #define myanmar_position() ot_shaper_var_u8_auxiliary() /* myanmar_position_t */
41 using myanmar_category_t = unsigned;
42 using myanmar_position_t = ot_position_t;
44 #define M_Cat(Cat) myanmar_syllable_machine_ex_##Cat
46 enum myanmar_syllable_type_t {
47 myanmar_consonant_syllable,
48 myanmar_broken_cluster,
49 myanmar_non_myanmar_cluster,
53 #line 54 "hb-ot-shaper-myanmar-machine.hh"
54 #define myanmar_syllable_machine_ex_A 9u
55 #define myanmar_syllable_machine_ex_As 32u
56 #define myanmar_syllable_machine_ex_C 1u
57 #define myanmar_syllable_machine_ex_CS 18u
58 #define myanmar_syllable_machine_ex_DB 3u
59 #define myanmar_syllable_machine_ex_DOTTEDCIRCLE 11u
60 #define myanmar_syllable_machine_ex_GB 10u
61 #define myanmar_syllable_machine_ex_H 4u
62 #define myanmar_syllable_machine_ex_IV 2u
63 #define myanmar_syllable_machine_ex_MH 35u
64 #define myanmar_syllable_machine_ex_ML 41u
65 #define myanmar_syllable_machine_ex_MR 36u
66 #define myanmar_syllable_machine_ex_MW 37u
67 #define myanmar_syllable_machine_ex_MY 38u
68 #define myanmar_syllable_machine_ex_PT 39u
69 #define myanmar_syllable_machine_ex_Ra 15u
70 #define myanmar_syllable_machine_ex_SM 8u
71 #define myanmar_syllable_machine_ex_VAbv 20u
72 #define myanmar_syllable_machine_ex_VBlw 21u
73 #define myanmar_syllable_machine_ex_VPre 22u
74 #define myanmar_syllable_machine_ex_VPst 23u
75 #define myanmar_syllable_machine_ex_VS 40u
76 #define myanmar_syllable_machine_ex_ZWJ 6u
77 #define myanmar_syllable_machine_ex_ZWNJ 5u
80 #line 81 "hb-ot-shaper-myanmar-machine.hh"
81 static const unsigned char _myanmar_syllable_machine_trans_keys[] = {
82 1u, 41u, 3u, 41u, 5u, 39u, 5u, 8u, 3u, 41u, 3u, 39u, 3u, 39u, 5u, 39u,
83 5u, 39u, 3u, 39u, 3u, 39u, 3u, 41u, 5u, 39u, 1u, 15u, 3u, 39u, 3u, 39u,
84 3u, 40u, 3u, 39u, 3u, 41u, 3u, 41u, 3u, 39u, 3u, 41u, 3u, 41u, 3u, 41u,
85 3u, 41u, 3u, 41u, 5u, 39u, 5u, 8u, 3u, 41u, 3u, 39u, 3u, 39u, 5u, 39u,
86 5u, 39u, 3u, 39u, 3u, 39u, 3u, 41u, 5u, 39u, 1u, 15u, 3u, 41u, 3u, 39u,
87 3u, 39u, 3u, 40u, 3u, 39u, 3u, 41u, 3u, 41u, 3u, 39u, 3u, 41u, 3u, 41u,
88 3u, 41u, 3u, 41u, 3u, 41u, 3u, 41u, 3u, 41u, 1u, 41u, 1u, 15u, 0
91 static const char _myanmar_syllable_machine_key_spans[] = {
92 41, 39, 35, 4, 39, 37, 37, 35,
93 35, 37, 37, 39, 35, 15, 37, 37,
94 38, 37, 39, 39, 37, 39, 39, 39,
95 39, 39, 35, 4, 39, 37, 37, 35,
96 35, 37, 37, 39, 35, 15, 39, 37,
97 37, 38, 37, 39, 39, 37, 39, 39,
98 39, 39, 39, 39, 39, 41, 15
101 static const short _myanmar_syllable_machine_index_offsets[] = {
102 0, 42, 82, 118, 123, 163, 201, 239,
103 275, 311, 349, 387, 427, 463, 479, 517,
104 555, 594, 632, 672, 712, 750, 790, 830,
105 870, 910, 950, 986, 991, 1031, 1069, 1107,
106 1143, 1179, 1217, 1255, 1295, 1331, 1347, 1387,
107 1425, 1463, 1502, 1540, 1580, 1620, 1658, 1698,
108 1738, 1778, 1818, 1858, 1898, 1938, 1980
111 static const char _myanmar_syllable_machine_indicies[] = {
112 1, 1, 2, 3, 4, 4, 0, 5,
113 6, 1, 1, 0, 0, 0, 7, 0,
114 0, 8, 0, 9, 10, 11, 12, 0,
115 0, 0, 0, 0, 0, 0, 0, 13,
116 0, 0, 14, 15, 16, 17, 18, 19,
117 20, 0, 22, 23, 24, 24, 21, 25,
118 26, 21, 21, 21, 21, 21, 21, 21,
119 21, 21, 21, 27, 28, 29, 30, 21,
120 21, 21, 21, 21, 21, 21, 21, 31,
121 21, 21, 32, 33, 34, 35, 36, 37,
122 38, 21, 24, 24, 21, 25, 21, 21,
123 21, 21, 21, 21, 21, 21, 21, 21,
124 21, 21, 21, 21, 30, 21, 21, 21,
125 21, 21, 21, 21, 21, 39, 21, 21,
126 21, 21, 21, 21, 36, 21, 24, 24,
127 21, 25, 21, 22, 21, 24, 24, 21,
128 25, 26, 21, 21, 21, 21, 21, 21,
129 21, 21, 21, 21, 40, 21, 21, 30,
130 21, 21, 21, 21, 21, 21, 21, 21,
131 41, 21, 21, 42, 21, 21, 21, 36,
132 21, 41, 21, 22, 21, 24, 24, 21,
133 25, 26, 21, 21, 21, 21, 21, 21,
134 21, 21, 21, 21, 21, 21, 21, 30,
135 21, 21, 21, 21, 21, 21, 21, 21,
136 21, 21, 21, 21, 21, 21, 21, 36,
137 21, 43, 21, 24, 24, 21, 25, 36,
138 21, 21, 21, 21, 21, 21, 21, 21,
139 21, 21, 21, 21, 21, 21, 21, 21,
140 21, 21, 21, 21, 21, 21, 44, 21,
141 21, 21, 21, 21, 21, 36, 21, 24,
142 24, 21, 25, 21, 21, 21, 21, 21,
143 21, 21, 21, 21, 21, 21, 21, 21,
144 21, 21, 21, 21, 21, 21, 21, 21,
145 21, 21, 44, 21, 21, 21, 21, 21,
146 21, 36, 21, 24, 24, 21, 25, 21,
147 21, 21, 21, 21, 21, 21, 21, 21,
148 21, 21, 21, 21, 21, 21, 21, 21,
149 21, 21, 21, 21, 21, 21, 21, 21,
150 21, 21, 21, 21, 21, 36, 21, 22,
151 21, 24, 24, 21, 25, 26, 21, 21,
152 21, 21, 21, 21, 21, 21, 21, 21,
153 40, 21, 21, 30, 21, 21, 21, 21,
154 21, 21, 21, 21, 21, 21, 21, 21,
155 21, 21, 21, 36, 21, 22, 21, 24,
156 24, 21, 25, 26, 21, 21, 21, 21,
157 21, 21, 21, 21, 21, 21, 40, 21,
158 21, 30, 21, 21, 21, 21, 21, 21,
159 21, 21, 41, 21, 21, 21, 21, 21,
160 21, 36, 21, 22, 21, 24, 24, 21,
161 25, 26, 21, 21, 21, 21, 21, 21,
162 21, 21, 21, 21, 40, 21, 21, 30,
163 21, 21, 21, 21, 21, 21, 21, 21,
164 41, 21, 21, 21, 21, 21, 21, 36,
165 21, 41, 21, 24, 24, 21, 25, 21,
166 21, 21, 21, 21, 21, 21, 21, 21,
167 21, 21, 21, 21, 21, 30, 21, 21,
168 21, 21, 21, 21, 21, 21, 21, 21,
169 21, 21, 21, 21, 21, 36, 21, 1,
170 1, 21, 21, 21, 21, 21, 21, 21,
171 21, 21, 21, 21, 21, 1, 21, 22,
172 21, 24, 24, 21, 25, 26, 21, 21,
173 21, 21, 21, 21, 21, 21, 21, 21,
174 27, 28, 21, 30, 21, 21, 21, 21,
175 21, 21, 21, 21, 21, 21, 21, 21,
176 21, 21, 21, 36, 21, 22, 21, 24,
177 24, 21, 25, 26, 21, 21, 21, 21,
178 21, 21, 21, 21, 21, 21, 21, 28,
179 21, 30, 21, 21, 21, 21, 21, 21,
180 21, 21, 21, 21, 21, 21, 21, 21,
181 21, 36, 21, 22, 21, 24, 24, 21,
182 25, 26, 21, 21, 21, 21, 21, 21,
183 21, 21, 21, 21, 27, 28, 29, 30,
184 21, 21, 21, 21, 21, 21, 21, 21,
185 21, 21, 21, 21, 21, 21, 21, 36,
186 45, 21, 22, 21, 24, 24, 21, 25,
187 26, 21, 21, 21, 21, 21, 21, 21,
188 21, 21, 21, 27, 28, 29, 30, 21,
189 21, 21, 21, 21, 21, 21, 21, 21,
190 21, 21, 21, 21, 21, 21, 36, 21,
191 22, 21, 24, 24, 21, 25, 26, 21,
192 21, 21, 21, 21, 21, 21, 21, 21,
193 21, 27, 28, 29, 30, 21, 21, 21,
194 21, 21, 21, 21, 21, 31, 21, 21,
195 32, 33, 34, 35, 36, 21, 38, 21,
196 22, 21, 24, 24, 21, 25, 26, 21,
197 21, 21, 21, 21, 21, 21, 21, 21,
198 21, 27, 28, 29, 30, 21, 21, 21,
199 21, 21, 21, 21, 21, 45, 21, 21,
200 21, 21, 21, 21, 36, 21, 38, 21,
201 22, 21, 24, 24, 21, 25, 26, 21,
202 21, 21, 21, 21, 21, 21, 21, 21,
203 21, 27, 28, 29, 30, 21, 21, 21,
204 21, 21, 21, 21, 21, 45, 21, 21,
205 21, 21, 21, 21, 36, 21, 22, 21,
206 24, 24, 21, 25, 26, 21, 21, 21,
207 21, 21, 21, 21, 21, 21, 21, 27,
208 28, 29, 30, 21, 21, 21, 21, 21,
209 21, 21, 21, 21, 21, 21, 32, 21,
210 34, 21, 36, 21, 38, 21, 22, 21,
211 24, 24, 21, 25, 26, 21, 21, 21,
212 21, 21, 21, 21, 21, 21, 21, 27,
213 28, 29, 30, 21, 21, 21, 21, 21,
214 21, 21, 21, 45, 21, 21, 32, 21,
215 21, 21, 36, 21, 38, 21, 22, 21,
216 24, 24, 21, 25, 26, 21, 21, 21,
217 21, 21, 21, 21, 21, 21, 21, 27,
218 28, 29, 30, 21, 21, 21, 21, 21,
219 21, 21, 21, 46, 21, 21, 32, 33,
220 34, 21, 36, 21, 38, 21, 22, 21,
221 24, 24, 21, 25, 26, 21, 21, 21,
222 21, 21, 21, 21, 21, 21, 21, 27,
223 28, 29, 30, 21, 21, 21, 21, 21,
224 21, 21, 21, 21, 21, 21, 32, 33,
225 34, 21, 36, 21, 38, 21, 22, 23,
226 24, 24, 21, 25, 26, 21, 21, 21,
227 21, 21, 21, 21, 21, 21, 21, 27,
228 28, 29, 30, 21, 21, 21, 21, 21,
229 21, 21, 21, 31, 21, 21, 32, 33,
230 34, 35, 36, 21, 38, 21, 48, 48,
231 47, 5, 47, 47, 47, 47, 47, 47,
232 47, 47, 47, 47, 47, 47, 47, 47,
233 12, 47, 47, 47, 47, 47, 47, 47,
234 47, 49, 47, 47, 47, 47, 47, 47,
235 18, 47, 48, 48, 47, 5, 47, 2,
236 47, 48, 48, 47, 5, 6, 47, 47,
237 47, 47, 47, 47, 47, 47, 47, 47,
238 50, 47, 47, 12, 47, 47, 47, 47,
239 47, 47, 47, 47, 51, 47, 47, 52,
240 47, 47, 47, 18, 47, 51, 47, 2,
241 47, 48, 48, 47, 5, 6, 47, 47,
242 47, 47, 47, 47, 47, 47, 47, 47,
243 47, 47, 47, 12, 47, 47, 47, 47,
244 47, 47, 47, 47, 47, 47, 47, 47,
245 47, 47, 47, 18, 47, 53, 47, 48,
246 48, 47, 5, 18, 47, 47, 47, 47,
247 47, 47, 47, 47, 47, 47, 47, 47,
248 47, 47, 47, 47, 47, 47, 47, 47,
249 47, 47, 54, 47, 47, 47, 47, 47,
250 47, 18, 47, 48, 48, 47, 5, 47,
251 47, 47, 47, 47, 47, 47, 47, 47,
252 47, 47, 47, 47, 47, 47, 47, 47,
253 47, 47, 47, 47, 47, 47, 54, 47,
254 47, 47, 47, 47, 47, 18, 47, 48,
255 48, 47, 5, 47, 47, 47, 47, 47,
256 47, 47, 47, 47, 47, 47, 47, 47,
257 47, 47, 47, 47, 47, 47, 47, 47,
258 47, 47, 47, 47, 47, 47, 47, 47,
259 47, 18, 47, 2, 47, 48, 48, 47,
260 5, 6, 47, 47, 47, 47, 47, 47,
261 47, 47, 47, 47, 50, 47, 47, 12,
262 47, 47, 47, 47, 47, 47, 47, 47,
263 47, 47, 47, 47, 47, 47, 47, 18,
264 47, 2, 47, 48, 48, 47, 5, 6,
265 47, 47, 47, 47, 47, 47, 47, 47,
266 47, 47, 50, 47, 47, 12, 47, 47,
267 47, 47, 47, 47, 47, 47, 51, 47,
268 47, 47, 47, 47, 47, 18, 47, 2,
269 47, 48, 48, 47, 5, 6, 47, 47,
270 47, 47, 47, 47, 47, 47, 47, 47,
271 50, 47, 47, 12, 47, 47, 47, 47,
272 47, 47, 47, 47, 51, 47, 47, 47,
273 47, 47, 47, 18, 47, 51, 47, 48,
274 48, 47, 5, 47, 47, 47, 47, 47,
275 47, 47, 47, 47, 47, 47, 47, 47,
276 47, 12, 47, 47, 47, 47, 47, 47,
277 47, 47, 47, 47, 47, 47, 47, 47,
278 47, 18, 47, 55, 55, 47, 47, 47,
279 47, 47, 47, 47, 47, 47, 47, 47,
280 47, 55, 47, 2, 3, 48, 48, 47,
281 5, 6, 47, 47, 47, 47, 47, 47,
282 47, 47, 47, 47, 9, 10, 11, 12,
283 47, 47, 47, 47, 47, 47, 47, 47,
284 13, 47, 47, 14, 15, 16, 17, 18,
285 19, 20, 47, 2, 47, 48, 48, 47,
286 5, 6, 47, 47, 47, 47, 47, 47,
287 47, 47, 47, 47, 9, 10, 47, 12,
288 47, 47, 47, 47, 47, 47, 47, 47,
289 47, 47, 47, 47, 47, 47, 47, 18,
290 47, 2, 47, 48, 48, 47, 5, 6,
291 47, 47, 47, 47, 47, 47, 47, 47,
292 47, 47, 47, 10, 47, 12, 47, 47,
293 47, 47, 47, 47, 47, 47, 47, 47,
294 47, 47, 47, 47, 47, 18, 47, 2,
295 47, 48, 48, 47, 5, 6, 47, 47,
296 47, 47, 47, 47, 47, 47, 47, 47,
297 9, 10, 11, 12, 47, 47, 47, 47,
298 47, 47, 47, 47, 47, 47, 47, 47,
299 47, 47, 47, 18, 56, 47, 2, 47,
300 48, 48, 47, 5, 6, 47, 47, 47,
301 47, 47, 47, 47, 47, 47, 47, 9,
302 10, 11, 12, 47, 47, 47, 47, 47,
303 47, 47, 47, 47, 47, 47, 47, 47,
304 47, 47, 18, 47, 2, 47, 48, 48,
305 47, 5, 6, 47, 47, 47, 47, 47,
306 47, 47, 47, 47, 47, 9, 10, 11,
307 12, 47, 47, 47, 47, 47, 47, 47,
308 47, 13, 47, 47, 14, 15, 16, 17,
309 18, 47, 20, 47, 2, 47, 48, 48,
310 47, 5, 6, 47, 47, 47, 47, 47,
311 47, 47, 47, 47, 47, 9, 10, 11,
312 12, 47, 47, 47, 47, 47, 47, 47,
313 47, 56, 47, 47, 47, 47, 47, 47,
314 18, 47, 20, 47, 2, 47, 48, 48,
315 47, 5, 6, 47, 47, 47, 47, 47,
316 47, 47, 47, 47, 47, 9, 10, 11,
317 12, 47, 47, 47, 47, 47, 47, 47,
318 47, 56, 47, 47, 47, 47, 47, 47,
319 18, 47, 2, 47, 48, 48, 47, 5,
320 6, 47, 47, 47, 47, 47, 47, 47,
321 47, 47, 47, 9, 10, 11, 12, 47,
322 47, 47, 47, 47, 47, 47, 47, 47,
323 47, 47, 14, 47, 16, 47, 18, 47,
324 20, 47, 2, 47, 48, 48, 47, 5,
325 6, 47, 47, 47, 47, 47, 47, 47,
326 47, 47, 47, 9, 10, 11, 12, 47,
327 47, 47, 47, 47, 47, 47, 47, 56,
328 47, 47, 14, 47, 47, 47, 18, 47,
329 20, 47, 2, 47, 48, 48, 47, 5,
330 6, 47, 47, 47, 47, 47, 47, 47,
331 47, 47, 47, 9, 10, 11, 12, 47,
332 47, 47, 47, 47, 47, 47, 47, 57,
333 47, 47, 14, 15, 16, 47, 18, 47,
334 20, 47, 2, 47, 48, 48, 47, 5,
335 6, 47, 47, 47, 47, 47, 47, 47,
336 47, 47, 47, 9, 10, 11, 12, 47,
337 47, 47, 47, 47, 47, 47, 47, 47,
338 47, 47, 14, 15, 16, 47, 18, 47,
339 20, 47, 2, 3, 48, 48, 47, 5,
340 6, 47, 47, 47, 47, 47, 47, 47,
341 47, 47, 47, 9, 10, 11, 12, 47,
342 47, 47, 47, 47, 47, 47, 47, 13,
343 47, 47, 14, 15, 16, 17, 18, 47,
344 20, 47, 22, 23, 24, 24, 21, 25,
345 26, 21, 21, 21, 21, 21, 21, 21,
346 21, 21, 21, 27, 28, 29, 30, 21,
347 21, 21, 21, 21, 21, 21, 21, 58,
348 21, 21, 32, 33, 34, 35, 36, 37,
349 38, 21, 22, 59, 24, 24, 21, 25,
350 26, 21, 21, 21, 21, 21, 21, 21,
351 21, 21, 21, 27, 28, 29, 30, 21,
352 21, 21, 21, 21, 21, 21, 21, 31,
353 21, 21, 32, 33, 34, 35, 36, 21,
354 38, 21, 1, 1, 2, 3, 48, 48,
355 47, 5, 6, 1, 1, 47, 47, 47,
356 1, 47, 47, 47, 47, 9, 10, 11,
357 12, 47, 47, 47, 47, 47, 47, 47,
358 47, 13, 47, 47, 14, 15, 16, 17,
359 18, 19, 20, 47, 1, 1, 60, 60,
360 60, 60, 60, 60, 60, 1, 1, 60,
364 static const char _myanmar_syllable_machine_trans_targs[] = {
365 0, 1, 26, 37, 0, 27, 29, 51,
366 54, 39, 40, 41, 28, 43, 44, 46,
367 47, 48, 30, 50, 45, 0, 2, 13,
368 0, 3, 5, 14, 15, 16, 4, 18,
369 19, 21, 22, 23, 6, 25, 20, 12,
370 9, 10, 11, 7, 8, 17, 24, 0,
371 0, 36, 33, 34, 35, 31, 32, 38,
375 static const char _myanmar_syllable_machine_trans_actions[] = {
376 3, 0, 0, 0, 4, 0, 0, 0,
377 0, 0, 0, 0, 0, 0, 0, 0,
378 0, 0, 0, 0, 0, 5, 0, 0,
379 6, 0, 0, 0, 0, 0, 0, 0,
380 0, 0, 0, 0, 0, 0, 0, 0,
381 0, 0, 0, 0, 0, 0, 0, 7,
382 8, 0, 0, 0, 0, 0, 0, 0,
386 static const char _myanmar_syllable_machine_to_state_actions[] = {
387 1, 0, 0, 0, 0, 0, 0, 0,
388 0, 0, 0, 0, 0, 0, 0, 0,
389 0, 0, 0, 0, 0, 0, 0, 0,
390 0, 0, 0, 0, 0, 0, 0, 0,
391 0, 0, 0, 0, 0, 0, 0, 0,
392 0, 0, 0, 0, 0, 0, 0, 0,
396 static const char _myanmar_syllable_machine_from_state_actions[] = {
397 2, 0, 0, 0, 0, 0, 0, 0,
398 0, 0, 0, 0, 0, 0, 0, 0,
399 0, 0, 0, 0, 0, 0, 0, 0,
400 0, 0, 0, 0, 0, 0, 0, 0,
401 0, 0, 0, 0, 0, 0, 0, 0,
402 0, 0, 0, 0, 0, 0, 0, 0,
406 static const short _myanmar_syllable_machine_eof_trans[] = {
407 0, 22, 22, 22, 22, 22, 22, 22,
408 22, 22, 22, 22, 22, 22, 22, 22,
409 22, 22, 22, 22, 22, 22, 22, 22,
410 22, 22, 48, 48, 48, 48, 48, 48,
411 48, 48, 48, 48, 48, 48, 48, 48,
412 48, 48, 48, 48, 48, 48, 48, 48,
413 48, 48, 48, 22, 22, 48, 61
416 static const int myanmar_syllable_machine_start = 0;
417 static const int myanmar_syllable_machine_first_final = 0;
418 static const int myanmar_syllable_machine_error = -1;
420 static const int myanmar_syllable_machine_en_main = 0;
423 #line 55 "hb-ot-shaper-myanmar-machine.rl"
427 #line 117 "hb-ot-shaper-myanmar-machine.rl"
430 #define found_syllable(syllable_type) \
432 if (0) fprintf (stderr, "syllable %u..%u %s\n", ts, te, #syllable_type); \
433 for (unsigned int i = ts; i < te; i++) \
434 info[i].syllable() = (syllable_serial << 4) | syllable_type; \
436 if (syllable_serial == 16) syllable_serial = 1; \
440 find_syllables_myanmar (hb_buffer_t *buffer)
442 unsigned int p, pe, eof, ts, te, act HB_UNUSED;
444 hb_glyph_info_t *info = buffer->info;
446 #line 447 "hb-ot-shaper-myanmar-machine.hh"
448 cs = myanmar_syllable_machine_start;
454 #line 137 "hb-ot-shaper-myanmar-machine.rl"
458 pe = eof = buffer->len;
460 unsigned int syllable_serial = 1;
462 #line 463 "hb-ot-shaper-myanmar-machine.hh"
466 const unsigned char *_keys;
471 switch ( _myanmar_syllable_machine_from_state_actions[cs] ) {
476 #line 477 "hb-ot-shaper-myanmar-machine.hh"
479 _keys = _myanmar_syllable_machine_trans_keys + (cs<<1);
480 _inds = _myanmar_syllable_machine_indicies + _myanmar_syllable_machine_index_offsets[cs];
482 _slen = _myanmar_syllable_machine_key_spans[cs];
483 _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].myanmar_category()) &&
484 ( info[p].myanmar_category()) <= _keys[1] ?
485 ( info[p].myanmar_category()) - _keys[0] : _slen ];
488 cs = _myanmar_syllable_machine_trans_targs[_trans];
490 if ( _myanmar_syllable_machine_trans_actions[_trans] == 0 )
493 switch ( _myanmar_syllable_machine_trans_actions[_trans] ) {
495 #line 110 "hb-ot-shaper-myanmar-machine.rl"
496 {te = p+1;{ found_syllable (myanmar_consonant_syllable); }}
499 #line 111 "hb-ot-shaper-myanmar-machine.rl"
500 {te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
503 #line 112 "hb-ot-shaper-myanmar-machine.rl"
504 {te = p+1;{ found_syllable (myanmar_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
507 #line 113 "hb-ot-shaper-myanmar-machine.rl"
508 {te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
511 #line 110 "hb-ot-shaper-myanmar-machine.rl"
512 {te = p;p--;{ found_syllable (myanmar_consonant_syllable); }}
515 #line 112 "hb-ot-shaper-myanmar-machine.rl"
516 {te = p;p--;{ found_syllable (myanmar_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
519 #line 113 "hb-ot-shaper-myanmar-machine.rl"
520 {te = p;p--;{ found_syllable (myanmar_non_myanmar_cluster); }}
522 #line 523 "hb-ot-shaper-myanmar-machine.hh"
526 switch ( _myanmar_syllable_machine_to_state_actions[cs] ) {
531 #line 532 "hb-ot-shaper-myanmar-machine.hh"
539 if ( _myanmar_syllable_machine_eof_trans[cs] > 0 ) {
540 _trans = _myanmar_syllable_machine_eof_trans[cs] - 1;
547 #line 145 "hb-ot-shaper-myanmar-machine.rl"
551 #undef found_syllable
553 #endif /* HB_OT_SHAPER_MYANMAR_MACHINE_HH */